How to develop software

Intellectuals solve problems; geniuses prevent them.
(Albert Einstein)


Introduction

Large amounts of money are lost each year, because of the results of software failure and the work involved in finding and correcting faults. Famous examples are crashed marslanders and the first Ariane 5 rocket, but most of the money is lost in everyday software. An estimate of the American government is a loss of about sixty thousand million dollar per year for the U.S.A. economy.

Development methods

Errors can be prevented by using good design and process principles. My ideas about how a company should develop software, can be outlined with the following:

Cleanroom Software Engineering
Cleanroom Software Engineering (CSE) prevents errors as much as possible, as this is often less costly than testing and debugging. CSE combines formal methods of requirements and design with statistical usage testing to produce software with nearly none or no defects.

Testing can never demonstrate the absence of errors in software, only their presence.
(Edsger W. Dijkstra)

Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it?
(Brian Kernighan)

Capability Maturity Model Integration
The Capability Maturity Model Integration is a model for improving your processes.

It's harder than you might think to squander millions of dollars, but a flawed software development process is a tool well suited to the job.
(Alan Cooper)

Functional Programming   (Haskell)
Functional programming is a way to write shorter programs with fewer errors. The programming language Haskell 2010 is the de facto standard in this area.

If language is not correct, then what is said is not what is meant. If what is said is not what is meant, then what ought to be done remains undone.
(Kong Fu Zi a.k.a. Confucius)

Quality management
ISO standards that provide requirements or give guidance on good management practice are among the best known of ISO's offering.

Eliminate slogans, exhortations, and targets for the work force asking for zero defects and new levels of productivity. Such exhortations only create adversarial relationships, as the bulk of the causes of low quality and low productivity belong to the system and thus lie beyond the power of the work force.
(W Edwards Deming)

Download Opera

Number of times this page is fetched (since 2004-04-01):
<Picture of the counter>

Valid HTML 4.01!

Viewable With Any Browser

Last updated:
2012-10-10