Das hat sich in der Software-Entwicklung wirklich bewährt:
- Iterative Entwicklung
- Requirements mit Use Cases und Domain-Modellierung
- Objektorientierte Analyse, Entwurf und Implementation, plus Entwurfmuster
- Architektur und Design mit einem starken Fokus auf innere
Strukturen, nämlich Kopplung und Kohäsion, richtige
Schichtung, Zuordnung der Zuständigkeiten.
- Hoher Kommunikationsfluss im Entwicklungsteam, Arbeit an einem Ort.
- Visualisierung von Software-Strukturen (UML)
- Daily builds
- Unit tests
- Statische Code-Analyse
- Design und Code Reviews
- Nimm nur die Besten. Die Produktivität und Qualität von Software-Ingenieuren streut gewaltig.
- Usability testing ergibt zufriedene Kunden.
Eigentlich wissen wir heute ziemlich gut, wie man Software
professionell entwickelt. Warum gibt es denn immer noch so viele
gescheiterte Software-Projekte?
Einige Gründe:
Viel vom Wissen über professionelle Software-Entwicklung ist
recht neu, oft weniger als zehn Jahre alt - also haben sich diese
Techniken, Werkzeuge und Methoden einfach noch
nicht durchgesetzt.
Andererseits gibt es Programmierer, die kennen zwar neuere Methoden,
wissen aber nicht, wann und wo sie einzusetzen sind, und wo nicht -
also werden Methoden und Werkzeuge
manchmal falsch eingesetzt und bringen nichts (was wiederum ihre
Verbreitung hindert).
Und wie so oft sind Programmierer auch nur Menschen und ziehen unter Stress das Bekannte dem Ungewohnten vor.
|