Two Unexpected Fallouts From Bad Software Quality


Upholding software quality can be difficult. Just when you think you have it mastered, it can crumble in an instant. One company currently dealing with this is Apple. The Wall Street Journal recently examined Apple’s software quality woes:

“No one, it seems, not even Apple Inc., can escape the challenges that come with the scale and complexity of modern networks. Apple is selling 40 different devices this year—one-third more than it did five years ago—increasing the amount of code the engineering team must write to make sure each functions properly. With more high-end features…Apple’s engineering team is facing more challenging software [quality] problems.”

I learned a similar lesson when I was in grade school.

One summer, I started a small car washing business with little more than some soap, sponges and a bucket borrowed from my father. While I was starting this business as a means to buy some new toys (it began with an R/C car, escalated to planes, and eventually guitars), my father saw entrepreneurship as a means to teach two things: work ethic, and the value of a dollar.

What sticks in my mind still to this day however, was his constant insistence on quality. He knew that our neighbors could either hire me, or simply drive a mile down the road to the industrial car wash. If I didn’t differentiate my services, I wouldn’t have any business. Quality would be that differentiator.

In today’s software development market, we’re confronted with similar competition, but loss of customer satisfaction/business is not the only cost associated with bad software quality and poorly written code.

Software Quality’s Impact on Complexity

When an organization allows poor development practices to take hold, software complexity and technical debt can cascade across entire software portfolios. For starters, software complexity has a direct negative effect on the productivity of the engineers working in that code base. If (hypothetically) you were to move a set of engineers from the least complex region of the codebase to the most complex region of the codebase, their productivity would decline (conservatively) by 50%.

This decline in productivity doubles the cost of the engineers working on this region of code! This is of course before you look at the increased levels of defects resulting from dealing with increased software complexity.

Looking at Dan Sturtevant’s MIT Dissertation, we see that high scores of cyclomatic complexity result in a 2.1x increase in defects found within the code base. Recalling that defects increase exponentially in cost depending on the environment (what is $100 to fix in development will be $10,000 or more to fix by the time it makes it to production) the costs can really begin to add up.

Software Quality’s Impact on Talent

As if this wasn’t enough reason to seriously consider the real costs of technical debt, it continues to escalate. Software engineers working in the most complex regions of code can be expected to have a turnover rate of ten times greater than engineers working on less complex code. Employee turnover costs differ per organization, but recruiting costs, relocation fees, vacation pay-outs etc. While those costs are easier to quantify at a given organization, what’s often not being considered is the decrease in productivity between new hires and experiences engineers. You have to weigh in potential training costs, as well as an uptick in bugs, and decrease in overall productivity when comparing an engineer with more experience in the organization to new hires.

While often we think of technical debt as the cost associated with refactoring code, that doesn’t take into consideration the full cost of lingering software complexity. We can see time and time again the negative effects of allowing software development to become a feature factory, in fact we’ve even written about it here. Much like my carwash business, it’s easy to see the impact of poor software quality on your top-line revenue, but you’d be remiss if you didn’t consider the hidden costs poor software quality has within your organization.

We’ll be talking more about software quality and agile software development in our upcoming webinar Beginning your Agile Transformation: A Rountable Discussion on Common Pitfalls and Challenges.

Note, this article references the following: Sturtevant, Daniel J. “System Design and the Cost of Architectural Complexity” PhD Diss., Massachusetts Institute of Technology 2013. Retrieved from  

Filed in: Technical Debt
  This report describes the effects of different industrial factors on  structural quality. Structural quality differed across technologies with COBOL  applications generally having the lowest densities of critical weaknesses,  while JAVA-EE had the highest densities. While structural quality differed  slightly across industry segments, there was almost no effect from whether the  application was in- or outsourced, or whether it was produced on- or off-shore.  Large variations in the densities in critical weaknesses across applications  suggested the major factors in structural quality are more related to  conditions specific to each application. CRASH Report 2020: CAST Research on  the Structural Condition of Critical Applications Report
Open source is part of almost every software capability we use today. At the  very least libraries, frameworks or databases that get used in mission critical  IT systems. In some cases entire systems being build on top of open source  foundations. Since we have been benchmarking IT software for years, we thought  we would set our sights on some of the most commonly used open source software  (OSS) projects. Software Intelligence Report <> Papers
Making sense of cloud transitions for financial and telecoms firms Cloud  migration 2.0: shifting priorities for application modernization in 2019  Research Report
Andy Siegmund
Andy Siegmund Division Lead, Agile Analytics
Andy is the Division Lead for Agile Analytics at CAST Highlight where he helps his clients leverage software intelligence to develop better software, faster. Andy cut his teeth as a DevOps consultant for IT Organizations across North America, specializing in identifying bottlenecks, driving relentless improvement, and quantifying investment returns from tool implementations and consulting services. Andy is an SPC 4.5 and holds degrees from the University of New Hampshire and Rutgers University. When Andy isn’t in the office, he can be found running in the Flatirons near his home in Boulder CO.
Load more reviews
Thank you for the review! Your review must be approved first
You've already submitted a review for this item