Software Development

More than engineering

Software development is much more than analysis, design, implementation, testing and maintenance. There are lots of projects lacking soul, as well as projects that should be successful if jugded from a purely technical perspective. Software development is not done in a vacuum. It has a human and creative component: Users, administrators, testers, developers, architects and managers must be satisfied with it. Statistically most software projects by far fail. There are several very different reasons, amongst others unrealistic requirements. As a conclusion one can state that every project is very special, and not only requires technical but also creative components to make it a success.

Facts and Fallacies

Being in business for so long one wonders why the same things are done the wrong way so often again and again. A very good book solves this miracle by explaining what didn't change the past 40 years in computer science: "Facts and Fallacies of Software Engineering" (see Literature). If you want a more entertaining view, try "Software Runaways: Monumental Software Disasters", also by Robert L. Glass.

Proportionateness and Adequateness

Probably someone told you at driving school about "appropriate speed". This is not an exact term, but nonetheless very important. If someone drives 50 km/h on ice, it's as wrong as driving 10 km/h on a sunny day. This is mirrored in software projects. Whether you need one architect, ten or are better off without an architect at all; whether you get one developer or hundreds; whether you just hardcode the project or fill hundreds of files with documentation; whether you decide for make or for buy on the "make or buy" question: Nothing is right or wrong by itself, but it is adequate or inadequate. We like adequate means. Don't throw your money out of the window, don't create another software ruin, but also don't pinch and scrape if it comes to really important things.