{"id":678,"date":"2016-06-29T06:26:00","date_gmt":"2016-06-29T06:26:00","guid":{"rendered":"https:\/\/staging.infragistics.com\/blogs\/?p=678"},"modified":"2025-02-26T12:08:12","modified_gmt":"2025-02-26T12:08:12","slug":"the-human-cost-of-tech-debt","status":"publish","type":"post","link":"https:\/\/www.infragistics.com\/blogs\/the-human-cost-of-tech-debt","title":{"rendered":"The Human Cost of Tech Debt"},"content":{"rendered":"\n<p>Coined by\u00a0Ward Cunningham, the term introduces the idea that taking shortcuts in your software today not only means paying the price eventually &#8211; it means paying that price with interest. \u00a0In other words, introducing that global variable today and saving half a day&#8217;s work ahead of shipping means that you&#8217;re going to pay for it with more than half a day&#8217;s labor down the line.<\/p>\n\n\n\n<p>If you&#8217;re not already familiar with the concept of\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Technical_debt\" target=\"_blank\" rel=\"noopener noreferrer\">technical debt<\/a>, it&#8217;s worth becoming familiar with it. \u00a0I say this not only because it is a common industry term, but because it is an important concept.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"\/community\/cfs-filesystemfile\/__key\/CommunityServer.Blogs.Components.WeblogFiles\/erikdietrich.Summer_5F00_2016\/7762.technical_5F00_debt.jpg\" alt=\"human  debt\" title=\"human  debt\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"the-power-of-the-metaphor\">The Power of the Metaphor<\/h2>\n\n\n\n<p>I&#8217;ve spent significant time doing IT management consulting in recent years, after spending years and years writing code. &nbsp;And I can tell you that this metaphor for shortcuts in the codebase is a&nbsp;<i>powerful<\/i>&nbsp;one when it comes to communication between the business and the software development group. &nbsp;When you explain software decisions to managers and MBAs using the language of economics, they&nbsp;<i>get it.<\/i><\/p>\n\n\n\n<p>Because of the metaphor&#8217;s power and&nbsp;subsequent effectiveness for business concerns, it is often used to describe the health of projects, particularly vis a vis deadlines and milestones. &nbsp;The developers may communicate that an aggressive deadline will result in technical debt, making features in the future take longer to ship. &nbsp;Analysts and project managers might account for technical debt when discussing slipped deadlines. &nbsp;IT upper management&nbsp;might&nbsp;ask for an assessment of the amount of technical in an application when making a strategic, replace\/retire\/rewrite decision.<\/p>\n\n\n\n<p>The problem of technical debt is for most people, in essence, a problem of time to market.<\/p>\n\n\n\n<p>But I&#8217;d like to talk today about the human side of the problem. &nbsp;And,&nbsp;make no mistake &#8212; in business, all human problems are also business problems, viewed with a wide enough lens. &nbsp;Unhappy humans are unhappy workers, and unhappy workers are less productive. &nbsp;Yet, this angle of technical debt is seldom discussed, in my experience.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"unpleasant-work\">Unpleasant Work<\/h2>\n\n\n\n<p>For a manager, a code base high in technical debt means that feature delivery slows to a crawl, which creates a lot of frustration and awkward moments in conversation about business capability. &nbsp;For a developer, this frustration is even more acute. &nbsp; Nobody likes working with a significant handicap and being unproductive day after day, and that is exactly what this sort of codebase means for developers.<\/p>\n\n\n\n<p>Each day they go to the office knowing that it&#8217;s going to take the better part of a day to do something simple like add a checkbox to a form. &nbsp;They know that they&#8217;re going to have to manufacture endless explanations for why seemingly simple things take them a long time. &nbsp;When new developers are hired or consultants brought in, they know that they&#8217;re going to have to face confused looks, followed by those newbies trying to hide mild contempt.<\/p>\n\n\n\n<p>To tie this back to the tech debt metaphor, think of someone with mountains of debt trying to explain being harassed by creditors. &nbsp;It&#8217;s&nbsp;<i>embarrassing<\/i>, which is, in turn,&nbsp;demoralizing.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"team-infighting\">Team Infighting<\/h2>\n\n\n\n<p>Not surprisingly, this kind of situation tends to lead to bickering among the team. &nbsp;Again, the metaphor holds as one would expect this kind of behavior from a married couple with crippling debt. &nbsp;Teams draw battle lines.<\/p>\n\n\n\n<p>It might be the aforementioned newbies against the tenured staff upon whom they blame the problem. &nbsp;It might be the maintenance programmers versus the developers or the people on the green field project versus the people responsible for the legacy beast in which the tech debt resides.<\/p>\n\n\n\n<p>Whatever those lines may be, they become real and they become problematic. &nbsp;They add acrimony on top of the frustration and embarrassment of the problem itself.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"atrophied-skills\">Atrophied Skills<\/h2>\n\n\n\n<p>As embarrassment mounts and the blame game is played more vigorously, team members can feel their professional relevance slipping away. &nbsp;After all, tech debt creates substantial drag not only on feature development, but on the general evolution of a codebase.<\/p>\n\n\n\n<p>In these sorts of codebases, everything becomes&nbsp;<i>difficult<\/i>. &nbsp;Teams postpone upgrading to the latest version of the language. &nbsp;They resist incorporating modern architectural and design practices. &nbsp;They fear to replace outdated third party add-ins with modern ones. &nbsp;Generally speaking, they want to touch things as little as humanly possible, because doing so further impairs their already lethargic process. &nbsp;It&#8217;s too slow and it&#8217;s too risky.<\/p>\n\n\n\n<p>But even as they make these decisions (or at least live with them when others make them), they understand that their market value is waning with each passing day. &nbsp;It is not lost on them that while the wide development world embraces the newest JavaScript frameworks and domain driven design approaches, they&#8217;re struggling to add features to a wheezy, CRUD-based, Winforms application.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"the-hidden-business-cost-turnover-and-attrition\">The Hidden Business Cost: Turnover and Attrition<\/h2>\n\n\n\n<p>Hopefully it should be obvious to management that unhappy developers is a business problem and a serious one at that. &nbsp;In the current IT market climate, developers have options &#8212; even ones stuck on a legacy codebase with crippling tech debt.<\/p>\n\n\n\n<p>Coming to work each day to work in a tortured code base, with disgruntled people, and with a mounting sense of irrelevance creates a team full of people that are going to be open to other options. &nbsp;And, sooner or later, they&#8217;re going to start leaving, and the ones leading the charge will be the ones the organization can least afford to lose. &nbsp;It will become harder and harder to hire into the group and it will take longer and longer for those who do come in to be productive.<\/p>\n\n\n\n<p>So when you think of tech debt, don&#8217;t think only in terms of the business problem of delayed features and rising defect counts. &nbsp;Think of the human cost, and the much more serious, much longer term business problem that results.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"is-there-a-solution\">Is There a Solution?<\/h2>\n\n\n\n<p>Now, there is a better and more efficient way to try to tackle all this &#8211; with the help of low-code <a href=\"https:\/\/www.appbuilder.dev\/platform\" rel=\"noopener\">drag and drop App Builder<sup>TM<\/sup><\/a>. You can learn all about it and even how to reduce cost during a recession by reading the following blog post:<\/p>\n\n\n\n<p><a href=\"https:\/\/www.appbuilder.dev\/blog\/what-is-low-code-process-automation\" rel=\"noopener\">What Is Low-Code Process Automation &amp; How Can Your Business Benefit from It?<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.appbuilder.dev\/platform\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/static.infragistics.com\/marketing\/Blog-in-content-ads\/App-Builder\/app-builder-wysiwyg.gif\" alt=\"low-code App Builder\"\/><\/a><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Coined by\u00a0Ward Cunningham, the term introduces the idea that taking shortcuts in your software today not only means paying the price eventually &#8212; it means paying that price with interest. \u00a0In other words, introducing that global variable today and saving half a day&#8217;s work ahead of shipping means that you&#8217;re going to pay for it with more than half a day&#8217;s labor down the line.<\/p>\n","protected":false},"author":21,"featured_media":2370,"comment_status":"publish","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[],"class_list":["post-678","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-how-to"],"_links":{"self":[{"href":"https:\/\/www.infragistics.com\/blogs\/wp-json\/wp\/v2\/posts\/678","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.infragistics.com\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.infragistics.com\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.infragistics.com\/blogs\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/www.infragistics.com\/blogs\/wp-json\/wp\/v2\/comments?post=678"}],"version-history":[{"count":3,"href":"https:\/\/www.infragistics.com\/blogs\/wp-json\/wp\/v2\/posts\/678\/revisions"}],"predecessor-version":[{"id":2511,"href":"https:\/\/www.infragistics.com\/blogs\/wp-json\/wp\/v2\/posts\/678\/revisions\/2511"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.infragistics.com\/blogs\/wp-json\/wp\/v2\/media\/2370"}],"wp:attachment":[{"href":"https:\/\/www.infragistics.com\/blogs\/wp-json\/wp\/v2\/media?parent=678"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.infragistics.com\/blogs\/wp-json\/wp\/v2\/categories?post=678"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.infragistics.com\/blogs\/wp-json\/wp\/v2\/tags?post=678"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}