Projektmanagement

Ein kritischer Blick auf Produktivität (1/4)

Ein kritischer Blick auf Produktivität (1/4)

In den letzten 1,5 Jahren habe ich mich intensiv mit Konzepten, Prozessen und Werkzeugen befasst, die dabei helfen sollen, die Softwareentwicklung zu modernisieren. Der Aufbau einer Microservice-Architektur, Umstellung auf DevSecOps und der Schritt in die Cloud sind die wesentlichen Eckpfeiler davon. Nichts davon lässt sich von heute auf morgen einfach so herzaubern. Für alle Beteiligten ist es eine große Umstellung im Denken und Handeln. Langfristig erhoffe ich mir, dass damit die Produktivität der Softwareentwicklung deutlich steigt. Kurzfristig gesehen muss ich gestehen, dass der Weg dahin einem einiges abverlangt. Es wäre naiv zu erwarten, dass eine reine Willenserklärung ausreicht. Die neuen Strukturen, Denkweisen, Wissen und notwendige Infrastruktur gehören erst aufgebaut. Da kommt es zwischenzeitlich schon mal zu etwas Chaos. Daher ist es umso wichtiger, zu jedem Zeitpunkt das langfristige Ziel klar im Auge zu behalten: Mit den neuen Prozessen und Werkzeugen die von den KundInnen benötigte Software effizient und zu den erwarteten Qualitätskriterien bereitstellen.

Den Aspekt Qualität in Softwareprojekte zu bringen, behandle ich in anderen Artikeln. Was aber heißt es, Software effizient bzw. produktiv zu entwickeln? Diese Frage hab ich mir in letzter Zeit oft gestellt. In diesem Artikel analysiere ich mögliche Faktoren, die sich meiner Erfahrung nach positiv, aber auch negativ auf die Produktivität auswirken können.

Produktivität in Softwareentwicklungsteams

Fangen wir mit etwas Grundlagenarbeit an. Was ist denn überhaupt Produktivität in der Softwareentwicklung? Dazu gibt es wahrscheinlich viele, viele Definitionen und noch mehr Arten, diese zu analysieren und zu messen. Das zu googlen, überlasse ich jedem Leser/jeder Leserin selbst. Die Frage, die ich mir also stelle, ist nicht, wie Produktivität in der Literatur definiert wird, sondern was mein Umfeld und ich darunter verstehen. Bei mir - und vermutlich auch bei vielen anderen - taucht beim Thema Produktivität im Kopf sofort auf, viele Dinge ganz schnell zu erledigen. Schnell einige Probleme lösen, schnell codieren, schnell viele Features an den Kunden liefern, schnell irgendwas dokumentieren. Wenn ich diesen Gedanken näher betrachte, suggeriert dieser aber ein falsches Bild. Viele Dinge “schnell” zu erledigen, heißt nicht, auch die Wünsche der KundInnen zu befriedigen.

Im Wesentlichen geht es bei Produktivität darum, die richtigen Dinge zu erledigen.

Get the right things done!

Was sind aber die richtigen Dinge? Dazu ist es notwendig, die Ziele und Prioritäten zu kennen, um sich an diesen klar ausrichten zu können. Umgelegt auf die agile Softwareentwicklung heißt das für mich:

Produktivität ist die Fähigkeit, Anforderungen mit Fokus auf den KundInnennutzen zu priorisieren und diese mit den definierten Qualitätskriterien entwickelt auszuliefern - und das so oft wie möglich.

Eines ist aus meiner Sicht empfehlenswert: für das Projekt bzw. das Team ein gemeinsames Verständnis von Produktivität zu finden. Damit ist gewährleistet, dass jede(r) das Ziel hinsichtlich Produktivitätsanforderungen kennt und damit auch dazu beitragen kann, dieses zu erreichen.

Wie steigert man Produktivität?

Zuerst einmal stellt sich die Frage: habe ich überhaupt ein Produktivitätsproblem? Das ist eine Frage, die vermutlich gar nicht so leicht zu beantworten ist. Ich kann hier an dieser Stelle nur für mich beantworten, warum mich das Thema gerade interessiert:

  • Menschen und Organisationen, die agil arbeiten und sich weiterentwickeln wollen, halten immer wieder einmal inne um zu reflektieren, dazuzulernen und Gelerntes umzusetzen. Das betrifft natürlich auch die Thematik Produktivität.
  • Viele, viele Aufträge und Fristen machen es unumgänglich, jegliche inneffiziente Lücken aufzudecken und zu beseitigen.
  • Effizienz macht es möglich, auf dem Markt zu bestehen und sich gegenüber der Konkurrenz abzuheben.
  • Je produktiver ich/wir arbeiten und KundInnenanforderungen erfüllen, desto weniger Druck ist seitens KundInnen und Vorgesetzten zu erwarten, es sind keine nächtlichen Huschpfusch-Aktionen notwendig und unnötige Überstunden lassen sich damit auch vermeiden. Damit stimmt am Ende die Work-Life-Balance für die MitarbeiterInnen. Eine Balance zwischen KundInnenwünschen, den Bedürfnissen der Vorgesetzten sowie der MitarbeiterInnen zu finden macht alle glücklich, und das sollte doch das Ziel einer jeden Organisation sein!

Um mögliche Verbesserungspotenziale hinsichtlich Produktivität zu finden, habe ich verschiedenste Bereiche des Entwicklungsalltags näher betrachtet. Nachfolgend habe ich diese Bereiche und meine Erkenntnisse zusammengefasst. Detaillierter gebe ich meine Erkenntnisse in den jeweils verlinkten Artikeln wieder.

1. Agiles Vorgehen

Agile Methoden sind mittlerweile sehr verbreitet und versprechen effiziente Softwareentwicklung. Bei der Umsetzung gibt es aber Spielraum, den jede Organisation unterschiedlich zu nutzen gedenkt. Wie viele Arten von Scrum wird es wohl in der Praxis geben? Eine Retrospektive mit kritischem Blick sowie kontinuierliche Verbesserung sollten fixer Bestandteil des gelebten Prozesses sein. Ein guter Scrum Master kann hier viel Gutes leisten. Es können sich aber auch bei vorbildhaften Teams nach längerer Zeit blinde Flecken einschleichen, die zu Produktivitätsverslust beitragen. Umso wichtiger ist die regelmäßige Kontrolle des Prozesses. Zu achten ist darauf, dass die Rollenverteilung inklusive Verantwortlichkeiten definiert ist und gelebt wird. Auch das Projektziel, die Anforderungen und deren Prioriäten sollten klar sein. Herrscht hier über längeren Zeitraum Unklarheit kann dies zu Produktivitätsverlust führen.

Details sind zu finden im Artikel Agiles Vorgehen.

2. Optimierungspotenziale identifizieren

Produktivität kann dadurch gesteigert werden, indem man optimiert. Um Optimierungspotenziale zu finden, ist Beobachtung gefragt. Welche Tätigkeiten können vermieden werden, weil sie Zeit kosten aber keinen Nutzen generieren? Werden unnötig Ressourcen durch Engpässe gebunden? Engpässe können in verschiedensten Bereichen auftauchen wie Infrastruktur, Personal, Planung etc. Einen besonderen Stellenwert räume ich der Kommunikation und insbesondere Besprechungen ein. Die Form der Kommunikation trägt meiner Meinung nach wesentlich zur Produktivität bei. Außerdem kann durch gezielten und durchdachten Werkzeugeinsatz Optimierung stattfinden.

Details sind zu finden im Artikel Optimierungspotenziale identifizieren.

3. Fokus und “Flow”

Überlastung im Alltag, egal ob beruflich oder privat, sind ein großes Thema unserer Gesellschaft. Oftmals geht dabei etwas Wichtiges verloren: der Fokus auf das Wesentliche - auf die wirklich wenigen wichtigen Dinge. Zu viele Dinge gleichzeitig erledigen zu wollen endet oftmals mit Frust, da man sich zu viel vorgenommen hat und letztendlich nichts fertiggestellt wurde. Um effizienter zu werden hilft es, zu priorisieren und sich zu einem Zeitpunkt auf genau eine Aufgabe zu konzentrieren. Dieser Fokus und der dazugehörige “Flow” (= Zeiten der ungestörten Arbeit) tragen wesentlich zur Produktivität bei. Um in Softwareentwicklungsteams Produktivität zu steigern hilft es, für gute Rahmenbedingungen zu sorgen: kennt jedes Teammitglied seine Strategie, um fokussiert und im “Flow” arbeiten zu können? Gibt es genügend Zeiten der ungestörten Arbeit an Aufgaben?

Details sind zu finden im Artikel Fokus und Flow.

Zusammenfassung

Produktivität ist die Voraussetzung dafür, langfristig auf dem Markt zu bestehen und für die eingesetzten Ressourcen auch den erwarteten Nutzen zu generieren. Leider gibt es sehr viele Einflussfaktoren, die sich auf die Gesamtproduktivität auswirken können. Das betrifft die eigene als auch die Produktivität des Teams. Um mögliche Problemfelder zu identifizieren ist es ratsam, in regelmäßigen Abständen den Blick auf die Produktivität zu richten und Fragen zu stellen: welches Vorgehensmodell wird eingesetzt und wie wird es umgesetzt? Wo verschwende(n) ich/wir Ressourcen? Gibt es Engpässe und entstehen dadurch unnötige Wartezeiten, die Kosten produzieren aber keinen Nutzen generieren? Wie effizient ist die Kommunikation gestaltet? Liegt der Fokus auf den wirklich wichtigen Dingen und gibt es Zeiten der ungestörten Arbeit daran? Können geeignete Werkzeuge und Prozesse helfen, produktiver zu werden?

Fortsetzung im Teil 2 der Artikelserie: Agiles Vorgehen

Newsletter abonnieren

Über neuen Blog-Artikel informiert werden