"CPT": Motivation
Produktivität von Software-Entwicklern
Durch eine Studie von Sackman, Erikson und Grant wurde aufgezeigt,
dass die Produktivität von Softwareentwicklern innerhalb einer
beobachteten Gruppe vom schlechtesten zum besten Entwickler um den Faktor
10 variiert.Weiters ergaben sich durch diese Studie folgende Unterschiede:
Task/Eigenschaft
|
Faktor
|
Implementierung |
16:1 |
Tests |
28:1 |
Programmgrösse |
5:1 |
Laufzeit |
5:1 |
Durch diese Zahlen könnte man fälschlicherweise annehmen,
dass jene Programmierer, die am längsten für die Implementierung
benötigt haben, auch den besten Code produziert haben. Eine weitere
Analyse mit unterschiedlichen Programmen bewies jedoch das Gegenteil.
Platzierung
|
Std. Implementierung
und Testen
|
Laufzeit
|
Programmgrösse
|
Bester |
35
|
4.2
|
3218
|
Zweitbester |
37
|
5.3
|
2186
|
Drittbester |
254
|
6.6
|
3746
|
Schlechtester |
286
|
5.9
|
3640
|
Aus dieser Tabelle ist ersichtlich, dass die Programmierer, die am
schnellsten programmiert haben, auch den schnellsten Code entwickelten,
der ausserdem eine geringe Grösse aufweist.
Durch diese Studie wird verdeutlich, wie gross der Qualitätsunterscheid
zwischen verschiedenen Entwicklern ist. Wenn man nun ein Team von echten
Spezialisten zusammenstellt und versucht, mit diesen ein Software-Projekt
zu realisieren, müsste der Zeitaufwand des Projekts stark reduziert
werden können. Weil so ein Team weniger Mitarbeiter benögt,
sinkt auch der Zeitaufwand für die Kommunikation zu anderen Teammitgliedern.
Diese Eigenschaft findet man in "Chief Programmer Teams".
Womit verbringen die Software-Entwickler ihre Arbeitszeit
Andere Analysen haben gezeigt, dass in grossen Software-Projekten ein
Programmierer die Hälfte seiner Zeit für Besprechungen oder
andere Aktivtäten, die nicht direkt mit der Entwicklung der Software
in Zusammenhang stehen. Durch die geringe Gruppengrösse von "CPT"s
und die unterstützenden Rollen des "CPT"s (Administrator,
Editor usw.) können sich die anderen Projektglieder besser auf
ihre eigentliche Tätigkeit konzentrieren, was Produktivität
erhöht.
Aufstiegsmöglichkeiten
Normalerweise sind die Aufstiegschancen eines Software-Entwicklers
in Firmen begrenzt. Will ein Mitarbeiter in der Hierarchie aufsteigen,
so ist dieser gezwungen, ins Management zu wechseln. Steigt man als
Techniker die Karriereleiter hinauf, so werden die technischen Tätigkeit,
die man von Grund auf erlernt hat, immer weniger und die Zeit für
Managementtätigkeiten steigt. Zu oft verliert dadurch eine Firma
einen hervorragenden Programmierer und bekommt einen unterdurchschnittlich
begabten Manager. Durch die Struktur des "CPT"s können
normale Programmierer zum Co-Piloten bzw. zum "Chief Programmer"
in Folgeprojekten aufsteigen. Durch diesen Aufstieg verringern sich
ihre technischen Tätigkeit nicht. Der Mitarbeiter bleibt weiterhin
in seinem eigentlichen Spezialgebiet tätig. Wird in der Firma für
grosse Software-Projekte das Prinzip der hierarchischen
"CPT"s angewendet, so kann ein Programmierer mehrer Ebenen
aufsteigen, ohne die technische Orientierung seiner Tätigkeit zu
verlieren.
"CPT": Beispiel aus der Praxis
Erstmals kam das Konzept des "CPT"s für die Entwicklung
eines Informationssystems der New York Times zum Einsatz. Bei diesem
Projekt entstanden in 132 Personenmonaten 83000 Codezeilen. Laut IBM
wurden 50 Prozent der erwarteten Kosten und 25 Prozent der geplanten
Zeit eingespart. In der darauffolgenden 5wöchigen Abnahmezeit wurden
21 Fehler gefunden, die alle an einem halben Tag behoben werden konnten.
Im darauffolgenden ersten Jahr des Einsatzes traten nur weitere 25 Fehler
auf.
|