Digital Edition

SYS-CON.TV
Elevating Code Quality
Charting the course toward continuous improvement

Monitoring and measuring code quality consistently from start to finish—beginning with definition of requirements and on into deployment—keeps quality efforts focused across the entire application development life cycle. Managers who consistently track and analyze metrics and progress reach higher levels of quality. The key to improving poor code quality is monitoring, measuring and modifying development team behaviors.

SOFTWARE FAILURES:
WHO SHOULDERS THE BLAME?

Software glitches are an epidemic: bringing down networks, planes, satellites, providing inaccurate weather reports and causing privacy violations.

Here are some recently reported cases, just to name a few:

In March 2005, software upgrades caused the loss of school records and other crucial data on timetabling, examination performance and attendance in hundreds of schools in England and Wales.

In December 2004, a computer glitch in Canada prevented 14,000 medical tests results on 600 patients from reaching the doctors who ordered the tests.

In April 2003, the largest student loan company in the U.S. made a software error in calculating the monthly payments on 800,000 loans. Although borrowers were notified of an increase in their required payments, the company still reportedly lost $8 million in interest.

The evidence is clear. Errors in applications do occur and, increasingly over the last ten years, tools and techniques have become available to help software developers reduce the occurrence of these errors.

But how much support is given to the managers of these development teams? After all, it is the development managers who shoulder the burden of responsibility for the quality of the finished product.

Chances are the developer of an original piece of code doesn’t stay with that code for its entire lifetime. Poorly written code often means little or no documentation. As a result, it is difficult to correct and update, forcing other developers to spend a great deal of time trying to decipher it. A change to one area of code can easily damage another, resulting in cascading bugs causing new, more complex problems.

So what can a development manager do to alleviate this situation? What initiatives have proved the most promising?

DEVELOPMENT LIFECYCLE MANAGEMENT
Organizations can’t rely solely on government rules or vendor promises to help. The solution must come from within the industry, from professionals who have a vested interest in the success of their software applications.

Development managers must take the lead in establishing the necessary best practices that focus on code quality for the entire life cycle of their software—from development to deployment and beyond.

Software quality must become a mindset that is filtered from the top down. Managers must empower their development teams to adopt quality processes that allow for effective inter-group communication, error detection and prevention.

Such quality assurance (QA) processes should include:

  • Requirement definitions agreed to by all parties
  • Unit testing by developers adhering to coding standards
  • Change and version control for all software updates
  • Automated and manual testing—functional, integration, performance, security, regression
  • Deployment—monitoring and maintenance for post-production feedback
The focus on code quality throughout an application’s life cycle can help to improve overall product quality. Developers will be better able to identify and correct bugs and add new features while adhering to deadlines. With coding standards being applied, many potential bugs will never occur. Additionally, a focus on code quality enables development teams to optimize the quality of an application before it reaches production.

QUALITY METRICS
A 2005 Forrester study shows that 54% of IT managers surveyed have invested in testing tools for application development, yet only 29% of them saw significant improvement. Forrester found that managers who consistently track quality metrics can reach higher levels of quality; but many development managers don’t know which metrics are the most critical.

The Forrester study concluded that the top five metrics most critical in reaching higher levels of quality are:

  • Defect origin—code area that causes the bug
  • Event failure—unique identifier for each bug
  • Number of defects found in the first week of the development cycle—quantification of initial code quality
  • Mean time to repair—speed of correction
  • Defect density—bugs per module, application, etc.
For these metrics to be used effectively, development managers must monitor them consistently, using a formalized reporting and feedback process throughout the application’s life cycle.

Monitoring and measuring quality consistently from start to finish—beginning with requirements definition and on into deployment—keeps quality efforts focused across the full application life cycle.

But unless developers build quality into a software application’s foundation, their code must be continually patched and otherwise repaired, treated as a fragile entity that can break at any moment.

ENGAGE QUALITY EARLY
Development managers are taking a variety of approaches to address software quality, but nearly all require focusing on quality issues far earlier in software- or product-development cycles than what’s been typical.

While code quality tools have traditionally focused on developers, the burden of software integrity for corporate applications lies directly with development managers.

With the push to develop faster with fewer resources, development managers are finding their jobs especially difficult when developers, faced with their own time pressures, do not adhere to corporate coding standards or thoroughly test their code. Worst of all, development managers have no reliable and accurate way to measure their team’s progress.

As a result, development managers, worried about job security, are forced to gloss over quality checks they know they should be enforcing in order to deliver against deadlines.

As part of the development cycle, a focus on code quality is especially crucial during the actual coding phase of an application. In order to effectively track code quality and bring about change, development managers must be equipped with the same metrics that are available during the other phases of a project.

THE ENERJY SOLUTION: ENERJY CQ2
Enerjy CQ2 brings a new process to the management function of software development called Precision Team Management, which enables development managers to monitor key performance indicators using metrics such as:

  • Amount of code developers are writing, editing, deleting
  • Amount of code being tested/unit test coverage
  • Number of tests being written
  • Number of tests passing/failing
  • Number of coding standards being violated, per developer
With these metrics from Enerjy CQ2, not only can development managers monitor and measure code quality problems, but they can also modify individual developer behaviors with an emphasis upon code quality and developer self-improvement. The end result is tighter code and developers who gain satisfaction from a job well done.

Enerjy CQ2 integrates with commonly used developer tools including:

  • Source control systems
  • Static code checking software
  • Testing frameworks
  • Coverage tools
A Web-based browser provides managers with a turnkey solution to:
  • Discover – Collect and measure data from the activities of their development team
  • Analyze – Identify problems and track them back to individual developers
  • Act – Identify actionable steps to form behaviors, enforce standards, correct errors
By implementing the Enerjy CQ2 solution, senior managers will be able to monitor tangible improvements from their software development team, not only in the early stages of application development, but throughout the entire product life cycle.

Development managers will now be empowered with the information they need to improve their team’s code quality and performance, meet budget and schedule restraints, accelerate training processes and create effective reporting tools for senior management.


Figure: Enerjy CQ2 enables development managers to easily discover, analyze and act on coding violations.

As a result, the quality mindset built in at the beginning of a project will ripple through their organization, improving software application quality, employee morale, customer satisfaction and the bottom line.

Who Is Enerjy Software?
Enerjy develops Java™ software integrity solutions for development managers to continuously improve the quality of their application development projects.

Development managers can now monitor and modify the behaviors of individual developers, thereby boosting the performance and productivity of the entire team, improving the quality of the code, 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 software integrity solutions designed to improve application quality and enhance developer productivity, please visit Enerjy's Web site at: www.enerjy.com

Resources:

  1. National Institute of Standards and Testing (NIST), 2002.
  2. "Today’s Quality Assurance Practices: How Can We Continue to improve?" Compuware white paper, 3/2005
  3. "Quest For Quality," Mary Hayes, Information Week, May 26, 2003.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1



ADS BY GOOGLE
Subscribe to the World's Most Powerful Newsletters

ADS BY GOOGLE

Regardless of what business you’re in, it’s increasingly a software-driven business. Consumers’ risi...
With major technology companies and startups seriously embracing Cloud strategies, now is the perfec...
SYS-CON Events announced today that EARP Integration will exhibit at SYS-CON's 20th International Cl...
IBM helps FinTechs and financial services companies build and monetize cognitive-enabled financial s...
SYS-CON Events announced today that Outscale, a global pure play Infrastructure as a Service provide...
SYS-CON Events announced today that Progress, a global leader in application development, has been n...
Interested in leveling up on your Cloud Foundry skills? Join IBM for Cloud Foundry Days on June 7 at...
Most DevOps journeys involve several phases of maturity. Research shows that the inflection point wh...
SYS-CON Events announced today that Cloud Academy will exhibit at SYS-CON's 20th International Cloud...
As cloud adoption continues to transform business, today's global enterprises are challenged with ma...
SYS-CON Events announced today that delaPlex will exhibit at SYS-CON's @ThingsExpo, which will take ...
SYS-CON Events announced today that Interoute has been named “Bronze Sponsor” of SYS-CON's 20th Inte...
In his opening keynote at 20th Cloud Expo, Michael Maximilien, Research Scientist, Architect, and En...
The 21st International Cloud Expo has announced that its Call for Papers is open. Cloud Expo, to be ...
Internet of @ThingsExpo, taking place October 31 - November 2, 2017, at the Santa Clara Convention C...
DevOps is often described as a combination of technology and culture. Without both, DevOps isn't com...
With major technology companies and startups seriously embracing Cloud strategies, now is the perfec...
You know you need the cloud, but you’re hesitant to simply dump everything at Amazon since you know ...
Cloud applications are seeing a deluge of requests to support the exploding advanced analytics marke...
DevOps is often described as a combination of technology and culture. Without both, DevOps isn't com...