Sie sind auf Seite 1von 3

The Mythical Man Month - Überblick über Kapitel 1 und 2

Michael Opitz
28. April 2009

debugged werden. Darüber hinaus muss Dokumen-


tation geschrieben werden und das Produkt muss
gewartet werden. Der Aufwand ein solches Projekt
zu erstellen ist daher ungefähr 3x so hoch wie bei
einem gewöhnlichen Programm.
Ein Programmier-System ist ein Programm, dass mit
externer Software über Schnittstellen kommunizieren
muss. Es müssen selber Schnittstellen definiert wer-
den um anderen Programmen zu ermöglichen mit
dem Programm zu kommunizieren. Eingabe- und
Ausgabe-Daten müssen genau validiert werden um
sicherzustellen dass sie mit der Spezifikation überein-
Abbildung 1: Zeitaufwand bei unterschiedlichen Pro- stimmen. Selbstverständlich muss gegen alle mögli-
grammtypen chen Komponenten ausführlich getestet werden, was
wiederum einen erhöhten Zeitaufwand von minde-
stens den Faktor 3 im Vergleich zu normalen Pro-
Zusammenfassung grammen darstellt.

The Mythical Man Month ist ein Buch von P. Brooks, in Ein Programmier-System Produkt ist sowohl ein
dem er seine Erfahrungen über Software Engineering, die Programmier-Produkt als auch ein Programmier-
er durch die Entwicklung von OS/360 bei IBM gewonnen System und hat daher einen mindestens 9x so hohen
hat, schildert. Im folgenden Artikel möchte ich einen klei- Zeitaufwand wie ein normales Programm.
nen Überblick über die ersten beiden Kapitel geben und
meine eigene Meinung einfließen lassen.
2 Kapitel 2
Kapitel 2 dreht sich um die im Buchtitel schon angespro-
1 Kapitel 1 chenen Mann-Monate. P. Brooks Hauptaussage in diesem
Kapitel 1 dreht sich zunächst um den Zeitaufwand bei Kapitel ist:
unterschiedlichen Programm-Typen (siehe Abbildung 1).
Adding manpower to a late software project ma-
kes it later.
Ein Programm ist eine Software, die nur auf einem
Rechner zum Einsatz kommt und wird nur auf die- Dies dadurch begründet, dass neues Personal erst ein-
sen einen Rechner entwickelt, debugged und getestet. geschult werden muss und nicht gleich mit 100%iger Pro-
Das Programm muss nicht mit externen Schnittstel- duktivität arbeiten kann. Außerdem steigt durch eine
len kommunizieren. Mehrzahl an Entwicklern der Kommunikationsaufwand
quadratisch an:
Ein Programmier-Produkt ist eine verkaufsreife
Software, die auch auf mehreren Rechnern läuft. Sie n ∗ (n − 1)
muss daher auf mehr Rechnern getestet werden und Kommunikationsauf wand = (1)
2

1
Abbildung 2: Zeitaufwand bei einem 12 Mann-Monate Abbildung 4: Das Verzögerte Projekt mit zusätzlichen
Projekt mit 3 Entwicklern Entwicklern

vorgenommen werden müssen oder gegebenenfalls Featu-


res zu streichen um das Projekt rechtzeitig mit geringe-
rem Funktionsumfang fertig zu stellen.

3 Meine Meinung
Zur Zeit der Entwicklung von OS/360 hatte IBM noch
nicht viele Erfahrungen mit Softwareentwicklung ge-
Abbildung 3: Das Verzögerte Software-Projekt macht. An Programmiersprachen waren damals gerade
einmal COBOL, PL/I und FORTRAN in Mode. Durch
die großen Verspätungen von OS/360 machte sich Brooks
Darüber hinaus kann es natürlich auch möglich sein, offenbar Gedanken was beim Entwicklungsprozess richtig
dass man manche Aufgaben nicht aufteilen kann, da man gemacht wurde und wo die Probleme lagen und verfasste
sequentielle Abhängigkeiten zwischen einzelnen Kompo- ’The Mythical Man Month’.
nenten hat. Erkenntnisse wie ’lieber unwichtige Features entfernen
Dazu gibt es auch ein illustratives Beispiel. Angenom- oder den Zeitplan ändern anstatt neue Entwickler einzu-
men man hat ein Softwareprojekt mit 4 Milestones, das stellen’ findet man heutzutage in modernen Agilen Vorge-
12 Mann-Monate dauert und an dem 3 Entwickler arbei- hensmodellen wie etwa Scrum wieder, wo Anforderungen
ten. Dann ist die geschätzte Entwicklungszeit 4 Monate schon im vorhinein priorisiert werden und abgearbeitet
(siehe Abbildung 2). werden, sodass man im Notfall immer ein mehr oder we-
Angenommen das Projekt ist nun am Anfang um einen niger funktionierendes Produkt mit den wichtigsten Fea-
Monat zu spät, dann schaut das erwartete Projektende tures hat.
wie in Abbildung 2 aus. Darüber hinaus ist es erstaunlich, dass schon Brooks
Muss das Projekt jetzt allerdings unbedingt in 4 Mona- damals zum Schluss gekommen ist dass kleinere Teams
ten fertig werden, dann könnte man auf die Idee kommen wesentlich effektiver arbeiten als größere Teams und dass
die restlichen 9 Mann-Monate mit insgesamt 5 Entwick- es scheinbar talentierte Entwickler gibt, die ungefähr 10x
lern bewältigen zu wollen. Damit wäre das Projekt rein so produktiv sind wie untalentierte Entwickler. Dies ent-
rechnerisch dann in 2 Monaten fertig. Allerdings müssen spricht ebenfalls dem heutigen Trend eher Entwicklungs-
die neuen Entwickler erst eingeschult werden, was einige Teams klein zu halten, da dies den Kommunikationsauf-
Zeit in Anspruch nehmen könnte (siehe Abbildung 2). wand minimiert und so die Produktivität steigert (siehe
Nun könnte man wenn man im Monat 3 sich den Status Formel 1).
anschaut wiederum auf die Idee kommen weitere Entwick- Desweiteren hat er schon damals erkannt, dass es einige
ler einzustellen, was sich allerdings nicht auf ein kürzeres wenige Architekten geben soll, die miteinander harmonie-
Projektende auswirken wird.. ren, sodass die Konsistenz des (User)- Interface gewahrt
Es wird generell vorgeschlagen den Zeitplan zu ist. Dadurch ist das System insgesamt leichter zu durch-
verändern, sodass aber keine weiteren Änderungen mehr schauen. Viele Architekten würden sehr unterschiedliche

2
Ideen liefern, was zu einem schwer zu durchschaubaren
(User)-Interface führen würde. Außerdem spricht er Ele-
mente wie Simplizität an, die im Design wichtig sind.
Diese Dinge sind heute noch im User-Interface-Design
sehr wichtig. Man muss sich nur erfolgreiche Projekte wie
zum Beispiel die Google Suche (bestehend aus einer sim-
plen einfachen Eingabebox mit Button) oder Apple’s iPod
(simpel, da wenige Tasten, konsistentes Interface, ...) an-
schauen.

Das könnte Ihnen auch gefallen