Getestet und Veränderbar

Software ist eigentlich niemals 'fertig', sondern ist immer eine Version. Auch gibt es keine fehlerfreie Software, sondern nur gut getestete. Das beginnt mit programmierten Tests, welche einzelne Methoden und Funktionen prüfen, über automatisierte Tests von Anwendungskomponenten, bis zu strukturierten Tests geschulter Tester und schließlich der Anwender. Je schlimmer die Auswirkungen von Fehlern, je intensiver und systematischer muß getestet werden.

Die Anforderungen an Software tendieren dazu, sich im Laufe des Projektes zu ändern. Zum einen ist die praktische Benutzung einer Anwendung meist anders, als vorgestellt, und wird neue Ideen und Ansätze zur Verbesserung hervorbringen. Zum anderen sollte die Anwendungsentwicklung grundsätzlich offen gehalten werden für Anpassungen, die aufgrund von Veränderungen in Ihrem Unternehmen oder der Anforderungen von Außen notwendig oder wünschenswert werden.

Ich betone deshalb bestimmte Arbeitsweisen, die übliche Fehlentwicklungen im Softwarebereich begrenzen helfen. Vor allem ein Inkrementelles und zum Partizipieren einladendes Vorgehen in der Verwirklichung komplexer Projekte (agile software development). Aber auch Programmiertechniken, welche hohe Veränderbarkeit und ständige Qualitätskontrolle ermöglichen (test-driven development, automated test suites, flexible refactoring). Allgemein halte ich mich an die Konventionen und stilistischen Regeln der jeweiligen (Programmier)sprache, schreibe möglichst leicht nachvollziehbaren Code, und stelle gerne die notwendige Dokumentation bereit.