Ist das Magie oder handwerkliches Können?
So wird eine individuelle Software termingerecht fertig.
„Gefahr erkannt, Gefahr gebannt“ heißt es sprichwörtlich. Wendet man diese Regel auf Software-Projekte an, dann kommt es auf das frühzeitige Erkennen von Problemen an. Mit einem Projektstatusbericht können Sie jederzeit ermitteln, ob sich das Projekt noch innerhalb der kalkulierten Aufwände befindet. Und diese wirken sich bekanntlich auch auf den Terminplan und die Programmierkosten aus. Je früher Sie Unstimmigkeiten erkennen, desto mehr Zeit haben Sie für die Einleitung von wirksamen Gegenmaßnahmen.
Am Anfang wird alles gut.
Wie wird eine individuelle Software termingerecht fertig? Der Grundstein einer guten Software ist das Verständnis der Kundenanforderung. Ein guter Software-Dienstleister sollte sich daher die Zeit nehmen, die Anforderungen des Kunden umfassend und sorgfältig zu verstehen. Die Anforderungen beschreiben, was der Kunde mit der Software erreichen möchte. Im Idealfall erhält jede einzelne Anforderung eine Nummer. Diese als Request Key (englisch für Anforderungsschlüssel) bezeichnete Nummer dient während des gesamten Projektablaufs der Identifikation der Anforderung.
Basierend auf den Anforderungen erstellt der Software-Dienstleister ein Realisierungskonzept. Der Begriff „Realisierungskonzept“ wird als Synonym für Pflichtenheft verwendet. Es enthält eine technische Beschreibung zur Umsetzung der einzelnen Anforderungen. Um die Zuordnung zu den aufgenommenen Anforderungen herzustellen, sollten sich die Kapitel des Realisierungskonzepts ebenfalls auf die Request Keys beziehen.
Mit dem Realisierungskonzept verständigen sich der Kunden und der Software-Dienstleister auf den Leistungsumfang der zu erstellenden Software. Auf dieser Basis kalkuliert der Software-Dienstleister den Aufwand für das Erstellen der Software. Auch die Aufwandskalkulation sollte die Request Keys enthalten. Anschließend erfolgt der Prozess von Angebot, Beauftragung und Beginn der Software-Entwicklung.
Den Status eines Software-Projektes kontinuierlich ermitteln.
Wenn die Software-Entwicklung erst einmal begonnen ist, dann sind viele Rahmenparameter unveränderlich. Es gibt eine Abschätzung des Programmieraufwands pro Request Key und auch ein maximales Gesamtbudget für die Programmierung der Software. Meistens stehen auch der Terminplan und die verfügbaren Programmierkapazitäten schon fest. Gerade in dieser Phase ist es besonders wichtig, das Projekt genau im Auge zu behalten.
Hierzu ist eine genaue Datenbasis erforderlich. Am besten verfügen Sie über eine Aufwandsabschätzung mit folgenden Angaben:
- Request Key
- Kalkulierter Aufwand in Stunden.
Der Projektstatusbericht erfordert die Eingabe des Wertes „% Erledigt“. Dies besagt, wie weit die Programmieraufgabe, die sich hinter dem Request Key verbirgt, bereits fertig gestellt ist. Diese Betrachtung erfolgt unabhängig von der benötigten Programmierzeit. Es geht lediglich um den Grad der technischen Fertigstellung. Wenn Sie diesen Wert pro Request Key pflegen, dann können Sie den Gegenwert der Fertigstellung in Stunden und den Gegenwert noch nicht erledigter Stunden ganz einfach in Excel berechnen. Durch Summenbildung erhalten Sie die Anzahl der Stunden, die die technisch funktionale Fertigstellung widerspiegelt. In dem nebenstehenden Diagramm sind dies 41,8 Stunden.
Auf der anderen Seite sollten die Programmierer in einem Ticketsystem oder einem anderen hierfür geeigneten System die tatsächlich benötigte Programmierzeit eingegeben haben. In dem Diagramm sind dies 72 Stunden. Es wurde also mehr Zeit benötigt, als ursprünglich geplant. Wenn Sie aus den beiden Werten einen Quotienten bilden und diesen mit der kalkulierten Anzahl Stunden multiplizieren (im Beispiel: 72/41,8 * 67 = 115,5), dann erhalten Sie eine Prognose für die Stunden bis zur Fertigstellung der Programmierung.
Wie kann die Software noch termingerecht fertig werden?
Wie oben schon erwähnt wurde, sind zum Zeitpunkt der Programmierung viele Rahmenparameter des Projekts bereits unveränderlich. Aber was ist nun zu tun, wenn das Projekt wie im Beispiel sprichwörtlich „aus dem Ruder läuft“?
Zunächst sollte der Projektleiter die unveränderlich erscheinenden Parameter prüfen: Kann der Fertigstellungstermin verschoben werden? Kann auf die Implementierung einzelner Funktionen verzichtet werden? Gibt es vielleicht noch unberücksichtigtes Potential, so dass sich Programmfunktionen schneller als geplant implementieren lassen?
Im nächsten Schritt kann der Projektleiter prüfen, ob sich die Rahmenparameter außerhalb des Projekts geändert haben: Ist vielleicht ein anderes Projekt nicht beauftragt oder reduziert worden und können die dort eingesparten Programmierkapazitäten bei dem kritischen Projekt helfen? Gibt es vielleicht andere Möglichkeiten, die Programmierkapazitäten aufzustocken? Vielleicht können aber auch einzelne Programmfunktionen aus dem Leistungspaket ausgelagert und zu einem späteren Zeitpunkt fertiggestellt werden? Dann wird zwar nicht alles, aber doch der wesentliche Teil der Software termingerecht fertiggestellt. Die Erfahrung zeigt, dass eine sorgfältige Planung gepaart mit zuverlässigen Programmierern (m/w) und einem sorgfältigen Projektmanagement in aller Regel zu einer termingerechten Fertigstellung der zu erstellenden Software führen.