Im ersten Teil der Artikelserie findet man einen Überblick darüber, was ich unter Produktivität in Softwareentwicklungsteams verstehe und welche Faktoren Einfluss auf diese haben können. Produktivitätssteigerung kann dadurch erfolgen, indem Tätigkeiten und Abläufe genau unter die Lupe genommen werden. Was davon kann verbessert werden? Was davon ist überflüssig? Kann durchdachter Werkzeugeinsatz helfen, effizienter zu werden?
Optimierung kann dadurch stattfinden, dass überflüssige Tätigkeiten und Aufwände identifiziert werden, die Ressourcen binden, aber keinen echten Nutzen generieren. Vermeidbar sind beispielsweise unnötige Abläufe und Bürokratie, nicht notwendige Besprechungen oder die Entwicklung von Anforderungen oder Hilfstools, die in Wahrheit (fast) keiner benötigt.
Auch Engpässe binden Ressourcen, die anders eingesetzt werden könnten. Diese sind ganz unterschiedlicher Natur und zeichnen sich dadurch aus, dass es zu einem Flaschenhals kommt und Wartezeiten entstehen. Ein paar Beispiele:
Kommunikation ist ein Thema, das in vielen Organisationen oftmals eher zu kurz kommt. Darum möchte ich dieses Thema mit Vorsicht ansprechen. Meiner Beobachtung nach gibt es selten zu viel davon. Was aber sehr wohl einen Unterschied macht, ist die Form der Kommunikation. Achtet man nicht drauf, können auch hier Problemfelder entstehen, die Auswirkung auf die Gesamtproduktivität haben.
Lange Kommunikationswege können dazu führen, dass viel (Warte-)Zeit vergeudet wird, aber auch Informationsverlust enstehen kann. Beispiel: in hierarchischen Systemen beobachte ich oft, wie MitarbeiterInnen über ihre Vorgesetzten “stille Post” spielen müssen, anstatt dass sich jemand die Mühe macht, die direkt Betroffenen an einen Tisch zu bringen.
Fehlende Kommunikation kann ebenso dazu beitragen, dass Ressourcen verschwendet werden. Beispiel: Den MitarbeiterInnen wird nicht zeitgemäß kommuniziert, dass ein Feature nicht mehr oder anders benötigt wird. Während diese noch vergnügt daran arbeiten, könnte die Zeit anders genutzt werden.
Besprechungen nehmen einen besonderen Stellenwert ein. Besprechungen tragen dazu bei, Informationen auszutauschen um effizienz zu arbeiten, können aber auch sehr viel Produktivität kosten. Darum ist es empfehlenswert, gut auf deren Umsetzung zu achten!
Teilnehmerkreis definieren Meiner Erfahrung nach ist es wichtig, für ein Thema jene an einen Tisch zu bringen, die auch wirklich einen Beitrag leisten können und Entscheidungen treffen dürfen. Ich habe schon öfter die Erfahrung gemacht, ein Thema von Besprechung zu Besprechung zu tragen und nie waren jene Personen versammelt, die auch entscheiden wollten/durften. Am Ende ist viel geredet worden aber nichts passiert. Rechnet man die Kosten solcher Besprechungen zusammen, ist das sehr erschreckend. Umgekehrt versuche ich mich auch immer selbst zu fragen, bevor ich einer Besprechung zusage: Kann ich zu dem Thema einen Beitrag leisten oder benötige ich dringend die Informationen? Jede Besprechung, an der man unnötig teilnimmt, bindet Ressourcen.
Vorbereitung (Zielsetzung und Agenda) Besprechungen können lange dauern und zu nichts führen, wenn diese nicht gut vorbereitet sind. Gerade bei großen Teilnehmerkreisen macht es Sinn, Lösungen vorher in Kleingruppen vorzubereiten und mit Vorschlägen in die größere Runde zu gehen. Ansonsten können Diskussionen und Lösungsfindung ziemlich abschweifen und am Ende kommt nichts raus.
Kommunikation und Abstimmungsformen sind etwas sehr Dynamisches. Die Situation im Projekt bzw. Team gehört immer wieder neu betrachtet und wenn notwendig der Kurs korrigiert.
Ein weiterer Bereich, welcher Einfluss auf die Effizienz von Entwicklungsteams hat, ist der Einsatz passender Werkzeuge und Prozesse. Nicht ohne Grund gewinnen Microservice-Architekturen, DevOps, Automatisierung und die Cloud an Bedeutung. Vorsicht: Langfristig sollen Teams damit produktiver werden und sich auf die Entwicklung von Fachfunktionalität anstatt Infrastrukturthemen konzentrieren können. Kurzfristig gesehen müssen aber Wissen, technische Voraussetzungen und Organisationsstrukturen erst einmal aufgebaut werden. Das bedingt eine entsprechende Lernkurve sowie Umstellungsphase. Alle Betroffenen sollten sich daher gerade zu Beginn keine unrealistischen Hoffnungen machen, von heute auf morgen das volle Potenzial der Produktivitätssteigerung zu spüren, die Cloud, DevOps & Co versprechen.
Um Produktivität zu steigern macht es Sinn, Prozesse und Arbeitsabläufe zu hinterfragen und nach Optimierungsmöglichkeiten zu suchen. Tätigkeiten, die eliminiert werden können, sowie Engpässe binden Ressourcen. Effizient gestaltete Kommunikation und Besprechungen tragen ebenso zur Produktivitätssteigerung bei wie die gut durchdachte Auswahl von Werkzeugen und Prozessen.
Fortsetzung im Teil 4 der Artikelserie: Fokus und Flow
Über neuen Blog-Artikel informiert werden