Projekte scheitern selten wegen technischer Ursachen. Meistens sind mangelnde Kommunikation oder fehlende soziale Kompetenz die Ursache für:
Ich habe als Freier Mitarbeiter schon mit sehr unterschiedlichen Entwicklern zusammengearbeitet, die alle ihre besonderen Stärken und Schwächen hatten. Ein Team funktioniert meiner Meinung nach dann am besten, wenn sich diese Stärken und Schwächen gut ergänzen bzw. aufheben.
Wenn zu viele Kollegen demselben Typus angehören, dann ist das vergleichbar mit einer Monokultur im Ackerbau: Solange alles gut geht, sind die Erträge höher, aber unvorhergesehene Störungen können zur Katastophe führen, weil die Reaktionen der Mitarbeiter zu ähnlich sind.
Im Rückblick hier meine Einteilung der unterschiedlichen Typen:
Er sucht stets die perfekte Lösung. Wenn er fachlich sehr kompetent ist, findet er sie auch manchmal. Aber das braucht seine Zeit, und für schnelle Prototypen ist er nicht zu begeistern. Diskussionen um Schnittstellen können sehr anstrengend sein und er kann sehr energisch auch über eher unwichtige Details streiten. Sein Motto ist: Lieber gar keine Lösung als eine schlechte.
Harmonie geht ihm über alles. Wenn ein Kollege sich eine neue Schnittstellenfunktion wünscht oder einen neuen Parameter, dann ist das gar kein Problem. Wenn dadurch eine Schnittstelle eher unübersichtlich und pflegeaufwendiger wird, dann tut er sein bestes, um es im Griff zu behalten. Er opfert sich gern dafür, dass es die Kollegen leichter haben. Wenn er einen Wunsch an einen Kollegen hat, kann man nur hoffen, dass der Kollege diesen Wunsch errät. Von sich aus kann der geborene Helfer ihn nämlich nicht äussern.
Diesem Typus kommt es hauptsächlich darauf an, dass seine Arbeitsergebnisse von anderen als hervorragend angesehen werden. Wenn ein nur ihm bekannter Fehler dieses Bild trüben würde, kann er ihn "vorübergehend" schon mal unter den Tisch fallen lassen. Er hat ein gutes Gespühr für die Erwartungen, die an ihn gestellt werden und kommt gut mit politischen Spielchen zurecht.
Er schwelgt oft in der guten alten Zeit, als es noch richtige Debugger gab und die Programmgröße noch in Kilobyte gemessen wurde. Alles war damals einfacher, unkomplizierter - einfach liebenswerter. Glücklicherweise ist dieser Typ sehr selten in Entwicklungsteams vertreten.
Denker können mit beliebig viel Ausdauer über einer Aufgabe brüten und darüber alles andere vergessen. Sie finden manchmal sehr elegante Lösungen für schwierige Probleme, aber damit ist der Reiz für sie verloren. Die Implementierung der Lösung mit konkretem Code ist weniger motivierend als das Finden der Lösung. Schwierige Fehler in komplexen System zu finden ist eine ideale Aufgabe für diesen Typus, weil mit dem Identifizieren des Problems die Behebung oft nicht mehr seine Aufgabe ist. Sein Motto ist: das ist aber ein lustiges Problem, spielen wir in Gedanken mal damit.
Er holt sich vom zuständigen Vorgesetzten seine nächste Aufgabe, führt sie nach bestem Wissen und Gewissen aus und meldet zurück, wenn er damit fertig ist. Arbeit muß nicht unbedingt Spaß machen, und wenn ein Abgabetermin näher rückt, dann muss eben noch härter gearbeitet werden. Dieser Typ kann leicht die Haltung des "Dienst nach Vorschrift" fallen, oder in "arglistiges Fügen", wie DeMarco das nennt. Solange er formal die Regeln erfüllt gibt es für ihn keinen Anlaß über seinen Tellerrand zu blicken.
Ihm wird leicht langweilig. Wartung an einem Thema über längere Zeit sind ihm unerträglich. Immer wieder neue Aufgaben, am besten mehrere parallel, das liegt ihm am meisten. Viele Optionen muss ein Programm haben und die nächsten Versionen kann er auch schon mal einplanen. Und wenn es in dieser Abteilung nichts Interessantes mehr für ihn zu tun gibt, dann gibt es ja auch noch andere Firmen mit schönen Projekten.
Dieser Typ setzt seine Ideen durch und fertig. Es ist vielleicht nicht die beste Lösung, aber besser eine schlechte Lösung als gar keine.
Design-Diskussionen mit sehr unterschiedlichen Ansichten sind ihm ein Greuel. Er kann die Argumente aller Seiten nachvollziehen, kann daran Gutes finden aber hat ein Problem, sich für eine Seite zu entscheiden. Wenn zu viele Mitarbeites dieses Typs im Team sind, kommt es zu keinen Entscheidungen. Dann wird alles "konfigurierbar" gehalten. Dann muß man sich nicht für einen guten Kompromiss entscheiden. Dieser Typus kann gut "aus dem Bauch" programmieren. Er findet intuitiv gute Lösungen, kann sie aber oft nicht begründen und wenn die Mehrheit eine andere Lösung anstrebt, dann kann er sich auch dafür erwärmen.
Diese Beschreibungen sind angelehnt an die neun Typen des Enneagramms. google findet einiges unter diesem Stichwort, falls sie sich näher dafür interessieren.