Software-Generalist

In vielen Projektausschreibungen für Software-Entwicklungsprojekte werden eine Reihe von Technologien als Kriterien angeführt. Es scheint, als wären Spezialisten sehr gefragt. Doch ist es immer von Vorteil, nach einem Spezialisten für genau die eine Technologie zu suchen, die man in dem Projekt verwenden möchte? In diesem Beitrag möchte ich versuchen, aus dem Blickwinkel eines IT-Projektleiters Spezialisten mit Generalisten zu vergleichen.

Zu Beginn sei malklar gestellt, dass  vermutlich niemand nur „Spezialist“ oder nur „Generalist“ ist. Diese Unterscheidung ist immer in verschiedenen Dimensionen möglicherweise unterschiedlich zu fällen. Doch gibt es generell Entwickler, die mit einer speziellen Technologie mehr Erfahrung haben, bzw. solche, die fast ausschließlich mit dieser Technologie gearbeitet haben.

Schauen wir uns nun den Spezialisten genauer an. Der Spezialist hat in der geforderten Technologie schon viele Projekte umgesetzt und idealerweise mehrere Jahre damit gearbeitet. Der Vorteil eines Spezialisten scheint hier also auf der Hand zu liegen:

  1. Er kennt die Technologie in- und auswendig und ist daher gleich zu Beginn schnell.
  2. Er hat schon viele Probleme mit der Technologie gelöst und weiß daher, wie er ähnliche Aufgaben damit lösen kann.
  3. Er weiß auch, was alles nicht geht oder nur sehr schwierig umzusetzen ist.

Der Spezialist ist also dann optimal für Ihr Projekt, wenn die Rahmenbedingungen klar sind, Sie sich schon auf eine Technologie festgelegt haben und auch die Anforderungen es erlauben, bei der Technologie zu bleiben.

Oft sind allerdings viele Situationen nicht von Anfang an bekannt, und in manchen Projekten wurde die Technologie-Entscheidung auch schon mal während des Projekte geändert. Auch wenn die Technologieauswahl fix bleibt, oft werden zusätzliche Technologien benötigt, die in das bestehende Umfeld integriert werden müssen, um bestimmte Aufgaben effizient zu lösen.  Dann macht sich der Generalist bezahlt, denn er ist in vielen Dingen flexibler als der auf seine Technologie(n) spezialisierte Experte.

In folgenden Situationen ist der Generalist von entscheidendem Vorteil:

  1. Die Anforderung ist diffus und  nicht zur Gänze bekannt.
  2. Die Anforderungen ändern sich laufend.
  3. Die geplante Systemarchitektur ist falsch dimensioniert und muss daher geändert werden.
  4. Die Fachabteilung / Projektleiter und die Entwickler sprechen nicht die selbe (fachliche) Sprache.
  5. Das Projekt-Team ist nicht groß genug, um Experten für alle Aufgaben zu haben.
  6. Die Rolle eines Software-Architekten oder Analysten wird nicht besetzt.
  7. Der Kunde benötigt spezielle Beratung, weil er die technischen Möglichkeiten nicht kennt.

In all diesen Fällen schlägt der Generalist den Spezialisten, da er sich rasch auf die geänderte Situation einstellen kann und schnell Lösungen findet. Die ersten Schritte werden dann vielleicht etwas länger dauern, als wenn ein Experte für die Technologie vorhanden wäre, dafür meistert er auch Situationen, in denen die Experten scheitern. Und nach kurzer Zeit wird er selbst zum Spezialist in der neuen Technologie und kann damit gleich schnell Aufgaben umsetzen.

Oft hat der Generalist auch mehr Erfahrung in der Umsetzung von ähnlichen Aufgaben mit anderen Technologien, und kann – gerade in Software-Projekten – damit punkten, indem er den Kunden optimal berät und ein Gespür von unterschiedlichen Lösungen und deren Vor- und Nachteilen vermitteln kann. Dies schlägt sich dann auch sehr auf die Kundenzufriedenheit nieder, da nicht alles zwangsläufig mit den selben Komponenten aufgebaut werden muss.

Fazit: Wenn Sie schon einen Software-Architekten haben, der die Software-Architektur festgezurrt hat und keine weiteren Änderungen dieser Architektur erwarten, sind Sie vermutlich gut beraten, nach einem Spezialisten für den vom Software-Architekten festgelegten Technologie-Mix zu suchen. In allen anderen Fällen wird ein Generalist für Sie günstiger sein.