Reduce the Number of Code Defects by 50 Percent
Take the challenge!
22 December 2015
Opinions represent those of the author and not of Scrum Alliance. The sharing of member-contributed content on this site does not imply endorsement of specific Scrum methods or practices beyond those taught by Scrum Alliance Certified Trainers and Coaches.
When looking back on my career and more than 20 years of software development, I can't help but think about how much the information technology sector has gone full circle, much like the fashion industry.
Technology in the early years included mainframes and client computers, which were followed by micro networks. Today we are back to cloud servers (mainframes) and client computers. Just like bell-bottom jeans, we have gone full circle.
It is time to go full circle with coding standards. There was a time when developers who were building massive applications with thousands and millions of lines of code without debuggers developed products almost completely free of defects. These were applications with less than 0.1 defects per one thousand lines of code in production. However, in today's world, some applications are lucky if they have only ten defects per one thousand lines of code. So what has happened? Are systems more complex? Are the applications doing anything different? What is the explanation?
Coding has become extremely bloated with multitiered architecture, but that isn't the root cause of these issues. The long and short of it all is that coding standards have substantially degraded over the past three decades. It isn't just coding standards, though. Business standards and business direction have decreased substantially due to leaders insulating themselves from the development team. This insulation or isolation directly affects lines of communication, which often results in missing requirements and countless miscommunications. What business people may not realize is that every time there is an added layer of communication, communication channels increase exponentially. This ultimately increases the chances of communication breaking down or communication slowing to a crawl.
So how do we fix it all? You can fix it by a two-pronged approach, which I have witnessed lower defects by more than 50 percent in numerous environments, while improving overall code quality. Best of all, it doesn't require additional staff, processes, or development costs.
1. Code-quality accountability. What is code-quality accountability? Developers must test their code no fewer than three times before delivering it to quality assurance.
How do you enforce code quality? Code signing is a good start. Second, use visible defect boards that upper management reviews each week. Strong code quality always circles back to strong code accountability.
2. Business accountability. What is business accountability? The Agile Manifesto states, "Business people and developers must work together daily throughout the project."
How does one enforce business accountability? It starts with business people working directly with developers to reduce miscommunications — miscommunications that exponentially increase with each layer of insulation. Business must come down from its "ivory tower" mentality and work directly with developers to convey clear, direct requirements and remove processes burdened with layer upon layer of bureaucracy and red tape.
Take the challenge, and see if this two-pronged approach, which uses development best practices, does not decrease your organization's defect issues exponentially.
Current rating: 3.5 (4 ratings)
The community welcomes feedback that is constructive and supportive, in the spirit of better understanding and implementation of Scrum.