{"id":11240,"date":"2022-01-18T19:09:34","date_gmt":"2022-01-19T01:09:34","guid":{"rendered":"https:\/\/threecloud.wpengine.com\/?p=11240"},"modified":"2024-02-28T07:46:01","modified_gmt":"2024-02-28T15:46:01","slug":"drowning-in-technical-debt-start-understanding-it-better","status":"publish","type":"post","link":"https:\/\/3cloudsolutions.com\/resources\/drowning-in-technical-debt-start-understanding-it-better\/","title":{"rendered":"Drowning in Technical Debt:\u00a0Start\u00a0Understanding It\u00a0Better"},"content":{"rendered":"<p><span data-contrast=\"auto\">In our series,\u00a0<\/span><i><span data-contrast=\"auto\">Drowning in Technical Debt<\/span><\/i><span data-contrast=\"auto\">, we\u2019re digging into\u00a0<\/span><span data-contrast=\"auto\">the<\/span><span data-contrast=\"auto\">\u00a0commonly used but\u00a0<\/span><span data-contrast=\"auto\">often misunderstood phrase \u201ctechnical debt\u201d<\/span><span data-contrast=\"auto\">, with a mission to help more organizations identify it and\u00a0<\/span><span data-contrast=\"auto\">work toward a\u00a0<\/span><span data-contrast=\"auto\">more\u00a0<\/span><span data-contrast=\"auto\">manageable amount of it.<\/span><span data-contrast=\"auto\">\u00a0<\/span><span data-contrast=\"auto\">For this first post, we\u2019re defining technical debt and looking at how it can creep into organizations.\u00a0<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Do you see your development team working hard, but still not delivering the value they\u2019re capable of? Do you find yourself saying, \u201cThings weren\u2019t always like this,\u201d implying the problem has grown worse over time? Do you regularly hear, \u201cWe can\u2019t do that yet, because that part of the system will break if we change it\u201d? Your organization\u2019s total technical debt could be the culprit of\u00a0all of\u00a0these pain points, and\u00a0<\/span><span data-contrast=\"auto\">others that you\u2019re not even aware of yet.\u00a0\u00a0<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true}\">\u00a0<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true}\">\u00a0<\/span><\/p>\n<h2><span data-contrast=\"none\">What\u00a0<\/span><span data-contrast=\"none\">Is Technical Debt?<\/span><span data-contrast=\"none\">\u202f<\/span><span data-contrast=\"none\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"none\">Technical debt is a metaphor designed to help\u00a0<\/span><span data-contrast=\"none\">us<\/span><span data-contrast=\"none\">\u00a0understand where\u00a0<\/span><span data-contrast=\"none\">we\u2019r<\/span><span data-contrast=\"none\">e borrowing development time today, only to repay it in the future. Ward Cunningham, one of the co-authors of the\u00a0<\/span><i><span data-contrast=\"none\">Manifest<\/span><\/i><i><span data-contrast=\"none\">o<\/span><\/i><i><span data-contrast=\"none\">\u00a0for Agile Software Development<\/span><\/i><span data-contrast=\"none\">,<\/span><span data-contrast=\"none\">\u00a0<\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Technical_debt#Consequences\"><span data-contrast=\"none\">first c<\/span><span data-contrast=\"none\">o<\/span><span data-contrast=\"none\">ined the phrase<\/span><\/a><span data-contrast=\"none\">\u00a0i<\/span><span data-contrast=\"none\">n 1992:<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">&#8220;Shipping first time code is like going into debt. A little debt speeds development so long as it is paid back promptly with a rewrite&#8230; The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as\u202finterest\u202fon that debt. Entire engineering organizations can be brought to a stand-still under the debt load of an unconsolidated implementation,\u202fobject-oriented\u202for otherwise.\u201d<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;335559685&quot;:720}\">\u00a0<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">In 2009, Cunningham went\u00a0<\/span><span data-contrast=\"none\">even further\u00a0<\/span><span data-contrast=\"none\">to\u00a0<\/span><a href=\"https:\/\/www.youtube.com\/watch?v=pqeJFYwnkjE\"><span data-contrast=\"none\">address a common mis<\/span><span data-contrast=\"none\">i<\/span><span data-contrast=\"none\">nterpretation<\/span><\/a><span data-contrast=\"none\">\u00a0of technical debt as motivation for refactoring.\u00a0<\/span><span data-contrast=\"none\">\u201cThe ability to pay back debt,\u201d he sa<\/span><span data-contrast=\"none\">id<\/span><span data-contrast=\"none\">, \u201c\u2026depends upon you writing code that is clean enough to be able to refactor as you come to understand your problem.\u201d<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true}\">\u00a0<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true}\">\u00a0<\/span><\/p>\n<h2><span data-contrast=\"none\">How Our Organizations Accrue Technical Debt<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"none\">Among the\u00a0<\/span><span data-contrast=\"none\">experienced\u00a0<\/span><span data-contrast=\"none\">Agilists<\/span><span data-contrast=\"none\">\u00a0<\/span><span data-contrast=\"none\">at 3Cloud<\/span><span data-contrast=\"none\">, we\u2019ve see<\/span><span data-contrast=\"none\">n<\/span><span data-contrast=\"none\">\u00a0<\/span><span data-contrast=\"none\">the full spectrum<\/span><span data-contrast=\"none\">\u00a0of technical debt\u00a0<\/span><span data-contrast=\"none\">across<\/span><span data-contrast=\"none\">\u00a0<\/span><span data-contrast=\"none\">healthcare<\/span><span data-contrast=\"none\">,<\/span><span data-contrast=\"none\">\u00a0insurance<\/span><span data-contrast=\"none\">,<\/span><span data-contrast=\"none\">\u00a0financial services<\/span><span data-contrast=\"none\">, and more<\/span><span data-contrast=\"none\">.\u00a0<\/span><span data-contrast=\"none\">Even across these diverse sectors, we\u00a0<\/span><span data-contrast=\"none\">often<\/span><span data-contrast=\"none\">\u00a0see companies building up their technical debt\u00a0<\/span><span data-contrast=\"none\">in three ways<\/span><span data-contrast=\"none\">.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true}\">\u00a0<\/span><\/p>\n<h3><span data-contrast=\"none\">1. A<\/span><strong><span data-contrast=\"none\">\u00a0<\/span><\/strong><span data-contrast=\"none\">S<\/span><span data-contrast=\"none\">trategic<\/span><strong><span data-contrast=\"none\">\u00a0<\/span><\/strong><span data-contrast=\"none\">Decision<\/span><\/h3>\n<p><span data-contrast=\"none\">As with financial debt, sometimes you need to borrow from the future to realize a benefit today. Used strategically, technical debt is a tool that can help you get to market fast. For example, say your development team gives you two options:\u00a0<\/span><span data-contrast=\"none\">one that gets value out the door in two weeks with a solution that\u00a0<\/span><span data-contrast=\"none\">the<\/span><span data-contrast=\"none\">y know will likely cause performance issues down the road, and one that delivers the same value in two\u00a0<\/span><i><span data-contrast=\"none\">months<\/span><\/i><span data-contrast=\"none\">\u00a0but also introduces new architecture to support long<\/span><span data-contrast=\"none\">&#8211;<\/span><span data-contrast=\"none\">term scalability throughout the system<\/span><span data-contrast=\"none\">.<\/span><span data-contrast=\"none\">\u00a0Choosing the two-week option could allow you to deliver a small scope quickly, while\u00a0<\/span><i><span data-contrast=\"none\">still\u00a0<\/span><\/i><span data-contrast=\"none\">creating a good end user experience<\/span><span data-contrast=\"none\">.\u00a0<\/span><span data-contrast=\"none\">However, it also means you\u2019ll consciously bake a known performance problem into the product, which your team will have to eventually deal with.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">You also<\/span><span data-contrast=\"none\">\u00a0might decide to accept technical debt when you\u2019re sunsetting an application. You don\u2019t need to invest in the long term when you know you\u2019ll be migrating to a new platform.\u00a0<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true}\">\u00a0<\/span><\/p>\n<h3><span data-contrast=\"none\">2. L<\/span><span data-contrast=\"none\">earning\u00a0<\/span><span data-contrast=\"none\">E<\/span><span data-contrast=\"none\">xploration<\/span><\/h3>\n<p><span data-contrast=\"none\">When technical debt is accrued as part of learning exploration, the objective is to learn how\u00a0<\/span><i><span data-contrast=\"none\">not\u00a0<\/span><\/i><span data-contrast=\"none\">to deliver and forget. This happens when a team doesn\u2019t know enough to make a technically excellent decision, because they\u2019re creating something innovative and are working in a new space. Sometimes, a\u00a0<\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Spike_(software_development)\"><span data-contrast=\"none\">spike<\/span><\/a><span data-contrast=\"none\">\u00a0<\/span><span data-contrast=\"none\">turns into production code.\u00a0<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">For example, imagine your team\u00a0<\/span><span data-contrast=\"none\">has been tasked with creating a single<\/span><span data-contrast=\"none\">\u00a0<\/span><span data-contrast=\"none\">sign<\/span><span data-contrast=\"none\">&#8211;<\/span><span data-contrast=\"none\">on experience for users<\/span><span data-contrast=\"none\">. S<\/span><span data-contrast=\"none\">ince no<\/span><span data-contrast=\"none\">\u00a0one<\/span><span data-contrast=\"none\">\u00a0on the team has expertise in this area, they decide to roll their own provider rather than using an off-the-shelf solution. Later, the team learns\u00a0<\/span><span data-contrast=\"none\">about\u00a0<\/span><span data-contrast=\"none\">existing solutions, but the hand-rolled solution is now baked into the core of\u00a0<\/span><span data-contrast=\"none\">your<\/span><span data-contrast=\"none\">\u00a0application.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true}\">\u00a0<\/span><\/p>\n<h3><span data-contrast=\"none\">3. P<\/span><span data-contrast=\"none\">rocess-Induced Debt<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"none\">The process-induced variant of development debt is not strategic, resulting instead from a culture that doesn\u2019t enable your team to deliver quality code. Author and engineer\u00a0<\/span><a href=\"https:\/\/sites.google.com\/site\/unclebobconsultingllc\/a-mess-is-not-a-technical-debt\"><span data-contrast=\"none\">Robert \u2018Uncle Bob\u2019 Martin<\/span><\/a><span data-contrast=\"none\">\u00a0<\/span><span data-contrast=\"none\">goes so far as to define this separately, saying\u00a0<\/span><span data-contrast=\"none\">\u201ca mess is not a technical debt.\u201d While strategic tech debt decisions \u201care made based on real project constraints\u201d\u2013meaning \u201cthey are\u00a0risky, but\u00a0can be beneficial\u201d\u2013unreasoned\u00a0<\/span><span data-contrast=\"none\">tech\u00a0<\/span><span data-contrast=\"none\">debt is not based on project constraints<\/span><span data-contrast=\"none\">\u00a0and is solely based on what your culture allows (or most importantly doesn\u2019t allow) your team to accomplish.\u00a0<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">Say your team is working nights and weekends to hit a deadline, and you skimp on testing because \u201cwe have to hit this date\u201d and \u201cour scope can\u2019t change.\u201d\u00a0<\/span><span data-contrast=\"none\">Unrealistic timelines without the option to vary scope will create this most insidious form of technical debt.\u00a0<\/span><span data-contrast=\"none\">\u00a0<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true}\">\u00a0<\/span><\/p>\n<h2><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true}\">\u00a0<\/span><span data-contrast=\"none\">Where It All Leads<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"none\">If you don\u2019t keep track of how much technical debt you\u2019re accruing, it\u00a0<\/span><i><span data-contrast=\"none\">will<\/span><\/i><i><span data-contrast=\"none\">\u00a0<\/span><\/i><span data-contrast=\"none\">impact your business\u00a0<\/span><span data-contrast=\"none\">because you won&#8217;t know how bad things are until you<\/span><span data-contrast=\"none\">\u2019re\u00a0<\/span><span data-contrast=\"none\">overwhelmed with<\/span><span data-contrast=\"none\">\u00a0<\/span><span data-contrast=\"none\">disappointed customers and\u00a0<\/span><span data-contrast=\"none\">non-scalable solutions<\/span><span data-contrast=\"none\">. There are plenty of cases where once-dominant\u00a0<\/span><span data-contrast=\"none\">organizations<\/span><span data-contrast=\"none\">\u00a0in this situation, including the\u00a0<\/span><span data-contrast=\"none\">Unites States Postal Service<\/span><span data-contrast=\"none\">,\u00a0<\/span><span data-contrast=\"none\">have\u00a0<\/span><span data-contrast=\"none\">had to watch competitors charge past them<\/span><span data-contrast=\"none\">.\u00a0<\/span><span data-contrast=\"none\">According to an\u00a0<\/span><a href=\"https:\/\/www.accenture.com\/_acnmedia\/PDF-85\/Accenture-Decouple-Innovate-updated.pdf#zoom=50\"><span data-contrast=\"none\">Accenture study<\/span><\/a><span data-contrast=\"none\">, 80 perce<\/span><span data-contrast=\"none\">nt of federal IT managers said technical debt was limiting their ability to\u00a0<\/span><span data-contrast=\"none\">improve<\/span><span data-contrast=\"none\">\u00a0<\/span><span data-contrast=\"none\">legacy systems and\/or move to the cloud.<\/span><span data-contrast=\"none\">\u00a0For the USPS,\u00a0<\/span><span data-contrast=\"none\">it has all resulted<\/span><span data-contrast=\"none\">\u00a0<\/span><span data-contrast=\"none\">in<\/span><span data-contrast=\"none\">\u00a0FedEx, UP<\/span><span data-contrast=\"none\">S, and\u00a0<\/span><a href=\"https:\/\/www.zdnet.com\/article\/usps-reports-decline-in-package-shipments-as-amazon-brings-more-deliveries-in-house\/\"><span data-contrast=\"none\">most recently Amazon<\/span><\/a><span data-contrast=\"none\">\u00a0driv<\/span><span data-contrast=\"none\">ing<\/span><span data-contrast=\"none\">\u00a0innovation and\u00a0<\/span><span data-contrast=\"none\">winning customers in the space.\u00a0<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">If your team c<\/span><span data-contrast=\"none\">ontinues to acquire technical deb<\/span><span data-contrast=\"none\">t<\/span><span data-contrast=\"none\">\u00a0without\u00a0<\/span><span data-contrast=\"none\">hav<\/span><span data-contrast=\"none\">ing<\/span><span data-contrast=\"none\">\u00a0<\/span><span data-contrast=\"none\">a clear strategy<\/span><span data-contrast=\"none\">, at a certain point your velocity will just\u00a0<\/span><span data-contrast=\"none\">be\u00a0<\/span><span data-contrast=\"none\">spent\u00a0<\/span><span data-contrast=\"none\">paying interest on your debt. You<\/span><span data-contrast=\"none\">\u2019ll<\/span><span data-contrast=\"none\">\u00a0no longer have extra funds to give to delivering new features or innovat<\/span><span data-contrast=\"none\">ive<\/span><span data-contrast=\"none\">\u00a0solutions.<\/span><span data-contrast=\"none\">\u00a0In my next post, we\u2019ll dig even deeper into why\u00a0<\/span><span data-contrast=\"none\">technical debt is so bad for your company.\u00a0<\/span><span data-contrast=\"none\">In the meantime, use this as a primer on what technical debt really is, and\u00a0<\/span><a href=\"https:\/\/3cloudsolutions.com\/get-started\"><span data-contrast=\"none\">reach out<\/span><\/a><span data-contrast=\"none\">\u00a0if you could use some help evolving\u00a0<\/span><span data-contrast=\"none\">your approach to\u00a0<\/span><span data-contrast=\"none\">paying it down.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true}\">\u00a0<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In our series,\u00a0Drowning in Technical Debt, we\u2019re digging into\u00a0the\u00a0commonly used but\u00a0often misunderstood phrase \u201ctechnical debt\u201d,&mldr;<\/p>\n","protected":false},"author":63,"featured_media":11450,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[262],"tags":[],"class_list":["post-11240","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure-strategy-management","topics-blog"],"acf":[],"_links":{"self":[{"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/posts\/11240","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/users\/63"}],"replies":[{"embeddable":true,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/comments?post=11240"}],"version-history":[{"count":0,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/posts\/11240\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/media\/11450"}],"wp:attachment":[{"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/media?parent=11240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/categories?post=11240"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/tags?post=11240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}