Der Kosten-Airbag für Software-Projekte
Softwareprojekte planbar machen, Fehler erkennen und Kosten reduzieren mit Test Driven Development. Darum ging es beim aktuellen kitExpert-Vortrag am 20. Mai 2010 im aiti-Park.
Henning Koch und Robert Sonnberger, beide makandra GmbH, informierten zu dieser Methode, mit der die gewünschte Funktionsweise einer Anwendung auf Knopfdruck überprüft werden kann. Und dass der Weg zu dieser modernen und überlegenen Entwicklungsmethode nicht so schwierig ist, wie allgemein angenommen, zeigten die beiden Software-Profis den Entscheidern und Projektleitern im Rahmen einer lebhaften Frage- und Antwortrunde auf.
Alle wollen es - makandra macht es: Testgetriebene Software-Entwicklung oder neudeutsch „Test Driven Development“. Mit dieser Methode kann die gewünschte Funktionsweise einer Anwendung auf Knopfdruck überprüft werden. „Das spart viel Zeit und Geld bei der Qualitätskontrolle, da man beim Veröffentlichen einer neuen Programmversion nicht mehr hunderte Bildschirme durchklicken muss, um herauszufinden, ob das Update etwas vernichtet hat, das gestern noch funktionierte. Stattdessen drückt man einfach auf einen Knopf, der dann sagt, ob alles funktioniert oder nicht“, so Henning Koch, Entwicklungsleiter der makandra GmbH.
Test Driven Development: Bessere Kostenkontrolle
Ohne automatisierte Tests wird durch den ständigen Einbau neuer Features ein Programm immer komplexer zu warten. Es ergibt sich ein Teufelskreis mit explodierenden Projektkosten für Qualitätskontrolle, Support und Fehlerbehebung. Koch erklärt: „Hier helfen automatisierte Tests, indem jedes neue Feature gemeinsam mit dem Test implementiert wird, der die korrekte Funktionsweise des Features beschreibt. So wächst mit dem Programm eine Sammlung von Tests heran, die dem Entwickler auf Knopfdruck mitteilen kann, ob sich das Programm nach einer Änderung weiterhin so verhält wie gewollt. Sollte ein neues Feature ein bestehendes kaputt machen, erhält der Entwickler sofort Feedback und kann den Fehler ohne Umwege über die Qualitätssicherung (oder gar den Kunden) beheben. Probleme werden beseitigt, bevor sie teuer werden.“
Test Driven Development: bessere Planbarkeit
Früher schwankte die Produktivität der Entwickler durch das unkontrollierte Wuchern der Komplexität aufgrund des Einbaus neuer Features enorm. Teile des Programms wurden derartig unwartbar, dass sich die Entwickler gelegentlich mehrere Tage mit dem Entwirren der Programmstruktur beschäftigen mussten, um überhaupt wieder eine neue Änderung einpflegen zu können. Durch die extrem schwankende Produktivität ist es für einen Projektplaner schwer abzusehen, wie viel noch bis zum Projektende zu tun ist. Automatisierte Tests helfen den Entwicklern durch regelmäßige kleine Aufräumaktionen die Komplexität ihres Programms im Rahmen halten. Die Produktivität während des Projektverlaufs schwankt viel weniger. Projektplaner können so ein mögliches Projektende viel besser abschätzen. Sie messen dazu, wie produktiv das Entwicklerteam in den letzten Wochen war und nimmt die gleiche Produktivität für die verbleibenden Arbeitspakete an.
Darüberhinaus geben automatisierte Tests mehr Flexibilität bei der Einteilung von Mitarbeitern auf verschiedene Projekte. „Da die Tests das gewünschte Verhalten der Gesamtanwendung kodieren, muss ein Entwickler nicht mehr alle Teile des Programms kennen, um an einer Ecke des Programms eine Änderung durchführen zu können. Sollte doch mal durch einen unbedachten Nebeneffekt ein anderer Programmteil kaputt gehen, wird der Entwickler sofort durch den betroffenen Test darauf aufmerksam gemacht und kann den Defekt umgehend beheben. So kann ich in der Planung meine Entwickler freier auf verschiedene Projekte einteilen, denn die nötige Einarbeitung ist viel geringer“, so Koch.
Test Driven Development: Time to Market
Hauptvorteil ist, dass es kein aufwändiges Durchklicken mehr gibt. Denn ohne automatisierte Tests sicherte man die Softwarequalität, indem man die Anwendung anhand von langen Checklisten durchklickte. Das händische Durchklicken konnte in großen Projekten Tage, Wochen oder gar Monate beanspruchen. Nun entfällt dies und die händische Qualitätskontrolle muss nur noch für neue Features durchgeführt werden. Menschliche Tester müssen sich nun mit den wichtigen Aspekten auseinandersetzen, die eine Maschine schlecht beurteilen kann: Entspricht das neue Feature den fachlichen Anforderungen? Wie ist es um Gestaltung und Ergonomie bestellt? Durch die schnell und kostengünstig durchführbare Qualtitätssicherung steht einem häufigen Veröffentlichen neuer Programmversionen nun nichts mehr im Wege. „Beispielsweise kann man nun jeden Tag eine neue Version online stellen. Die Durchlaufzeit von der Beauftragung eines neuen Features bis zur fertigen, online stehenden Implementierung ist minimiert. Entwickler erhalten so umgehend Feedback von realen Benutzern und beschäftigen sich stets mit den Dingen, die aktuell für den Kunden am wichtigsten sind“, so das Fazit von Henning Koch.
Quelle: www.kit-network.de