Apr 30, 2003 (02:04 PM EDT)
Ridding Systems Of Lousy Bugs

Read the Original Article at InformationWeek

The problem with legacy systems is that the code has been tinkered with so often and grown to such a size that the average programmer can no longer find bugs that cause malfunctions. The problem with new code development, on the other hand, is that it's laying the groundwork for future legacy systems--by not identifying poor practices and bugs in the first place.

A little-known service company, Reasoning Inc., specializes in spotting the problems. It inspects and analyzes code, old or new, says William Payne, newly named CEO of Reasoning. The company has focused on C and C++ code, but it's expanding into Java. It charges 18 cents per line of code.

Inspections turn up bad practices such as the C language's bugaboo, the null language derefercence. That's when a pointer in a program that's supposed to guide the processor to the next step points instead to a zero, which stops C software dead in its tracks.

Reasoning's code inspection hasn't caught on widely. The company, with 57 employees, is privately held and doesn't disclose revenue. But Payne allows that its main customers are involved in embedded systems, where faulty code embedded in a device becomes an intractable problem. Embedded-systems makers, whose operating systems and applications power everything from manufacturing-floor machines to cell phones, try hard to avoid undetected code bugs, he says.

But the problem is everywhere. The U.S. Department of Commerce estimates that poorly designed and faulty code costs U.S. business $60 billion a year in lost productivity, Payne says.

Reasoning claims to have completed 500 projects, identifying 50,000 bugs in 75 million lines of code. Payne says he wants to offer an additional service, using the lessons learned from isolating those 50,000 bugs and studying why they occur. As a future service, Reasoning could watch for the code sequences and malformed logic that tend to give rise to these bugs and advise clients on whether they're following good design and programming principles.

The goal, he says, is to improve the overall quality of the code base of companies. But identifying bugs isn't the same as convincing programmers of the error of their ways.

"You might have to teach everyone in a company how to do something the right way. Or you might find one programmer who's been doing it the wrong way every time for three years," he says.

It takes Reasoning five to 10 days to examine a block of code, which could be a million lines or more, and draft a report identifying bugs.

But Payne finds it difficult to collect testimonials to post to the Reasoning.com Web site. "Major corporations don't like to tell the public how many bugs you found in their code," he says.

Reasoning was founded in January 2000 after its predecessor company finished its work as a year 2000 problem specialist. Jim Treybig, the former CEO of Tandem Systems, is chairman of the company.