Post by Florian WeimerPost by Heiko W. RuppPost by Florian WeimerEnde hin. Auf der anderen Seite spiegelt das nur wieder, daß
Softwareentwicklung eben doch in weiten Teilen noch nicht
Industrieproduktion ist, was das ganze für alle Beteiligten
Ich kann es nicht mehr hören. IT ist Industrieproduktion.
Dafür scheitern aber immer noch ziemlich viele IT-Projekte. 8-/
Spaß beiseiten, ich denke, daß der Weg klar in diese Richtung geht
(und daß sich die Industrieproduktion selbst ebenfalls verändert),
weil man die Abhängigkeit von Gurus loswerden und die erwähnten
Wasserträger durch (Kodier)roboter ersetzen will. Ich bin mir aber
nicht sicher, ob das wirklich so funktioniert. Ich kenne allerdings
auch keine Software-Systeme genauer, die auf diese Weise entwickelt
werden.
Die Wasserträger und Gurus/Supermänner gibt es auch in der Forschung und
Entwicklung in der Industrie und das Verhältnis ist wahrscheinlich
dasselbe wie bei der Softwareentwicklung. Und genausowenig wie es die
"Kodierroboter" je geben wird, gibt es vergleichbare "Ingenieursroboter".
Der Unterschied zwischen der professionellen und ingenieursmäßigen
Arbeitsweise in der fertigenden Industrie und einer professionellen
Softwareentwicklung liegt woanders.
Ich habe mal ein Beispiel persönlich erlebt: Bei einem Automobilhersteller
waren einige Beschwerden eingegangen, dass bei einem Modell die
Scheibenwischer bei hohen Geschwindigkeiten nicht richtig funktionierten
bzw. klapperten. Aus diesem Anlass haben sich dann einen Nachmittag lang
in einem Meeting sieben Leute zusammengesetzt. Da war dann dabei ein
Designer, der aufpassen sollte, dass etwaige Änderungen am Scheibenwischer
auch weiterhin ins Designkonzept der Modellreihe passen. Ein Konstrukteur,
der für das gesamte Scheibenwischeraggregat verantwortlich ist, und
aufpassen sollte, dass etwaige Änderungen am Scheibenwischer keiner
weiteren Änderungen am übrigen Aggregat nötig machen. Dann war doch noch
ein Spezialist vom Zulieferer dabei, der aufpassen sollte, dass die Form
für den Spritzguß nicht durch etwaige Änderungen so kompliziert wird, dass
das Preisbudget durchbrochen wird. Und so ging es weiter, da war also noch
ein Spezialist für Aerodynamik, ein Geräuschdesigner, der verantwortliche
F&E-Manager und nicht zuletzt ein Fertigungsingenieur, der beurteilen
sollte, wie evtl. Änderungen in die laufende Produktion eingebracht werden
können. Das Meeting, das ich mitbekommen habe, war nur das erste Meeting,
in dem die Beschwerden ausgewertet wurden, diesem sind sicher etliche
weitere in derselben Runde gefolgt, bis das Modell einen neuen
verbesserten Scheibenwischer bekam.
In anderen Worten, für ein Teil, das nachher im Laden vielleicht 30 Euro
kosten wird, und nicht mal ein Promille des Produktes ausmachte, wurden
für eine Detailverbesserung, die die allermeisten Kunden gar nie bemerken
werden, am Ende sicherlich mehr als ein Mannmonat an F&E Resourcen
eingesetzt.
Ich kenne kein einziges Softwareprojekt, bei dem Bug-Reports mit einem
ähnlichen Resourceneinsatz begegnet wird.
Man kann also sagen, dass die professionelle Arbeitsweise in der
fertigenden Industrie dadurch gekennzeichnet ist, dass selbst am kleinsten
Teil des Endproduktes viele hochgradig spezialisierte Ingenieure beteiligt
sind.
In der Softwareentwicklung hingegen wird in der Regel vom Entwickler
verlangt ganze Bibliotheken im Alleingang herzustellen und es wird
eigentlich schon als großer Fortschritt gefeiert, dass man sich vorher
wenigstens über die Schnittstellen einigt. Man ist noch weit davon
entfernt, dass am selben Stückchen Code
- ein OO-Design-Spezialist,
- ein Performance-Spezialist,
- ein IT-Sicherheits-Spezialist,
- ein Datenschutz-Spezialist,
- ein Architektur-Spezialist, und
- ein Integrations-Spezialist
zusammenarbeiten. Heute wird doch vom Entwickler verlangt, alle diese
Spezialisierungen in sich zu vereinigen, und sich dazu auch noch am besten
gleich selbst zu managen.
Nun, wenn man zuviel von den Softwareentwicklern verlangt, braucht man
sich nicht wundern, wenn man am Ende von Gurus abhängig ist.
Gurus wird's immer und überall geben. Die Kunst ist, sich von ihnen nicht
abhängig zu machen, und dies wird in der Industrie dadurch erreicht, dass
man mehrere bestenfalls durchschnittliche Ingenieure zu exzellenten
Spezialisten heranwachsen lässt, und sie dann am Produkt zusammenwirken
lässt. Wenn unter diesen Ingenieuren dann ein Guru ist, dann wird er
bestenfalls schneller als andere zum Spezialisten, aber in seinem
Spezialgebiet ist er dennoch leicht zu ersetzen, weil er eben nur seine
vertikale Expertennische besetzt.
Dagegen in der Softwareentwicklung, wo man nach wie vor den Alleskönner
sucht, also denjenigen der über die gesamte horizontale Wissenbreite
glänzt, macht man sich leicht von einem Guru abhängig.
Eine weitere Frage ist allerdings, ob eine solche Vorgehensweise für
Software überhaupt machbar ist. Ein Automodell besteht glaube ich aus etwa
15.000 Einzelteilen und kostet sagen wir mal 20.000 Euro und wird mehrere
hunderttausendmal hergestellt.
Eine Software, wie IntelliJ IDEA oder Eclipse, OpenOffice oder MS Office,
A2LL oder Toll Collect besteht leicht aus zehnmal soviel Klassen (also
quasi Einzelteilen). Das Endprocukt darf aber z.B. im Falle von IntelliJ
IDEA nur wenige hundert Euro kosten und wird bestenfalls genauso oft
verkauft wie das Auto, oder sie muss ihre Kosten gar anders als durch
Verkäufe reinbringen (Eclipse, OpenOffice). Fein raus ist man bestenfalls,
wenn man nur ein Exemplar liefern muss, das dann aber gleich Milliarden
kosten darf (A2LL, Toll Collect) oder wenn man als Quasi-Monopolist
Mondpreise für Alltagsprodukte (MS Office) verlangen kann. Aber wie die
Fehlschläge bei den Großprojekten bzw. die Produktqualität beim
Monopolisten zeigen, wird wohl nicht mal dort die Software
"ingenieursmäßig" entwickelt. Es muss wohl daran liegen, dass es sich
nicht mal dann rechnet, wenn man einen Geldscheißer hat.
cu