Better Software Quality Requires Stronger Coding Skills
Your developers need formal training and certification
Now that software affects almost every aspect of our lives, it’s easier than ever to see the importance of high-quality coding. And since coding is obviously a craft, such craftsmanship needs clear criteria to assess its quality.
However, there seems to be no consensus about what software quality really means — and, all too often, no sense of urgency to establish quality standards.
Asking Coders What They Think About Software Quality
That’s why O’Reilly and SIG partnered at the beginning of this year to conduct a poll to ask working software developers about what makes great-quality code, and how it should be measured.
Some noteworthy outcomes:
- 90% of respondents agree that “a practical and measurable standard on code quality will help towards improving a software system.”
- 70% of respondents believe that maintainability is the most important non-functional aspect of code to measure, even when compared to performance or security.
- The top 3 reasons for not using software quality standards were “lack of consensus on what software quality is/which standards to use,” “currently has no priority,” and “lack of management support.”
- The vast majority of respondents think that standards help, but less than 50% are planning on using some sort of standards in the near future.
So, yes, everybody from coders to executives agrees about the importance of software quality. However, acknowledging the abstract concept and actually defining software quality are two different things. Unfortunately, “beauty is in the eye of the beholder” is typically the standard for software quality: Developers judge mainly on technical capabilities, whereas executives focus on end-user experience, and delivery on time and within budget.
Would Training in Software Quality Help?
As we analyzed the poll results in depth, we kept asking ourselves one question: Would formal training in quality software development help you put software quality higher on your organization’s management agenda? So we asked the software development community that exact question.
The result? 75% of respondents believed that such formal training would help by standardizing the definition of quality. Yet comments of respondents suggested that only a tiny fraction — perhaps 5% — of organizations already have software quality on the management agenda. That gap strongly suggests that software quality is still an underexposed topic within many organizations.
So it seems respondents agree about the importance of software quality, yet acknowledge that quantity is being valued over quality in their organization.
Poor Software Quality Will Cost You — Big Time
One way or another, poor software quality can have substantial implications in terms of time and money investment. Research suggests that companies spend more than $300 billion per year worldwide debugging their software. On top of that, fixing software bugs after release rather than during the design process costs four to five times as much.
Obviously, quality shouldn’t be an afterthought. Given the economic impacts — and strategic importance — of code quality, we need to change that mindset, and we need to do it fast.
In our own work, we’ve demonstrated that software quality can be tangible and measured objectively, using a standardized definition. Recently, we addressed the issue of the ever-increasing global code volume and how there are nowhere near enough new software developers trained to maintain it. And training might be the key to maintaining a constant level of software quality.
Why Certification Matters
The need for formal training is emphasized by similar recent research findings on skills and resources gaps:
1. Gartner states in their annual CIO Agenda Report that talent management is still the biggest barrier to CIO success. “Talent management practices are not keeping up with the ever-increasing and changing needs of the digital world.”
2. CNBC adds that technology’s biggest risk is a skills shortage. People still care more about traditional IT infrastructure, whereas they should be focusing on increasing and improving skills.
3. Developer Economics notes that developers are getting less experienced, on average, every year, which also stresses the need for formal training to improve skills.
If we want to bridge these gaps, we need to start at the basics: improving the skills of talented developers. To make sure that the training is rigorous and it sticks, the knowledge gained should be confirmed through certification.
Certification allows developers to demonstrate their expertise and offers organizations the chance to lower software maintenance costs and improve time to market. The skills benchmark created by accreditation helps set expectations and meet real-world requirements — and it can help you sleep better at night.
Acknowledgements
Thanks to Y. Kanellopoulos for his vision on formal training and certification, and helping me capture the essence.