The benefits of code quality: Page 2

Posted September 1, 1999

Linda G. Hayes

(Page 2 of 2)

Wrestling with requirements
In a nutshell, DISCOVER inserts itself into the compile/link process to gather information about how the code is constructed and whether it conforms to best practices and rules in such areas as programming constructs, portability, globalization, and structure. These results can be summarized into a high-level, quantitative measure of overall software quality and weighted according to customer-specific importance.

"The Quality Analysis Report (QAR) helps us get a better handle on providing a sense of the implicit quality of our product,” says Sliwkowski. “We believe DISCOVER gives Progress a competitive advantage by finding issues before we ship."

Pay now, save later

While quality code adds value to your first shipment, it’s even more important for managing subsequent releases and updates. One of the most challenging facets of software development is actually the maintenance. How do you make changes in a system that has complex interrelationships you may not even be aware of? For instance, when one of many developers working on a system creates or changes a component, such as a database table, that affects other developers’ modules without their knowledge. This problem is compounded if you acquired the source from someone else or even from another company, which may have its own development environment, approach, and conventions.

I am aware of at least one financial application for a major oil company that became so enormous and entangled after the original developers left that the company decided to cease any and all changes to the code. Instead, external workarounds were written to avoid potentially disturbing the code’s incomprehensible logic. Once you lose control of your code, it’s almost impossible to get it back without rewriting it.

At Progress, Sliwkowski concluded that DISCOVER helped get new engineers up to speed on the company’s architecture more quickly by revealing the impact of architectural changes, providing decision support capabilities for software engineers, and finding system quality issues before shipment.

Test here, not there

Because we all know from painful experience that changes can have unanticipated results, most test efforts are designed to cover as much of the system as possible. While this is an admirable and sensible goal, time and resources may not always permit it.

Some say more defects can be removed through thorough code inspections--static review of the code by others, than through code-level testing--which involves execution by the development author.
To make this process more efficient, DISCOVER, for instance, provides a tool called TestLink, which is designed to identify which areas of the system are affected so that only those specific tests need to be performed, thus optimizing testing time.

Although any tools that can help focus test efforts for developers can be useful, in my experience they should not be applied to system and regression testing for the simple reason that these phases are important for flushing out issues that cannot be known from the code itself. For example, changes that should have been made but weren’t, unpredictable interactions with other interfaces, or missed or incomplete requirements.

Culture shock

Like all IT tools, DISCOVER and other products like it, such as McCabe IQ from Columbia, Md.-based McCabe & Associates Inc., require a commitment to a cultural change. It must be integrated into the company’s software development processes and adopted by the engineers. If it is not used, or not used properly, you won’t see the benefits. These tools are even more difficult than most to adopt, because they directly affect the very heart of what developers do--write code--and there are inherent and deep-seated habits both within companies and individuals about how to build and maintain software.

This means that regardless of the power or promise of the technology, there is no substitute for solid strategies and training for using it. So, don’t expect this or any other tool to introduce code quality. Expect it to give you the means and the measurements to manage and improve your development process.

Linda Hayes is CEO of WorkSoft Inc. She was one of the founders of AutoTester. She can be reached at

Page 2 of 2

Previous Page
1 2

Comment and Contribute


(Maximum characters: 1200). You have characters left.