Ergebnis sauberer Prozesse
Zuverlässige Software (Teil 3)
Worum gehts?
In der heutigen digitalisierten Welt ist Software aus dem Alltag eines mittelständischen Unternehmens nicht mehr wegzudenken. Vom ERP-System über die Kundenverwaltung bis hin zu speziellen Branchenlösungen – überall ist Software im Einsatz.
Nur wenige Dienstleister sind in der Lage in der Königsklasse mitzuspielen: zuverlässige Software.
Wie wird zuverlässige Software hergestellt?
Es benötigt klare Prozesse, um Zuverlässigkeit zu erreichen.
Das geht schon damit los, dass “Testen” die teuerste und schlechteste Methode ist, um Fehler zu erkennen und zu verhindern. (Auch wenn wir Kunden immer wieder hören, dass sie jetzt eine Testabteilung aufbauen wollen, um Fehler zu reduzieren).
Der Grund? Testen ist viel zu spät in der Wertschöpfungskette(!) der Softwareentwicklung.
Je früher ich weiß, was ich will, desto besser kann die Software von Anfang an entworfen werden. Je früher Denkfehler auffallen, desto günstiger ist es, Fehler zu verhindern.
Das heißt im Klartext: Agile ist hipp, kann auch gerne als Projektmanagementmethode eingesetzt werden - ersetzt aber nicht, dass man vorher weiß, wo man hinwill. Zumindest der Business Case, die beteiligten Geschäftsprozesse und die Kernarchitektur sollten klar sein.
Während der Entwicklung sollte früh und regelmäßig Feedback an alle Stakeholder gegeben werden - und der Einsatz von CI/CD-Systemen ist heute ebenso verpflichtend, wie git, docker, Dokumentation und sauberes Projektmanagement.
Wer von Anfang an danach programmiert, dass der Code von anderen Entwicklern gelesen und verstanden werden soll, der programmiert sauberer.
Und deshalb sollten allen klar sein:
- Was brauchen wir (vom Kunden/Stakeholder) bevor wir loslegen? (Definition of Ready)
- Was liefern wir? (Definition of Done)
- In welcher Reihenfolge liefern wir? (Projektplan)
Durch standardisierte Prozesse kann dann aus einem losen Team Softwareentwickler ein Team werden, das zuverlässige Software produziert. Hierzu können am Anfang auch einfach Checklisten dienen, die dem Team Hilfestellung geben, ob alle Anforderungen erfüllt sind, um die nächste Stufe des Projekts anzugehen.