Real Developers Demand Application Quality Measures, Page 2
How Does Data on Application Quality Benefit Developers?
Software developers experience five primary benefits when they have access to data on the internal software quality of their applications.
- Better diagnostics Objective quantitative and qualitative feedback on the internal quality of an application can help developers pinpoint specific weaknesses in the code that must be fixed in order to avoid problems such as outages, degraded performance, data corruption, and security breaches. Among the greatest causes of such operational problems are non-functional weaknesses in the code that frequently avoid detection during test. Many of these weaknesses result from harmful interactions among different technologies whose consequences were difficult to understand or detect during development and test. Consequently, assisting developers with comprehensive automated analysis of the interactions across an entire application, rather than only on their own components, empowers them to strengthen the overall integrity and dependability of a complex application. Eliminating these problems helps developers ensure they are delivering the best possible service to the business.
- Less rework Industry data on rework in IT are staggering. Between 30% and 50% of all the effort spent on application development in most organizations is spent fixing problemsrework! Since the cost of fixing a defect typically increases tenfold across each major phase of development, the earlier a defect can be detected, the less rework a developer will perform. When developers can use comprehensive data on the internal quality of their applications to eliminate problems before they are placed in operation, not only does the cost of ownership decrease, but the damaging losses from outages, security breaches, and the like are reduced as well. World class development organizations reduce rework to less than 8% of their overall development costs.
- Greater productivity Studies have repeatedly shown that 50% of the time devoted to maintaining and enhancing existing applications is spent trying to figure out what is going on in the code. Thus, only half a developers effort is devoted to designing, implementing and testing new functionality. Dramatic improvements in the quality of an applications architecture and code can significantly reduce the amount of time developers need to understand the inner workings of an application, accelerating them to the productive part of their work. Much of the difficulty in understanding a modern application comes from the complex interactions among different tiers and technologies. When developers can refactor their code to improve its internal quality, they not only deliver new functionality much quicker to the business, but they inject fewer new defects, resulting in better service to the business and lower application ownership costs for IT.
- Faster learning When developers receive comprehensive information on internal quality of their work products, they begin learning about problems hidden in the interactions among tiers and technologies in the application. In addition to helping them eliminate current weaknesses in the code, this knowledge helps them avoid such weaknesses in the future. Consequently developers are able to deliver more functionality, faster, and with fewer unintended side effects. The fastest most effective learning occurs with immediate feedback on actual work, and comprehensive feedback on the quality of their work affords an extraordinary opportunity for learning and professional development. In fact, the most frequent weaknesses identified in these analyses can be used to guide training at the beginning of each release cycle.
- Tighter teamwork Objective data on internal software quality can dramatically strengthen the coordination within a single development team, and across distributed teams. Having a common terminology for discussing architectural issues and weaknesses improves the communication within and across teams, and provides a foundation for strong coordination. Driving team meetings from objective data helps eliminate subjective arguments and focuses the team on selecting and prioritizing the most important weaknesses to remediate. Comprehensive quality data can empower development teams to take greater responsibility for managing the overall quality of their applications.
How Should Internal Quality Data Be Presented to Developers?
Information on internal software quality will only be used effectively if it is integrated into the development process. Developers already collect a limited set of this information through statically analyzing their own code during unit test. However, when collected at the application level such data can be incorporated into the results reported from each build or release to prioritize and schedule remedial actions. They can be used by developers to create checklists of problems to hunt for during design inspections or code reviews. They can be used ensure training is meeting the actual needs of developers. Finally they can be used by development teams to raise awareness of potential problems as they enter new development phases or iterations. The common theme underlying these uses is continual improvement in both the business value of the application and the professional capability its developers. Comprehensive quality data empowers developers to take charge of the quality of their professional work and the service it delivers.
About the Author
|Dr. Bill Curtis is the Senior Vice President and Chief Scientist of CAST. He is best known for leading development of the Capability Maturity Model (CMM), the global standard for evaluating the capability of software development organizations.|