Wie kann ich feststellen, dass ich Software entwickle, die mehr oder weniger produktiv ist als in den vergangenen Tagen?
Wie kann ich feststellen, dass ich Software entwickle, die mehr oder weniger produktiv ist als in den vergangenen Tagen?
Antworten:
Es gibt eine einfache Antwort: Sie können nicht. Und das solltest du auch nicht.
Sie möchten Ihre eigene Produktivität messen, können aber verallgemeinern: Wie können Sie die Produktivität von Programmierern messen? Zunächst müssen Sie definieren, was Sie unter "Produktivität" verstehen: Menge des erzeugten Codes? Menge an Design (oder Spezifikation) implementiert? Anzahl der Probleme behoben? Qualität des produzierten Codes? (Ja, Qualität ist ein Produktivitätsindikator. Sie können viel schlechten Code oder wenig guten Code produzieren. Was war produktiver?) All diese Werte lassen sich kaum auf eine tägliche Basis abbilden, und jeder Versuch, die tägliche Produktivität zu verfolgen, ist für das Projekt, das Unternehmen und den Programmierer gefährlich.
Mein Rat ist, klar zu definieren, was Sie unter "Produktivität" verstehen, dann eine Maßeinheit zu definieren und diese wöchentlich und monatlich anzuwenden.
Die beiden folgenden Vorschläge können grob auf Ihren Bedarf abgestimmt werden. In beiden Fällen müssen Sie jedoch im Voraus Schätzungen vornehmen und diese dann ad hoc analysieren (und ehrlich gesagt bin ich mir nicht sicher, ob es einen anderen effektiven Weg gibt, dies zu messen, da stimme ich zu mit TheLQ sind diese Codezeilen pro Zeitraum überhaupt nicht verwendbar).
Agile Entwicklungsmethoden
Obwohl ich nicht sicher bin, wie effektiv es auf ein einzelnes Entwicklerszenario angewendet werden kann, können sich einige der Prinzipien, die in Agile verwendet werden, als nützlich für das erweisen, was Sie erreichen möchten. Agile arbeitet in Zyklen, in denen Entwickler darauf abzielen, Storys (Aufgaben) zu implementieren, die zu Beginn eines Entwicklungszyklus anhand der Implementierungskomplexität bewertet (in Punkten) und am Ende jedes Zyklus analysiert werden. Dies ermöglicht es, die Geschwindigkeit zu bestimmen, dh die Anzahl der Punkte, die ein Entwickler oder ein Team innerhalb eines einzelnen Entwicklungszyklus erreichen kann.
Wenn Sie bei Ihrer Arbeitsweise einige der Prinzipien übernehmen und Ihre Arbeit in Zyklen organisieren können, können Sie die Geschwindigkeit pro Entwicklungszyklus- Metrik verwenden, um Ihre Effizienz zu verfolgen. Beachten Sie, dass Zyklen in der Regel 2-3 Wochen dauern. Sie sollten sie jedoch kürzen können, wenn Sie sie nur für sich selbst verwenden. Es kommt darauf an, ob Sie eine solche Methodik in Ihrer Umgebung anwenden können.
Evidence Based Scheduling
Auch wenn es in erster Linie zur Verbesserung von Schätzungen gedacht ist, sollten Sie es effektiv einsetzen können, um rückläufige Trends bei der Produktivität zu verfolgen.
Stimmen Sie mit Lorenzo überein, definieren Sie die Produktivität.
Ich habe auch Folgendes getan: 1. Alle Aufgaben aufteilen (hoch oder niedrig aufgeschlüsselt). 2. Schätzen Sie die Arbeitsstunden für jede Aufgabe (vergessen Sie nicht, den Verzögerungspuffer für jede Aufgabe festzulegen). 3. Beenden Sie die Aufgabe. 4. Überprüfen Sie jede Aufgabe und prüfen Sie, ob Sie produktiv genug sind oder nicht.
Im Folgenden finden Sie eine aussagekräftige und genaue Messung der Produktivität, bei der mehrere evidenzbasierte Zeitplanungs- Snapshots erstellt werden:
Nachdem Sie einige Tage lang Statistiken gesammelt haben, führen Sie Ihre Monte-Carlo-Simulation aus und beobachten Sie das Diagramm, das wie folgt aussehen sollte:
Nehmen Sie sich dann noch einen Tag Zeit und führen Sie die Simulation erneut aus. Wenn Sie an diesem Tag produktiv waren, sollte sich das Diagramm folgendermaßen ändern:
Vor allem, wenn Sie an diesem Tag ein Produkt waren, sollte sich die Wahrscheinlichkeit eines Versanddatums an einem bestimmten Datum erhöhen, seitdem Sie die Simulation das letzte Mal vor diesem Arbeitstag ausgeführt haben. Wenn es abnimmt, waren Sie an diesem Tag weniger produktiv.
Natürlich nimmt die Genauigkeit von EBS mit der Zeit und der Erfahrung zu, sodass dies ein weiterer Grund für die Änderung des Wahrscheinlichkeitswerts für das Versanddatum sein kann. Das ist der Grund, warum Sie dies zumindest nach ein paar Tagen probierter Arbeit tun möchten. Auch ohne das dürfte die Wahrscheinlichkeit deutlich steigen, wenn Sie an dem einen oder anderen Tag deutlich produktiver waren.
Das Zählen von Codezeilen ist eine unvollständige Messung, da sie keinen Einblick in die Qualität des Codes bietet, sondern zur Bestimmung der allgemeinen Produktivität verwendet werden kann. Abhängig davon, welche Sprache Sie verwenden, gibt es verschiedene Tools, mit denen Sie Codezeilen zählen können. Ich habe jedoch BitBucket, ein Git-Repository, aufgefordert, produktivitätsbezogene Statistiken hinzuzufügen.
https://bitbucket.org/site/master/issue/4307/feature-request-contributor-statistics
Nehmen Sie für einen Moment an, dass produktiv Ihre Zeit so verwaltet, dass Sie Ihre gesamte Arbeitszeit für die Erledigung Ihrer Aufgaben nutzen und dass alles, was zu Zeitverschwendung beiträgt, dh Zeit, die Sie nicht für die Erledigung Ihrer Aufgaben aufgewendet haben, nicht zur Verfügung steht. produktiv.
Das einzige, was Sie wirklich tun können, ist, Ihre Zeit zu protokollieren, wenn Sie den ganzen Tag über verschiedene Aktivitäten ausführen. Das Zeitboxen ist eine Technik, die für verschiedene Zwecke verwendet wird, aber dieser Anstrengung entspricht es, Ihre Aktivitäten während eines Tages aufzuzeichnen. Verbringen Sie 15 Minuten mit einem Timer und erledigen Sie einfach eine Aufgabe. Wenn es sich bei der Aufgabe um etwas handelt, an dem Sie arbeiten sollen, war Ihre Zeit produktiv. Wenn Sie Ihr Blog bearbeitet, eine Zeitung gelesen oder von diesem netten Mädchen in der Buchhaltung geträumt haben, war Ihre Zeit wahrscheinlich unproduktiv. Addieren Sie Ihre Minuten am Ende des Tages und Sie werden ein Gefühl dafür bekommen, wie produktiv Sie sind ...
Aber da ist ein Fang! Was tun Sie in den anderen Minuten? Machen Sie eine fünfminütige Pause, gehen Sie zum Mittagessen und lassen Sie sich von Ihrem Chef unterbrechen, um Ihnen von dem großen Fisch zu erzählen, den er auf seiner letzten Angeltour nicht gefangen hat? Das alles auch aufzeichnen. Die für eine Pause aufgewendete Zeit wird nicht verschwendet, wenn sie zu Ihrer geistigen Gesundheit und Ihrem Wohlbefinden beiträgt ... nur solange Sie nicht alle 10-15 Minuten eine 5-minütige Pause einlegen !! Im Übrigen können Unterbrechungen, die sich mit anderen arbeitsbedingten Problemen befassen, nachverfolgt werden.
Natürlich sind Sie von solchen Dingen besessen, und Gott helfe Ihnen, wenn der Chef einer der Leute ist, die Sie beim Zeitboxen sehen und dies dazu verwenden, um Gründe zu rechtfertigen, mehr Arbeit zu stapeln oder Ihre Bemühungen zu kritisieren. Sie sehen, das Problem mit der Besessenheit über die produktiven Stunden ist, dass Sie einen ganzen Tag arbeiten können und am Ende immer noch nichts von tatsächlicher Relevanz erledigt werden. An manchen Tagen können Sie Code schreiben, als würde Butter direkt aus Ihrem Gehirn herausschmelzen, und auf das Sandwich, das Sie auf Ihrem Bildschirm aufrufen ... während Sie an anderen Tagen eine ernsthafte mentale Blockade haben können, wenn Sie versuchen, auf 357 verschiedene Arten dasselbe zu tun was, nur um es scheitern zu sehen. Viele würden sagen, kontinuierliche "Ausfälle" können unproduktiv sein, und das wird an sich nicht geholfen, egal wie viel Zeit Sie einplanen und Ihre Stunden während des Tages protokollieren.
Die andere Sichtweise besteht darin, sich einfach eine Reihe von Zielen zu setzen, diese an einem Tag und in einer Woche zu erreichen und dann darauf hinzuarbeiten, dass diese Ziele erreicht werden. Wenn Sie Ihre Ziele tatsächlich erreichen, können Sie argumentieren, dass Sie produktiv waren, und wenn Sie Ihre Ziele nicht erreichen, müssen Sie möglicherweise verstehen, warum Sie sie nicht erreicht haben, und entscheiden, ob Sie produktiv waren oder nicht basierend auf den tatsächlichen Gründen für das Verpassen Ihrer Ziele. Wenn Sie Arbeitscode liefern, wenn er benötigt wird, und wenn Sie Ihre Tests bestehen und eine Aufgabe erledigt haben, waren Sie produktiv. Messungen sind nur dann wertvoll, wenn ein berechtigter Grund für eine spätere statistische Auswertung vorliegt.