How to achieve "zero bugs." (advice from TurningPoint Systems Inc Pres Ken Tepper) (Technology Information)When software ships with known bugs, argues Turning Point president Ken Tepper, it's almost always because testing and bug-fixing were deferred until too late in the development cycle. "Programmers This is a list of programmers notable for their contributions to software, either as original author or architect, or for later additions. See also: Game programmer, List of computer scientists by nature want to keep their momentum going," Tepper says. "They'd rather move on to new functionality than test code they've just finished--even though it always takes longer to fix bugs when a project is nearly done." Tepper, who runs a 13-year-old contract programming shop with a long list of blue-chip clients, says that putting off any bug fixes--except perhaps for glitches caused by defective defective adj. not being capable of fulfilling its function, ranging from a deed of land to a piece of equipment. (See: defect, defective title) programming tools or design problems--is a dangerous practice. He's convinced that the right way to build commercial software is to insist on a "zero bugs" standard--which means that programmers aren't allowed to start a new task until they've tested and cleaned up every discoverable bug in code they've just finished. "If you prevent someone from moving on until they check in good, solid code, there's a real message there about quality," he points out. Tepper admits that his approach sometimes sounds extreme. "There were a lot of objections here when we started our "Zero Bug Initiative' three years ago," he says. "We weren't really sure it would work, especially on projects where the schedule was slipping. But I think everyone has been convinced by the results. You really see the value at the end of a large project: We'll have maybe 50-100 bugs in our bug database now, compared to 2,500 bugs that usually had to be cleaned up when programmers were allowed to move on without fixing everything." Tepper says his "zero bugs" method relies on several principles that can help produce squeaky-clean code: * Insist on unit testing (testing) unit testing - The type of testing where a developer (usually the one who wrote the code) proves that a code module (the "unit") meets its requirements. : Although Turning Point has a group of specialized spe·cial·ize v. spe·cial·ized, spe·cial·iz·ing, spe·cial·iz·es v.intr. 1. To pursue a special activity, occupation, or field of study. 2. quality assurance engineers, Tepper says individual programmers still have first-line responsibility for testing their own code. This "unit testing" approach pinpoints responsibility for bug fixes A revised program file or patch that corrects a software bug. See bug, patch and hot fix. (programming) bug fix - A change to a program or system intended to permanently cure a bug. and performance, and it helps ensure that low-level code works properly before higher layers of functionality are added. * Integrate QA into the project team: Once code has been unit tested at Turning Point, it also undergoes formal testing conducted by quality assurance engineers, who join the development team at the earliest possible point. "QA people should be on line as soon as coding starts, and ideally during the design phase," Tepper argues. "QA people can't take a piece of unfamiliar code and just start testing it--they need to be familiar with the whole project." * Establish formal coding standards: For every project, Turning Point's team leaders set standards for common coding conventions Coding conventions are rules that computer programmers follow to ensure that their source code is easy to read and maintain. Software source code is plain ASCII text. Coding conventions are important only to the human maintainers and peer reviewers of a software project. and style. "At the most superficial level, this guarantees maintainability," Tepper points out. "Beyond that, there are things we've learned--such as using asserts liberally--that make code much easier to test and more robust." (Tepper also encourages his programmers read classic texts on Programming technique; his favorite is Steve Maguire's Writing Solid Code.) * Conduct frequent code reviews: Turning Point's senior programmers regularly browse (1) To view the contents of a file or a group of files. Browser programs generally let you view data by scrolling through the documents or databases. In a database program, the browse mode often lets you edit the data. See Web browser. through randomly-chosen chunks of code, checking for stylistic sty·lis·tic adj. Of or relating to style, especially literary style. sty·lis ti·cal·ly adv. consistency and proper programming techniques.
"It's surprising how often they find bugs just by reading the
code--and these are often bugs you wouldn't spot with mainstream
testing techniques."
* Run Debug To correct a problem in hardware or software. Debugging software means locating the errors in the source code (the program logic). Debugging hardware means finding errors in the circuit design (logical circuits) or in the physical interconnections of the circuits. Windows: Tepper says an often-overlooked test is simply to run new code under the special Debug version of Windows, which reports bugs on a second monitor. "We've looked at some very popular shipping programs and been amazed a·maze v. a·mazed, a·maz·ing, a·maz·es v.tr. 1. To affect with great wonder; astonish. See Synonyms at surprise. 2. Obsolete To bewilder; perplex. v.intr. ," says Tepper. "You see all the stuff that developers let through that are so easy to catch." * Maintain separate debug and ship builds: "Bugs are much easier to identify in debug builds and some bugs won't show up in ship builds without extensive testing," Tepper says. "Conversely con·verse 1 intr.v. con·versed, con·vers·ing, con·vers·es 1. To engage in a spoken exchange of thoughts, ideas, or feelings; talk. See Synonyms at speak. 2. , performance and memory usage are not representative in a debug build and some bugs won't occur in debug builds that do occur in ship builds." Ken Tepper, president, Turning Point Software, One Gateway Center, Newton, Mass. 02158; 617/332-0202. |
|
||||||||||||||

ti·cal·ly adv.
Printer friendly
Cite/link
Email
Feedback
Reader Opinion