Software-Dream-Teams

Wie Entwickler ticken

17.03.2009 von Simon Hülsbömer
Wer für ein Software-Projekt die besten Köpfe anheuern möchte, muss verstehen, wie Programmierer arbeiten, denken und fühlen. Java-Experte Adam Bien gibt Tipps.

Laut Adam Bien, der als Java-Trainer arbeitet, programmiert und bloggt, gibt es nur zwei Arten von Menschen: diejenigen, die Technik lieben und die anderen, die es nicht tun. Der perfekte Entwickler fällt in die erste Kategorie und ist deshalb leicht zufrieden zu stellen - vorausgesetzt, er findet das ideale Umfeld für sich und sein Talent. Nach Biens Ausführungen, die er im Rahmen der OOP-Fachkonferenz "Software meets Business" präsentierte, empfindet der perfekte Entwickler das Schreiben von Code in erster Linie als Genuss und nicht als Mittel zum Zweck. Er ist in der Lage, Wissen weiterzugeben, eigenes Unwissen und Fehler zu erkennen, Probleme und Änderungen schnell zu kommunizieren, jeden Tag dazuzulernen, die bestmögliche Problemlösung zu erkennen und andere im Team von dieser zu überzeugen. Er kann politische Entscheidungen von oben akzeptieren, neue Technologien und Entwicklerwerkzeuge mit vorhandenen vergleichen sowie sich selbst eingestehen, dass es immer andere Entwickler gibt, die mehr wissen und mehr können als er selbst. Um Software-Entwickler in diesen Idealzustand zu versetzen, müssen sie ein Umfeld vorfinden, das ihnen die bestmöglichen Arbeitsbedingungen schafft. Bien hat die fünf wesentlichen Anforderungen zusammengetragen:

Entwickler brauchen gute Hardware

Gute Hardware kostet fast nichts. Gutes Personal ist teuer. Ein Entwickler sollte die Möglichkeit haben, seine Arbeitsgeräte selbst auszusuchen (selbst wenn es um Mac, Linux und mehrere Bildschirme geht). Gute Hardware sorgt für eine hohe Motivation und höhere Effizienz. Es ist mittelfristig wesentlich effektiver, von guten Programm zu profitieren, als an Arbeitsspeicher, Prozessorleistung oder gar am Rechnerdesign zu sparen. Viele Unternehmen haben das noch immer nicht begriffen.

Entwickler brauchen Anerkennung

Wenn ein Projekt schief geht, brauchen Manager einen Sündenbock. Wenn ein Projekt gelingt, wird dagegen niemand gelobt und erhält gar eine offizielle Anerkennung. Oft würde schon ein einfaches "Gut gemacht" genügen - auch das steigert die Motivation der Mitarbeiter. Viele Vorstände glauben, dass Analysten, Designer und Architekten die wahren Erfolgsgaranten in Softwareprojekten sind. Entwickler sind ihrer Meinung nach austausch- und auslagerbar - daher brauchen sie auch nicht besonders hervorgehoben zu werden.

Was Entwickler noch brauchen und was gute Entwicklerteams auszeichnet, lesen Sie auf der nächsten Seite.

Entwickler brauchen Flexiblität

Besonders in Europa müssen Entwickler zu festgelegten Arbeitszeiten, die eine bestimmte Stundenzahl pro Tag nicht übersteigen dürfen, programmieren. Das ist auch gut so, muss aber gerade in der Vorbereitungsphase eines Projekts auch einmal nicht eingehalten werden dürfen. Mehr als zehn Stunden pro Tag sind von Gesetzes wegen nicht erlaubt - diese Einschränkung bremst viele Teams aber in ihrer Produktivität. Für die Effizienz wäre es daher sinnvoller, eine bestimmte Zeit lang täglich über zehn Stunden arbeiten zu dürfen (und diese aus arbeitsrechtlicher Sicht auch zu dokumentieren!) und danach einige Tage freizunehmen.

Entwickler brauchen gute Teams

Das Beste, was einem Entwickler passieren kann, ist, der am wenigsten Erfahrene im Team zu sei, damit er von den anderen lernen kann. Jeder motivierte Programmierer braucht aber ebenso motivierte Kollegen. Andernfalls herrscht Dienst nach Vorschrift, und der kommt auch in Softwareprojekten gar nicht gut.

Entwickler brauchen Motivation

Der kostenlose Zugang zu Büchern und Fachzeitschriften sowie der Besuch von Fortbildungen, Konferenzen und Trainings als fester Bestandteil der regulären Arbeitszeit sollte für jeden Entwickler selbstverständlich sein. Häufig zahlen sich diese Aufwendungen für das Unternehmen innerhalb weniger Wochen in Form höherer Arbeitseffizienz zurück.

Dream-Teams in der Software-Entwicklung

Wer die fünf genannten Regeln befolgt, hat noch kein ideales Entwicklerteam zusammen, das innovative und Bahn brechende Qualitätssoftware schreibt. Ist der einzelne Entwickler zufrieden, muss im nächsten Schritt das Team entsprechend eingestellt werden. Die beste Arbeit leisten Gruppen aus zwei bis maximal fünf Programmierern, die gemeinsam das Ziel einer funktionierenden Applikation verfolgen. Je besser das Team arbeitet, desto größer ist die Gefahr, sich höhere Ziele zu stecken und die Gruppe mit mehr Leuten aufzustocken. Das ist nach der Erfahrung des Java-Coaches der sichere Tod des Projekts. "Lassen Sie organisches Wachstum entstehen und achten Sie darauf, dass in keinem Fall mehr als zehn Leute gemeinsam an einer Software arbeiten", so Bien. Wichtig auch, gute Teams längerfristig zusammenzuhalten und nicht einzelne, augenscheinliche "Underperformer", sofort auszutauschen.

Auftraggeber und Unternehmen sollten darüber hinaus weitere wichtige Punkte beachten:

  1. Teaminterne Veranstaltungen müssen nicht geplant werden (einmal abgesehen vom Budget, das hierfür bereitstehen sollte);

  2. Teammitglieder respektieren einander, selbst in Konfliktsituationen und Konflikte kommen häufig vor. Lassen Sie Auseinandersetzungen zu, wenn sie die Arbeitsleistung nicht auf Dauer negativ beeinflussen;

  3. Humor ist wichtig - gute Entwickler nehmen sich selbst nicht zu ernst;

  4. Jeder Projektteilnehmer hat seine Daseinsberechtigung, egal ob Softwarearchitekt, Analyst, Tester, Projektmanager oder Entwickler;

  5. Alle Teammitglieder haben Interesse am späteren Einsatz ihrer Software und sind über das einschlägige Anwendungsumfeld informiert. Jede Offshore- und Outsourcing-Aktivität bremst ein gut laufendes Projekt deshalb erheblich aus.

Was gute Teams alles schaffen können, wenn man sie lässt und wie Sie ein solches Dream-Team auf die Beine stellen, lesen Sie auf der nächsten Seite.

Was gute Entwicklerteams können

Eine kleine Gruppe leidenschaftlicher Entwickler kann wirklich alles programmieren, wie die folgenden Beispiele zeigen. Alle diese Projekte wurden von sehr kleinen Entwicklerteams - teilweise auch nur von einem einzelnen - geschrieben:

Wie gute Entwicklerteams entstehen

Zehn Schritte zum idealen Team, das Softwareprojekte jeder Art "in time" und "in budget" umsetzen kann:

  1. Stellen Sie nur eine Handvoll guter Entwickler ein und lassen Sie das Team organisch wachsen;

  2. Lassen Sie das Team selbst über neue Teammitglieder entscheiden, binden Sie es dafür in Vorstellungsgespräche etc. ein;

  3. Investieren Sie lieber in Ihr eigenes Entwicklerteam und nicht in externe Berater;

  4. Kostenlose Bücher, Fachzeitschriften, Konferenzen und Workshops sind die Regel für alle und nicht lediglich Belohnungen für gute Leistungen;

  5. Machen Sie sich Gedanken über attraktive Incentives für das Erreichen einzelner Meilensteine und der Projektziele insgesamt (Urlaubsgutscheine, Leasingautos etc.);

  6. Lassen Sie die Entwickler nicht nur darüber entscheiden, welche Hardware und Software sie nutzen, sondern auch, mit welchen Möbeln ihr Arbeitsplatz ausgestattet wird;

  7. Vertrauen Sie dem Team. Strenge Kontrollen sind tödlich.

  8. Entwickler stellen den wahren Mehrwert in einem Softwareprojekt dar - alles andere ist wichtig, aber nicht entscheidend;

  9. Gute Entwickler sind nicht ersetzbar - versuchen Sie es erst gar nicht;

  10. Finden Sie aber einen Weg, "teamresistente" und nicht integrierbare Entwickler schnell los zu werden - sonst schaden sie der Produktivität aller Teammitglieder.