Wie so oft im Leben: Ein neuer Manager kommt herein und stellt die Aufgabe, die Anzahl der realisierten Features für den nächsten Sprint um das Zweifache zu erhöhen. Entwickler versuchen natürlich, zu arbeiten, bleiben für das Wochenende, erfüllen den Plan, aber aus irgendeinem Grund kündigen alle.
Die meisten Menschen sehen Produktivität basierend auf einem Paradigma:
Je mehr Sie produzieren, desto mehr tun Sie, desto höher ist Ihre Produktivität . Die wahre Produktivität hängt jedoch von zwei Elementen ab: dem erzielten Ergebnis und den aufgewendeten Ressourcen. Es ist oft recht schwierig, ein Gleichgewicht zwischen Ergebnis und Ressourcen aufrechtzuerhalten. Dieses Gleichgewicht ist jedoch der springende Punkt. Dies führt zu einem Gleichgewicht zwischen kurz- und langfristig.
Jeder Leiter, sei es der Leiter eines Entwicklungsteams oder der Leiter einer Abteilung, muss sich um die Steigerung der Produktivität seines Teams kümmern. Aber wie geht das mit Bedacht? Ist es möglich, die Produktivität eines Teams beispielsweise um das Zehnfache zu steigern?
Heute werde ich versuchen, meinen Standpunkt zu diesem Thema darzulegen. Wenn Sie interessiert sind, willkommen bei cat!
Zuerst müssen Sie verstehen, was Produktivität ist und wie sie in Ihrem Team gemessen wird. In diesem Fall können Sie völlig unterschiedliche Indikatoren verwenden. Sie können quantitativ und qualitativ sein.
Als Beispiel für quantitative Indikatoren können Sie beispielsweise die Anzahl der Funktionen verwenden, die dem Kunden pro Zeiteinheit geliefert werden. Jemand bewertet immer noch die Arbeit von Programmierern in den Codezeilen (ja, ja, das passiert bis heute), jemand interessiert sich für die Anzahl der behobenen Fehler, die Anzahl der Autotests und so weiter.
Um Qualitätsindikatoren festzulegen, müssen Sie Einstellungsstandards finden. Zum Beispiel die aktuelle Leistung des Komplexes und die Anforderungen an Eisen N. Dann wird die Metrik eine Steigerung der Produktproduktivität um 25% oder eine Beschleunigung der Ausführung langfristiger Aufgaben um dieselben 25% sein.
Eine gute Metrik sind die Kosten pro Einheit. Eine Produkteinheit ist alles, was für den Benutzer zumindest einen gewissen Wert hat (Funktionalität, Fehlerkorrektur, Leistungsverbesserung usw.). Sie kann anhand einer Person, eines Produkts, eines Projekts usw. gemessen werden. Dies sind alle oben beschriebenen Metriken, die jedoch in Geld ausgedrückt werden.
Für viele ist die Zykluszeit (die Zeit, zu der die Änderung an den Client übermittelt wird) eine wichtige Metrik. Es ist eine Sache, wenn Sie jeden Tag neue Funktionen und Änderungen einführen, eine andere Sache - einmal im Monat oder sogar weniger.
Sie können nicht isoliert von der Qualität des gelieferten Produkts über Teamproduktivität sprechen. Natürlich sollten Sie über eine ganze Reihe von Metriken verfügen, die die Qualität Ihres Produkts bewerten. Lassen Sie uns einige Beispiele für solche Metriken geben:
- die Anzahl der Fehler, die Kunden im Zeitraum nach der Lieferung einer neuen Version gefunden haben (Beispiel einer externen Metrik)
- Die Anzahl der Fehler, die in der Testabteilung nach der Übertragung der Funktionalität oder Korrektur zur Überprüfung gefunden wurden (Beispiel einer internen Metrik).
Wie steigern Sie die Teamproduktivität?
Schauen wir uns das
Produkt als Ergebnis des Teams an. Jeder kennt das Pareto-Prinzip, aus dem hervorgeht, dass 20% der Funktionalität des Produkts 80% der Bedürfnisse der Benutzer abdecken. Der Rest der Funktionalität wird entweder selten oder gar nicht genutzt. Es ist sehr wichtig, die Teamzeit genau mit den notwendigen und wichtigen Funktionen zu verbringen. Entfernen Sie daher alten und unnötigen Code, führen Sie Refactoring durch, vereinfachen Sie den Code und seine Unterstützung. Dies wird in Zukunft die Effektivität des Teams erheblich steigern.
Es ist unglaublich einfach, in die Falle der Aktivität zu geraten, im Kreislauf von Angelegenheiten und Ereignissen, immer mehr Anstrengungen zu unternehmen, um neue nutzlose Funktionen zu entwickeln, das Design zu ändern usw., um in einem Moment zu erkennen, dass niemand es braucht . Sie können eine sehr beschäftigte Person sein, ohne effektiv zu sein.
Beschäftigen wir uns mit dem
Team . Es ist kein Geheimnis, dass bestimmte Entwickler viele Male und zehnmal produktiver sind als ihre Kollegen. Ihre Aufgabe als Führungskraft ist es, ein starkes Team aufzubauen und nur die besten Kandidaten dafür auszuwählen. Dies impliziert die Tatsache, dass Sie sich von offen schwachen Teilnehmern verabschieden müssen, die die Produktivität des gesamten Teams verringern. Stellen Sie sich ständig die Frage: Würden Sie diese Person für diese Position einstellen und wissen, was Sie jetzt wissen? Wenn nicht, sollte er sie nicht besetzen.
Hacken Sie jedoch nicht die Schulter ab. Es gibt Fälle, in denen die Produktivität eines einzelnen Teammitglieds niedrig ist, aber wenn es in einem Team ist, steigt die Produktivität des gesamten Teams! Es ist wichtig im Team, eine Person zu haben, die die allgemeine Moral des Teams erhöht. Auch wenn er weniger macht als die anderen, aber er sammelt das Team und verbessert das Gesamtergebnis.
Berücksichtigen Sie
Organisations- und Prozessprobleme . Als Führungskraft müssen Sie den folgenden Prozess befolgen:
- Beseitigen Sie den „Engpass“ in Ihren aktuellen Prozessen und Ihrem Team.
- Feedback zur Änderung geben,
- Wiederholen Sie diesen Vorgang unendlich oft.
Nachdem der Engpass einmal beseitigt wurde, wird er an einer anderen Stelle auftreten. Wenn Sie den neuen Engpass beseitigen, erhalten Sie ihn erneut, höchstwahrscheinlich in kleinerem Maßstab. Irgendwann werden Sie feststellen, dass die Suche nach einem Hals für Sie zu kompliziert geworden ist und die Entfernung teurer ist als der Bonus des Ergebnisses. Es ist an der Zeit, in Prozessen zu experimentieren! Suchen Sie nach den Best Practices, versuchen Sie, sie auf Ihr Team zu übertragen, und passen Sie sich an! Sie müssen keine Angst vor Fehlern haben, nicht alle Best Practices haben Wurzeln in bestimmten Teams. Schlussfolgerungen ziehen und weitermachen.
Sie müssen versuchen, alles zu automatisieren, für das die Automatisierung in Ihrem Team sinnvoll ist. Niemand wird argumentieren, dass die überwiegende Mehrheit der Projekte CI / CD verwenden sollte, um schnell eine neue Version des Produkts bereitzustellen und dem Kunden bereitzustellen. Autotests werden derzeit nicht nur von einem faulen Anführer verwendet. Sie selbst können und sollten sich überlegen, wie Sie speziell für Ihr Team am vernünftigsten automatisieren können.
Nun, die letzte Regel für Manager und alle, die sich entwickeln wollen!
Verlassen Sie Ihre Komfortzone! Vorsicht vor dem Frosch beim Syndrom des kochenden Wassers. Sie sagen, wenn Sie einen Frosch in heißes Wasser werfen, wird er sofort herausspringen. Wenn Sie jedoch denselben Frosch bei Raumtemperatur in Wasser geben und das Wasser allmählich zum Kochen bringen, versucht der Frosch nicht, herauszukommen, und am Ende kocht er einfach. Ich weiß nicht, wie wahr dieses Fahrrad in Bezug auf Frösche ist, aber so etwas beobachte ich regelmäßig mit Managern und Mitarbeitern. Menschen gewöhnen sich allmählich an inakzeptable Dinge, die sie schockieren würden, wenn sie sie mit einem frischen Blick sehen würden.
Entwickeln, wachsen, Erfolg haben!