The Case for Code Quality Management
Empowering Development Managers to Continuously Improve Application Quality
Jun. 28, 2006 02:00 PM
For managers who are overseeing Java™ development teams, maintaining consistent coding standards and practices is a monumental challenge. Missed deadlines, reports of problems in the field and constant bug fixes are all symptoms of poor coding standards and practices. Fortunately, comprehensive code quality management applications are emerging that bring proven process standards to the development cycle, enabling managers to enforce code quality and track issues back to specific developers. By enforcing quality standards, problems can be proactively identified before applications are released, dramatically simplifying the development manager’s job. This paper will examine the challenges faced by development managers and introduce how code quality management solutions that employ code Precision Team Management? bring needed order to Java development teams.
Applications are no longer simply measured in thousands of lines of code; many are in the millions. Something as simple as a misplaced semicolon embedded in a million lines of code can result in a bug that takes weeks or months of work to discover. The result of poor code quality can be catastrophic.
In the fall of 2003, a software failure shut down a massive power grid in the northeastern United States. A spokesman for the responsible energy company reported, "Finding the error involved sifting through a massive amount of code, a process that took weeks."1 In September of 2004, poor design in FAA air traffic control software was the source of a problem that grounded hundreds of flights in the southwestern United States and led to five mid-air encounters.2
Forrester declared, "Today’s corporate software development is broken."3 In 2004, a study of more than 9,000 application development projects revealed that only 29% of projects were successfully completed, 53% were challenged—meaning they were late, over budget, and/or lacked the required functions—and 18% were canceled or never used (see figure 1).4 The Department of Commerce's National Institute of Standards and Technology (NIST) estimates that software bugs cost the U.S. economy nearly $60 billion annually and that improved testing could eliminate more than one-third of software failures.5 The report explained that almost 80% of development costs entail identifying and correcting defects and that software quality standards are among the worst of any shipped product in all industries.
1 AMC TechNews. (February 13, 2004). Software Bug Blamed for Blackout Alarm Failure.
A recent edition of InformationWeek explained, "Software development needs to be transformed into a managed business process, much like manufacturing, procurement or other key business functions."6 The editor of SD Times explains, "You can't test quality into a system; you have to design it. That means moving quality issues forward in the process."7
Historically, tools have only addressed limited aspects of code quality and have focused exclusively on the developer, leaving the development manager with no comprehensive tools to manage code quality across the development team. Typically, programmers are not likely to take ownership for the quality of the entire application; this responsibility falls on the development manager. The future involves applications that will help the development manager focus on ensuring consistent quality standards among all developers and across all aspects of code development.
5 Tassey, G. (May 2002). NIST: The Economic Impacts of Inadequate Infrastructure for Software Testing.
6 Stahl, S. (July 25, 2005). Editor's Note: Poor Quality Invites Lawsuits.
7 Vereen, L. (June 1, 2005). Improving Software Quality: Getting Testers, Developers to Work Together Signals a Sea Change in Industry's Approach to Fixing Errors.
8 Tassey, G. (May 2002). NIST: The Economic Impacts of Inadequate Infrastructure for Software Testing.
Development Manager Challenges
There are four significant challenges that development managers face:
Moving applications into production on schedule is a challenging and rarely achieved goal. People outside the development process, who typically have no understanding of the complexities of application development, often mandate deadlines. It is not unusual for an application to be implemented 3 months or longer after its promised date.
Missed deadlines mean lost employee productivity, competitive disadvantages, and often, reduced corporate profitability. Business moves quickly and by the time an application moves into production, it may be outdated.
Why are development teams missing release dates? One of the most common issues is unforeseen problems that require extra time to debug. This usually occurs because developers begin by writing features and end with fixing bugs. Because the time for bug fixes is vastly underestimated, projects are typically delivered late or delivered without all of the intended functionality. Ideally, code should be developed bug-free from the start, speeding the delivery of projects. However, it has become routine that development managers spend the last few weeks of a project putting out fires.
Bugs in the Field
Debugging modern applications is a highly complicated process that involves many tests, such as interactions with other applications, timing issues, verification on multiple hardware devices and basic requirements testing. When corporate users are constantly finding bugs, the development team must rush to discover the source of the bug. These “fire drills” hinder creative development of future enhancements.
Part of the problem stems from developers’ disdain for testing their own code. However, because each developer has a unique way of coding, it is difficult for quality assurance teams to recognize potential problems.
Fixing a bug is significantly more costly once the application has been rolled out. Ideally, developers should write better code from the start, saving time and money during the debugging process. The alternative is a very costly exercise resulting in a loss of confidence in the new application and the development team.
Difficulty Enforcing Standards
However, the development manager cannot easily extract information from developer tools to measure the key performance indicators of individual developers. For example, trying to determine if specific individuals are not testing or are producing failing code is difficult to assess. Thus, development managers are highly dependent on what their programmers are telling them, but still lack tangible evidence.
What is needed to address these four development manager challenges is a comprehensive code quality management solution.
The Solution: Code Quality Management
Code quality management systems also analyze testing and coverage in near real time, helping managers and developers identify potential problems before a project enters the quality assurance or production stage. Now development managers can act by tracking coding issues back to specific developers.
Designed as a centralized Web-based tool, a code quality management application helps managers direct local or geographically distributed development teams via an easy-to-use, point-and-click graphical user interface.
An effective code quality management solution includes hundreds of predefined coding standards and enables customized rule sets. A key function is the ability to test all code for standards compliance in an automated and repeatable manner. Code quality management applications unobtrusively reveal code violations as developers program and generate high-level management reports with granular drill-down capabilities. When a development manager is notified of code violations, he or she can easily identify where code infringements occurred and which developer caused the problem.
The Benefits of Code Quality Management
When looking for a code quality management solution, many key issues should be examined. Look for the following:
Distributed management: For groups with offsite or outsourced developers, look for a solution that manages geographically dispersed teams by monitoring their productivity and progress.
Seamless integration: Seek a solution that seamlessly integrates with the tools developers are already using, such as source code control, coverage and code audit tools, to preserve existing toolset investments.
Individual developer tracking: The ideal system will provide analysis and reporting of standards compliance violations and lack of testing at the individual developer level to quickly resolve issues.
No impact on existing process: Look for a system that does not interrupt the development cycle or existing processes, enabling developers to go about their daily activities without learning new processes.
Centralized console: The solution should centralize key standards information in a central console that is easy to understand and offers the option to drill down to detailed information.
Real-time developer feedback: Look for a solution that proactively notifies developers when they commit coding errors and suggests solutions.
Experience with development: Seek a company with at least a decade of experience in application development tools.
Proven track record: Work with a provider that has proven reliability, servicing large Fortune 500 companies.
Suite of services: The ideal company should install, customconfigure, train and provide post-sales support.
Multinational onsite support: For physically dispersed development teams, seek a company that can provide onsite support in many nations.
Precision Team Management™: A Code Quality Management Process
The three steps of Precision Team Management are:
Enerjy CQ2 leverages Precision Team Management to deliver a powerful code quality management application for development managers seeking to meet rollout deadlines, reduce reports of problems in the field and increase the overall quality of developers’ coding efforts.
Using a combination of patent-pending technology, Enerjy CQ2 helps development managers take the guesswork out of ensuring the quality of Java code by employing Precision Team Management processes. Featuring a central console that reveals the real-time status of a development project, Enerjy CQ2 presents significant events that require action and tracks testing, coverage and code analysis. Enerjy CQ2 uniquely connects quality metrics to individuals, enabling the development manager to take immediate corrective action with developers who are violating coding standards and falling short of testing and production requirements.
Enerjy CQ2 seamlessly integrates with commonly used development tools, eliminating the need to replace existing toolsets. The solution's zero impact on existing processes ensures developers will embrace code quality without the need to change their daily processes.
Enerjy CQ2 is a turnkey solution that includes a full suite of services from installation to training to ensure the system is fully operational and customized for each development manager's unique needs.
Enerjy CQ2 is a turnkey solution that includes a full suite of services from installation to training to ensure the solution is fully operational and customized for each development manager’s unique needs. Development managers can now monitor and modify the behaviors of individual developers, boosting the performance and productivity of the entire team, improving the code quality and correcting the course of the overall application development project.
Enerjy Software is a division of Teamstudio, Inc. With headquarters in Beverly, Massachusetts, Teamstudio also has offices in the UK, France and Japan. To learn more about Enerjy CQ2 visit www.enerjy.com.
Reader Feedback: Page 1 of 1