In 3 Schritten
McKinsey-Tipps für die Anwendungsentwicklung
Selbst Großunternehmen, die viel Geld in die Applikationsentwicklung investieren, können die Ergebnisse ihrer IT-Projekte häufig nicht exakt messen und bewerten. Das jedenfalls behaupten Michael Huskins, James Kaplan und Krish Krishnakanthan vom Beratungsunternehmen McKinsey. Der Grund: Firmen verlassen sich weitgehend auf Input-orientierte Messgrößen. Dazu zählen die Stundensätze der IT-Entwickler, Abweichungen vom veranschlagten Budget oder der Prozentsatz an Entwicklungsleistung, die zu bestimmten Lieferterminen erbracht ist. Diese Kenngrößen seien zwar nützlich, weil sie die Leistung der Applikationsentwicklung anzeigen.
Wenn es jedoch darum geht, die von einem Entwicklerteam innerhalb eines bestimmten Zeitraums an einen Fachbereich gelieferte Funktionalität zu bestimmen oder die Produktivität der Entwicklertruppe zu messen, tappen IT-Organisationen meist im Dunklen. Um die Effektivität bei der Anwendungsentwicklung zu erhöhen, raten die McKinsey-Autoren, eine Kombination der Output-basierten Kenngrößen "Use Case" (UC) und "Use Case Points" (UCS) einzusetzen.
Anwendungsentwicklung produktiver machen
- Zahl der eingesetzten Software-Lösungen
Je größer Unternehmen sind, desto häufiger berichten sie von überflüssigen Anwendungen. Kleine Unternehmen sind dagegen häufiger der Ansicht, genau so viel Software im Einsatz zu haben wie nötig. - Anteil der Anwendungen, die CIOs für wesentlich halten
Mehr Programme zu haben heißt nicht unbedingt, dass die Ziele des Unternehmens damit besser bedient werden. Das zeigt die Frage danach, welchen Anteil ihrer Software CIOs für zwingend notwendig halten. - Abstimmung zwischen Anwendungsentwicklern und Software-Betreuern.
Als eine Ursache für Applikations-Wildwuchs sehen HP und Capgemini in ihrer Studie die fehlende Abstimmung zwischen Software-Entwicklern und denen, die Programme später betreuen. Insgesamt 13 Prozent der Befragten gaben an, beide Vorgänge seien immer abgestimmt.
Ein Use Case oder Anwendungsfall ist eine logische Methode, um funktionale und technische Anforderungen für Entwicklungsprojekte strukturiert zu sammeln. In Use Case Points wird dagegen die Anzahl der ausgelieferten Softwarefunktionalitäten erfasst. Ein UC beschreibe dabei ein Szenario, in dem ein Endanwender oder ein anderes IT-System mit einer Applikation interagiert sowie die Transaktionen, welche die Anwendung ausführt. Ein UC besteht zum Beispiel aus den Einzelschritten, die ein Bankkunde durchführt, um sich an einer Online-Banking-Anwendung anzumelden und einer Transaktion wie einer Überweisung, wofür die Applikation auf Informationen zugreift, die in einer Datenbank gespeichert sind. Rund um einen UC lassen sich dann technische Anforderungen und Design-Entscheidungen für eine Anwendung gruppieren.
Diese Struktur beschleunigt innerhalb des Lebenszyklus der Softwareentwicklung die Phase "Sammeln von Anforderungen", gleichzeitig wird das Risiko reduziert, dem Business falsche Funktionalität zu liefern. Dadurch würden den Autoren zufolge zeit- und kostenintensive Change Requests sowie Nacharbeiten während der Design- und Build-Phase vermieden. Zugleich lassen sich mit Use Cases funktionale Testfälle einfacher schreiben und durchführen.
Dagegen werden die Use Case Points aus den Informationen abgeleitet, die in den Use Cases gesammelt sind. UCP-Kalkulationen setzen sich zusammen aus der Anzahl der Transaktionen, die eine Applikation ausführt, und der Zahl der Personen oder IT-Systeme, die mit dieser Anwendung interagieren. Die Rohzahlen werden dann aufbereitet, indem darin auch die technische Komplexität einer Anwendung oder der Prozentsatz des zu modifizierenden Codes einbezogen werden. Für die Berechnungen sind die Daten zudem mit den Top-Down-Anforderungen aus dem Management und den Fachbereichen abzugleichen. Auf dieser Grundlage lässt sich dann in drei Schritten eine effiziente Applikationsentwicklung umsetzen.
Schritt 1: Score an Funktionalitäten definieren
Für jedes einzelne Entwicklungsprojekt ist in Form eines "Score" die relative Zahl der Softwarefunktionalitäten festzulegen, die ausgeliefert werden sollen. Eine hohe Übereinstimmung zwischen UCP-Kalkulation und dem vorgegebenem Score legt nahe, dass sich mit der UCP-Methode der Output und damit auch die Produktivität verschiedener Entwicklungs-Teams verlässlich messen und somit auch vergleichen lassen. Die Berechnungen können im Entwicklungs-Lebenszyklus einer Applikation bereits zu einem frühen Zeitpunkt durchgeführt und dann sukzessive verfeinert sowie angepasst werden.