
{"id":4095,"date":"2023-06-16T09:44:44","date_gmt":"2023-06-16T09:44:44","guid":{"rendered":"https:\/\/avra.pl\/?page_id=4095"},"modified":"2023-08-14T13:54:54","modified_gmt":"2023-08-14T13:54:54","slug":"comparative-technological-audit","status":"publish","type":"page","link":"https:\/\/avra.pl\/en\/comparative-technological-audit\/","title":{"rendered":"Comparative Technological Audit"},"content":{"rendered":"\n<section class=\"block article-subtitle   content-wrapper-placeholder\">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"title-wrapper\">\n                    \t\t\t\t    <h2><span style=\"color: #1c55d9;\">Chapter 4<\/span><span style=\"font-weight: 400;\">: Comparative Technological Audit<\/span><\/h2>\n\t\t\t\t<\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-content  content-wrapper-placeholder \">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"text-wrapper\">\n\t\t\t\t    <p>This is second part of series of articles about &#8220;Complete Set of Tactics for Reducing Tech Debt: Lessons Learned from 14 Years of Building Java Enterprise Systems&#8221;.<\/p>\n<ul>\n<li>Part 1: &#8220;<a href=\"https:\/\/avra.pl\/en\/cafeteria-system-story\/\">The Beginning of a Big Project<\/a>&#8220;<\/li>\n<li>Part 3: &#8220;<a href=\"https:\/\/avra.pl\/en\/new-beginning-with-microservices-architecture\/\">New Beginning with Microservices Architecture<\/a>&#8220;.<\/li>\n<\/ul>\n<p><b>Due to the growth in LT and TTR<\/b><span style=\"font-weight: 400;\">, the client started to question our ability to deliver on time and within budget. To address their concerns, they requested an <\/span><b>external audit<\/b><span style=\"font-weight: 400;\"> of our system in late 2014\/early 2015. We were initially worried that this audit was a sign of a lack of trust from the client. However, the audit was performed fairly and focused on the value for the client.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">They confirmed that we followed<\/span><b> architectural guidelines for enterprise software<\/b><span style=\"font-weight: 400;\">, and the monolithic architecture was the natural and best thing to do for the system at the current stage. However, they also pointed out that the <\/span><b>system architecture should change<\/b><span style=\"font-weight: 400;\"> to be able to support future growth.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Convincing the client to invest in reducing the <\/span><b>tech debt<\/b><span style=\"font-weight: 400;\"> was really hard, and such a <\/span><b>comparative technological audit<\/b><span style=\"font-weight: 400;\"> helped in pushing the needle.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">However, the client was still refusing to invest in<\/span><b> tech debt reduction<\/b><span style=\"font-weight: 400;\">. We enforced simple rules to<\/span><b> refactor the system<\/b><span style=\"font-weight: 400;\"> during the delivery of the project.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4348\" src=\"https:\/\/avra.pl\/wp-content\/uploads\/2023\/08\/obraz_2023-08-14_154655654.png\" alt=\"\" width=\"285\" height=\"493\" srcset=\"https:\/\/avra.pl\/wp-content\/uploads\/2023\/08\/obraz_2023-08-14_154655654.png 285w, https:\/\/avra.pl\/wp-content\/uploads\/2023\/08\/obraz_2023-08-14_154655654-58x100.png 58w\" sizes=\"auto, (max-width: 285px) 100vw, 285px\" \/><\/p>\n<p>This required a cautious approach because refactoring can easily destroy the stability of the whole system, and an engineer who started it can be lost in this mission.<\/p>\n<p><span style=\"font-weight: 400;\">We set a few simple principles, which we called <\/span><b>\u201cNo Harm Refactoring Principles<\/b><span style=\"font-weight: 400;\">.\u201d <\/span>Refactoring Principles.&#8221; We will discuss these principles in a separate article linked in this ebook. The audit performed by external engineers was at the end a helpful experience for our development team. It taught us the value of comparing an existing system with other systems of similar size and source code health parameters auditing. Our company now offers Comparative Technological Audit, as we believe that it can support existing teams&#8217; decisions and give new strength to their arguments in front of clients or supervisors.<\/p>\n<p>However, the main reason why tech debt had grown was due to the amount of business logic that was influencing the stability of the whole system because the logic was going through several different modules in the system, resulting in coupling them tightly. The audit confirmed that we needed to change the system architecture (we call such a service: Migrate Monolith to Enterprise Software) to support future growth, but the client still was not ready to make that investment.<\/p>\n\t\t\t\t<\/div>\n\t\t\t\t            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-subtitle   content-wrapper-placeholder\">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"title-wrapper\">\n                    \t\t\t\t    <h2><span style=\"color: #1c55d9;\">Chapter 5<\/span><span style=\"font-weight: 400;\">: The Impact of Management Change<\/span><\/h2>\n\t\t\t\t<\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-content  content-wrapper-placeholder \">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"text-wrapper\">\n\t\t\t\t    <p><span style=\"font-weight: 400;\">In 2013, we confronted the manager of our client with an estimate of six months to reduce the tech debt of the existing solution. We conveyed that delaying this investment would only result in that number increasing significantly, not in a linear manner. While the No Harm Refactoring Principles proved beneficial for small improvements, significant architectural changes were not carried out due to their impact on the delivery of new features.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">However, the situation changed in 2016 when a new manager joined our client. Armed with the results of the <b>Comparative Technological Audit<\/b>, the new manager saw the class diagrams resembling spaghetti, accompanied by decreasing MTBF, increasing LT, decreasing efficiency, increasing TTR, and increasing TTFC \u2013 all critical metrics were underperforming.<\/span><\/p>\n\t\t\t\t<\/div>\n\t\t\t\t            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-subtitle   content-wrapper-placeholder\">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"title-wrapper\">\n                    \t\t\t\t    <h3><span style=\"font-weight: 400;\">Lessons Learned in Software Development<\/span><\/h3>\n\t\t\t\t<\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-content  content-wrapper-placeholder \">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"text-wrapper\">\n\t\t\t\t    <p><span style=\"font-weight: 400;\">The audit process taught us the value of comparative technological audits in supporting decisions and strengthening arguments. It also highlighted the importance of addressing tech debt early on and the challenges of convincing clients to invest in reducing tech debt. The impact of management change can bring new perspectives and opportunities to address tech debt and improve software development processes.<\/span><\/p>\n\t\t\t\t<\/div>\n\t\t\t\t            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-subtitle   content-wrapper-placeholder\">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"title-wrapper\">\n                    \t\t\t\t    <h2 style=\"text-align: left;\"><span style=\"color: #1c55d9;\">Chapter 6<\/span><span style=\"font-weight: 400;\">: Event Storming for Microservices<\/span><\/h2>\n\t\t\t\t<\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-content  content-wrapper-placeholder \">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"text-wrapper\">\n\t\t\t\t    <p><span style=\"font-weight: 400;\">In 2016, we were presented with an opportunity to improve the system architecture of a six-year-old project suffering from tech debt. Over the course of several months, we were attending external events and meetups to gain knowledge, and concluded that <\/span><b>microservices architecture <\/b><span style=\"font-weight: 400;\">was the way to go. After internal workshops, we became most intrigued by the <\/span><b>Event Storming<\/b><span style=\"font-weight: 400;\"> approach and decided to conduct one with our Client.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-4350\" src=\"https:\/\/avra.pl\/wp-content\/uploads\/2023\/08\/obraz_2023-08-14_155228772-570x206.png\" alt=\"\" width=\"570\" height=\"206\" srcset=\"https:\/\/avra.pl\/wp-content\/uploads\/2023\/08\/obraz_2023-08-14_155228772-570x206.png 570w, https:\/\/avra.pl\/wp-content\/uploads\/2023\/08\/obraz_2023-08-14_155228772-1140x412.png 1140w, https:\/\/avra.pl\/wp-content\/uploads\/2023\/08\/obraz_2023-08-14_155228772-768x278.png 768w, https:\/\/avra.pl\/wp-content\/uploads\/2023\/08\/obraz_2023-08-14_155228772-1536x555.png 1536w, https:\/\/avra.pl\/wp-content\/uploads\/2023\/08\/obraz_2023-08-14_155228772-100x36.png 100w, https:\/\/avra.pl\/wp-content\/uploads\/2023\/08\/obraz_2023-08-14_155228772-1366x494.png 1366w, https:\/\/avra.pl\/wp-content\/uploads\/2023\/08\/obraz_2023-08-14_155228772-1024x370.png 1024w, https:\/\/avra.pl\/wp-content\/uploads\/2023\/08\/obraz_2023-08-14_155228772-400x145.png 400w, https:\/\/avra.pl\/wp-content\/uploads\/2023\/08\/obraz_2023-08-14_155228772.png 1549w\" sizes=\"auto, (max-width: 570px) 100vw, 570px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Brandolini&#8217;s profound knowledge and experience in Event Storming left us feeling as if we were playing in the world league. Following the workshop, we gained a comprehensive understanding of our business logic and extracted the core domain called &#8220;Banks&#8221;. This led to the extraction of microservices and the use of Docker and containers. The Event Storming workshop that followed introduced us to a new era of our system &#8211; microservices.<\/span><\/p>\n\t\t\t\t<\/div>\n\t\t\t\t            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-subtitle   content-wrapper-placeholder\">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"title-wrapper\">\n                    \t\t\t\t    <h3><span style=\"font-weight: 400;\">Tech Debt Management Strategies<\/span><\/h3>\n\t\t\t\t<\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-content  content-wrapper-placeholder \">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"text-wrapper\">\n\t\t\t\t    <p><b>Comparative technological audits and event storming<\/b><span style=\"font-weight: 400;\"> are powerful tools in managing tech debt and improving software development.<\/span><span style=\"font-weight: 400;\"> By conducting audits and leveraging event storming, companies can gain insights into the existing system&#8217;s strengths and weaknesses and identify opportunities for architectural changes and the introduction of microservices. These strategies can help mitigate technical debt and create a foundation for more efficient and scalable software development.<\/span><\/p>\n\t\t\t\t<\/div>\n\t\t\t\t            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-subtitle   content-wrapper-placeholder\">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"title-wrapper\">\n                    \t\t\t\t    <h3><span style=\"font-weight: 400;\">Mitigating Technical Debt in Java<\/span><\/h3>\n\t\t\t\t<\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<section class=\"block article-content  content-wrapper-placeholder \">\n    <div class=\"container\">\n        <div class=\"row row-content\">\n            <div class=\"col-12 col-lg-6\">\n\t\t\t\t<div class=\"text-wrapper\">\n\t\t\t\t    <p><span style=\"font-weight: 400;\">In the context of Java development, managing technical debt involves adhering to best practices, applying appropriate design and architecture patterns, and leveraging frameworks like<\/span><b> Spring and Hibernate<\/b><span style=\"font-weight: 400;\">. Continuous monitoring of system performance, load testing, and utilizing tools like <\/span><b>JProfiler<\/b><span style=\"font-weight: 400;\"> can help identify and address inefficiencies.<\/span><span style=\"font-weight: 400;\"> Comparative technological audits and event storming can provide valuable insights into the system&#8217;s architecture and potential areas for improvement. By adopting a proactive approach and investing in tech debt reduction, companies can mitigate technical debt in Java projects and ensure long-term system optimization<\/span><\/p>\n<p><strong>Read More:<\/strong><\/p>\n<ul>\n<li>Part 1: &#8220;<a href=\"https:\/\/avra.pl\/en\/cafeteria-system-story\/\">The Beginning of a Big Project<\/a>&#8220;<\/li>\n<li>Part 3: &#8220;<a href=\"https:\/\/avra.pl\/en\/new-beginning-with-microservices-architecture\/\">New Beginning with Microservices Architecture<\/a>&#8220;.<\/li>\n<\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t    <div class=\"image-wrapper\">\n\t\t\t\t        <img loading=\"lazy\" decoding=\"async\" width=\"957\" height=\"958\" src=\"https:\/\/avra.pl\/wp-content\/uploads\/2023\/06\/obraz_2023-06-16_114426275.png\" class=\"\" alt=\"\" srcset=\"https:\/\/avra.pl\/wp-content\/uploads\/2023\/06\/obraz_2023-06-16_114426275.png 957w, https:\/\/avra.pl\/wp-content\/uploads\/2023\/06\/obraz_2023-06-16_114426275-570x571.png 570w, https:\/\/avra.pl\/wp-content\/uploads\/2023\/06\/obraz_2023-06-16_114426275-300x300.png 300w, https:\/\/avra.pl\/wp-content\/uploads\/2023\/06\/obraz_2023-06-16_114426275-768x769.png 768w, https:\/\/avra.pl\/wp-content\/uploads\/2023\/06\/obraz_2023-06-16_114426275-100x100.png 100w, https:\/\/avra.pl\/wp-content\/uploads\/2023\/06\/obraz_2023-06-16_114426275-400x400.png 400w\" sizes=\"auto, (max-width: 957px) 100vw, 957px\" \/>\t\t\t\t    <\/div>\n\t\t\t\t            <\/div>\n        <\/div>\n    <\/div>\n<\/section>","protected":false},"excerpt":{"rendered":"","protected":false},"author":5,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-4095","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v19.0 (Yoast SEO v19.4) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Comparative Technological Audit - Avra Software<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/avra.pl\/en\/comparative-technological-audit\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Comparative Technological Audit\" \/>\n<meta property=\"og:url\" content=\"https:\/\/avra.pl\/en\/comparative-technological-audit\/\" \/>\n<meta property=\"og:site_name\" content=\"Avra Software\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-14T13:54:54+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/avra.pl\/#website\",\"url\":\"https:\/\/avra.pl\/\",\"name\":\"Avra Software\",\"description\":\"Automatyzujemy procesy biznesowe i sprzeda\u017cowe\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/avra.pl\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/avra.pl\/en\/comparative-technological-audit\/\",\"url\":\"https:\/\/avra.pl\/en\/comparative-technological-audit\/\",\"name\":\"Comparative Technological Audit - Avra Software\",\"isPartOf\":{\"@id\":\"https:\/\/avra.pl\/#website\"},\"datePublished\":\"2023-06-16T09:44:44+00:00\",\"dateModified\":\"2023-08-14T13:54:54+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/avra.pl\/en\/comparative-technological-audit\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/avra.pl\/en\/comparative-technological-audit\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/avra.pl\/en\/comparative-technological-audit\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/avra.pl\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Comparative Technological Audit\"}]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Comparative Technological Audit - Avra Software","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/avra.pl\/en\/comparative-technological-audit\/","og_locale":"en_US","og_type":"article","og_title":"Comparative Technological Audit","og_url":"https:\/\/avra.pl\/en\/comparative-technological-audit\/","og_site_name":"Avra Software","article_modified_time":"2023-08-14T13:54:54+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/avra.pl\/#website","url":"https:\/\/avra.pl\/","name":"Avra Software","description":"Automatyzujemy procesy biznesowe i sprzeda\u017cowe","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/avra.pl\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/avra.pl\/en\/comparative-technological-audit\/","url":"https:\/\/avra.pl\/en\/comparative-technological-audit\/","name":"Comparative Technological Audit - Avra Software","isPartOf":{"@id":"https:\/\/avra.pl\/#website"},"datePublished":"2023-06-16T09:44:44+00:00","dateModified":"2023-08-14T13:54:54+00:00","breadcrumb":{"@id":"https:\/\/avra.pl\/en\/comparative-technological-audit\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/avra.pl\/en\/comparative-technological-audit\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/avra.pl\/en\/comparative-technological-audit\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/avra.pl\/en\/"},{"@type":"ListItem","position":2,"name":"Comparative Technological Audit"}]}]}},"_links":{"self":[{"href":"https:\/\/avra.pl\/en\/wp-json\/wp\/v2\/pages\/4095","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/avra.pl\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/avra.pl\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/avra.pl\/en\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/avra.pl\/en\/wp-json\/wp\/v2\/comments?post=4095"}],"version-history":[{"count":8,"href":"https:\/\/avra.pl\/en\/wp-json\/wp\/v2\/pages\/4095\/revisions"}],"predecessor-version":[{"id":4355,"href":"https:\/\/avra.pl\/en\/wp-json\/wp\/v2\/pages\/4095\/revisions\/4355"}],"wp:attachment":[{"href":"https:\/\/avra.pl\/en\/wp-json\/wp\/v2\/media?parent=4095"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}