Egal, ob Sie selbst Entwickler_in sind, Entwickler_innen managen oder mit ihnen zusammenarbeiten – hier ist eine Liste von Maßnahmen, mit denen Sie typische Zeitfresser und Produktivitäts-Blocker identifizieren und beheben, mit denen Entwickler_innen konfrontiert sind.
Feedback gerne an margot@cloudomation.com
#1 Meetings
Viele Menschen mögen keine Meetings. Entwickler_innen sind möglicherweise besonders abgeneigt, an Diskussionen teilzunehmen die irrelevant erscheinen oder in denen sie nichts beitragen können.
Fragen Sie sich:
- Wird ein_e Entwickler_in während des Meetings sprechen?
- Falls ja, wird das, was er oder sie sagt, hilfreich sein und positiv zum Zweck des Meetings beitragen?
- Ist es möglich, das Ziel des Meetings ohne Beisein von dem_r Entwickler_in zu erreichen?
Entwickler_innen sollten nur dann an einem Meeting teilnehmen müssen, wenn die Antworten auf diese Fragen ja – ja – nein lauten.
Reine Informationsmeetings sind nicht sinnvoll. Ein Meeting, bei dem eine Person nur teilnehmen muss, um auf dem Laufenden zu sein, sollte kein Meeting sein. Solche Informationen können per E-Mail, Video oder in einem anderen Format übermittelt werden. Und zwar in einem Format, das asynchron konsumiert werden kann. Idealerweise in einer Art und Weise, die dem individuellen Tempo der Person entspricht (z. B. durch Querlesen, Zusammenfassungen, Anpassung der Wiedergabegeschwindigkeit usw.).
#2 Mit anderen Menschen sprechen
Es ist ein Klischee, dass Entwickler_innen nicht gerne mit Menschen sprechen. Ich habe festgestellt, dass dies in vielen Fällen zutrifft. Meine Empfehlung gilt deshalb für alle Entwickler_innen, auch für diejenigen, die gerne mit Menschen sprechen:
Schaffen Sie Räume, in denen Entwickler_innen mit den Menschen sprechen können, mit denen sie sprechen müssen.
Ein sehr häufiger Blocker bei Tasks ist, dass Entwickler_innen etwas von jemand anderem brauchen und es nicht bekommen. Oftmals haben sie aber nicht danach gefragt.
Wie verhindert man das? Eine Möglichkeit besteht darin, Foren zu schaffen. In diesen Foren können Entwickler_innen mit Personen in Kontakt treten, von denen sie abhängig sind – ohne dass Initiative ergriffen werden muss. Tägliche Standups sind so ein Forum. Hier kommen Entwickler_innen mit anderen Entwicklern_innen in ihrem Team in Kontakt. Wöchentliche Syncs (5 Minuten reichen aus) mit Managern_innen sind ein weiteres Beispiel für so ein Forum. Wenn Ihr Team viele Abhängigkeiten zu einem anderen Team hat, könnte ein regelmäßiger gemeinsamer Statusanruf sinnvoll sein.
Diese regelmäßigen Foren sollen aber nicht zu sinnlosen Meetings werden, bei denen viele Leute nur zuhören, während ein_e Junior-Entwickler_in eine Frage stellt. Einzelgespräche sollten offline geführt werden. Wenn möglich, sollten Meetings optional sein und nur mit den Personen abgehalten werden, die etwas benötigen.
Eine weitere Möglichkeit, dies zu erreichen, ist bereits im Scrum-Format enthalten: Entwickler_innen sprechen in den täglichen Standups über ihre Blockaden. Ein_e Manager_in sollte sicherstellen, dass (a) Entwickler_innen tatsächlich ihre Blocker erwähnen und (b) die Entwickler_innen bei der Lösung dieser Hindernisse unterstützen. Z. B. durch das Ansetzen eines Meetings zwischen der Entwicklerin oder dem Entwickler und der Person, die die benötigten Informationen hat.
#3 Administrative Aufgaben
Ebenso häufig wie Meetings werden administrative Aufgaben beklagt. Sie sind ein häufiger Zeitfresser, die einige Entwickler_innen (viel zu) gerne erledigen, während andere sie wie die Pest meiden. Für die erste Gruppe können administrative Aufgaben zu einer erheblichen Zeitfalle werden. Beispiel: Wenn der Backlog mit farbigen Symbolen und einem konsistenten Tag-Label-Schema organisiert werden muss. Für die zweite Gruppe fühlen sich administrative Aufgaben wie eine riesige Zeitverschwendung an und können ihr Wohlbefinden und ihre Produktivität ernsthaft beeinträchtigen, auch wenn die tatsächlich aufgewendete Zeit gering ist.
Die Lösung: Minimieren Sie die Anzahl der administrativen Aufgaben, die Entwickler_innen erledigen müssen. So einfach ist das.
Tipps dazu:
- Aufgabenverwaltung vereinfachen: Machen Sie die Task-Verwaltung so einfach wie möglich, z.B. indem Sie einen großen, ungepflegten Backlog tolerieren. Wenn ein Ticket wichtig ist, wird es sich durchsetzen. Drei Prioritätsstufen sind ausreichend. Jedes Ticket, das als „nicht jetzt“ kategorisiert werden kann, benötigt keine weitere Zeit oder Aufmerksamkeit.
- So viel wie möglich automatisieren: Es gibt großartige Apps, die Spesenabrechnungen wirklich einfach machen. Nutzen Sie Integrationstools, die Daten zwischen Systemen kopieren können – das ist viel günstiger, als wenn Ihre Entwickler_innen dieselben Informationen mehrmals in verschiedene Systeme eingeben müssen.
- Zeiterfassung vereinfachen: Integrieren Sie die Zeiterfassung in das Ticketsystem oder sogar in das Versionskontrollsystem. Oder verzichten Sie auf die Zeiterfassung und vertrauen Sie darauf, dass Entwickler_innen ihre Zeit selbst verwalten.
- Eine „Admin“-Kategorie für die Zeiterfassung einführen: Wenn Sie die Zeit erfassen, erstellen Sie eine „Admin“-Kategorie. Beobachten Sie, wie viel Zeit Entwickler_innen für administrative Aufgaben aufwenden. Wenn plötzlich ein Viertel der Zeit als „Admin“ erfasst wird, könnte dies das Bewusstsein dafür schärfen, dass diese Aufgaben reduziert werden müssen.
Durch die Minimierung administrativer Aufgaben können Sie Entwicklern_innen helfen, sich stärker auf ihre Kernaufgaben zu konzentrieren und ihre Produktivität und ihr Wohlbefinden zu steigern. Stichwort Developer Experience.
#4 Fokuszeit
Nicht alle Meetings und administrative Aufgaben können vermieden werden und nicht alle Prozesse können automatisiert werden. Entwickler_innen werden also zwangsläufig Zeit mit anderen Aufgaben als dem Programmieren verbringen. Aber selbst wenn die Zeit für andere Aktivitäten nicht reduziert werden kann, kann die Strukturierung der Arbeitszeit der Entwickler_innen große Vorteile für ihre Produktivität bringen.
Viele Entwickler_innen berichten, dass häufige Unterbrechungen ihre Produktivität erheblich beeinträchtigt. Das Reduzieren von Unterbrechungen und das Erhöhen der verfügbaren Fokuszeit ist ein Gamechanger, wenn es um Produktivitätssteigerungen geht.
Die Einführung von unternehmensweiter Fokuszeit gibt Entwicklern_innen die Möglichkeit, täglich mehrere Stunden ununterbrochene Fokuszeit zu haben – z.B. indem festgelegt wird, dass vor 11 Uhr keine Meetings angesetzt werden und es keine Erwartung gibt, dass Slack-Nachrichten oder E-Mails beantwortet werden.
Natürlich gibt es auch Entwickler_innen, die dann erst um 11 Uhr mit ihrem Tag beginnen werden – aber sie können ihre Fokuszeit später am Nachmittag nutzen, wenn alle anderen Feierabend haben. 🙂
#5 Multitasking vermeiden
Eine Sache, die ich immer schon oft gesagt habe und bei steigendem Stresspegel wiederhole: „Eins nach dem anderen„. Es klingt aber viel einfacher, als es ist. Es bedeutet, eine Sache zu beenden, bevor man die nächste beginnt.
Der Wechsel des Kontexts ist kostspielig. Wechseln von einer Aufgabe zur anderen fordert seinen mentalen Tribut. Für Entwickler_innen hat das oft aber nicht nur mentale Kosten: Es kann bedeuten, dass die gesamte Entwicklungsumgebung zurückgesetzt, neue Umgebungen hochgefahren oder andere zeitaufwändige Aktivitäten wiederholt werden müssen. Und zwar jedes Mal, wenn Entwickler_innen zu einer anderen Aufgabe wechseln. Bei einer Aufgabe zu bleiben, bis sie abgeschlossen ist, wird in der Regel die Gesamtzeit für deren Fertigstellung erheblich reduzieren. Daher ist es besonders wichtig, Dinge zu Ende zu bringen, wenn es zu viel zu tun und zu wenig Zeit gibt.
Neben der Zeitersparnis reduziert das Abschließen von Aufgaben den mentalen Stress und vermittelt ein dringend benötigtes Gefühl des Fortschritts, besonders wenn zu viele Aufgaben auf der To-Do-Liste stehen.
Wie kann das ermöglicht werden?
- Abhängigkeiten und Wartezeiten reduzieren: Beispielsweise verringert eine Reduktion der Wartezeit auf das Abschließen automatisierter Tests die Wahrscheinlichkeit, dass Entwickler_innen während des Wartens mit einer anderen Aufgabe beginnen. Dasselbe gilt für Code-Reviews: Je schneller sie erledigt sind, desto wahrscheinlicher ist es, dass Entwickler_innen mentalen noch bei der Aufgabe sind, wenn Feedback erhalten wird.
- Alternative Aufgaben bereitstellen: Sind Wartezeiten unvermeidbar? Stellen Sie sicher, dass es Aufgaben gibt, die wenig Kontextwechsel erfordern oder schnell erledigt werden können. Zum Beispiel Code-Reviews für Kollegen_innen, das Schreiben von Dokumentationen oder Unit-Tests für das gerade bearbeitete Feature.
- Iterationen zulassen: Wenn eine Aufgabe nur als abgeschlossen zählt, wenn sie perfekt ist, werden Entwickler_innen sie nie in einem Durchgang abschließen können. Wenn die Definition von „fertig“ für ein Feature Dokumentation, Tests und mehrere andere Schritte beinhaltet, sollte dies in separate Aufgaben aufgeteilt werden, die jeweils abgeschlossen werden können.
#6 Klarheit
Je mehr zu tun ist, desto wichtiger ist es, klare Prioritäten zu setzen. Ich habe festgestellt, dass einige Entwickler_innen beeindruckend kreativ und hartnäckig sind, ein Ticket nicht zu bearbeiten, auf das sie keine Lust haben. Es lohnt sich herauszufinden, warum sie nicht daran arbeiten möchten.
Nach meiner Erfahrung liegt es typischerweise an einem der folgenden Gründe:
- Die Aufgabe ist nicht klar beschrieben. Es ist nicht klar, was zu tun ist.
- Die Aufgabe ist zu groß. Es muss viel Zeit dafür aufwenden werden. Dadurch fühlt man sich weniger produktiv als bei kleineren Tickets, die schneller abgeschlossen werden können.
- Die Aufgabe widerspricht den Instinkten oder Vorlieben. Zum Beispiel habe ich einen Entwickler, der konsequent vermeidet an Windows-bezogenen Themen zu arbeiten, weil er Windows nicht mag.
Die ersten beiden Punkte lassen sich durch eine bessere Beschreibung der Aufgabe und deren Aufteilung in kleinere Aufgabenpakete lösen. Der dritte Punkt kann gelöst werden, indem man die Vorlieben der Entwickler_innen kennt und ihnen entweder keine Tickets zuweist, die sie nicht gerne bearbeiten…oder, falls nötig, durch schiere Hartnäckigkeit: Sagen Sie ihnen, dass sie die Aufgabe erledigen sollen, immer wieder, bis sie fertig ist. Es kann erforderlich sein, der Person ständig damit auf die Nerven zu gehen. Denn sonst werden schnell hundert andere Dinge gefunden, die mindestens ebenso wichtig und dringend sind.
Wohlgemerkt, ich empfehle kein Mikro-Management. Ich selbst habe nicht den Charakter dafür, und die meisten Entwickler_innen arbeiten nicht gut mit Mikro-Managern_innen. Aber ich plädiere für Klarheit. Entwickler_innen sollten genau wissen, was sie tun sollen und warum sie es tun sollen. Vieles davon kann durch klare Kommunikation von Aufgaben und Prioritäten erreicht werden.
#7 Self-Service
Jede Abhängigkeit von anderen Personen oder Teams verlangsamt die Produktivität erheblich. Die Bereitstellung von Tools für die Produktivität und anderen Diensten im Self-Service kann das Arbeitstempo enorm beschleunigen. Die Priorisierung der Dienste, die häufiger benötigt werden und ihre Bereitstellung im Self-Service kann sich auszahlen, selbst wenn der Aufwand dies einzurichten hoch ist.
Ein signifikanter Zeitverlust für Entwickler_innen entsteht durch die Zeit, die sie für Einrichtung, Wartung und Fehlerbehebung ihrer Entwicklungsumgebung aufwenden, einschließlich des Erstellens und Ausführens der Software lokal auf ihren Laptops. Die Bereitstellung standardisierter Cloud Development Environments, die für Entwickler_innen im Self-Service und per Knopfdruck verfügbar sind, kann bis zu 10-25% der Zeit eines_r Entwicklers_in freisetzen.
Weitere Dienste die im Self-Service bereitgestellt werden sollten sind Deployment-Dienste wie CI/CD-Pipelines, einschließlich automatisierter Tests, die schnell Feedback liefern.
Fazit
Um Geld zu verdienen, muss man Geld ausgeben – und um Zeit zu sparen, muss man Zeit investieren. Es wird Zeit kosten, die größten Zeitfresser und Produktivitätsblocker zu identifizieren. Es wird noch mehr Zeit kosten, daran zu arbeiten und sie zu beseitigen. Am Ende des Tages werden Sie diese Zeit nicht nur durch direkte Produktivitätssteigerungen zurückgewinnen, sondern auch durch gesteigertes Glück und Zufriedenheit.