Wie kann ich die tägliche Programmierproduktivität verfolgen? [geschlossen]

16

Wie kann ich feststellen, dass ich Software entwickle, die mehr oder weniger produktiv ist als in den vergangenen Tagen?

Tamara Wijsman
quelle
15
Schritt 1) ​​Werfen Sie Codezeilen als Produktivitätsmarker aus
TheLQ
2
Probieren Sie die Pomodoro-Technik aus .
Fernando,
1
In der Tat sollte jede entfernte Codezeile 5-10
Eingaben
2
Produktivität definieren.
Luis.espinal

Antworten:

18

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.

Wizard79
quelle
7

Ich würde sagen, der beste Weg, um Ihre Produktivität zu messen, besteht darin, sich jeden Tag ein Ziel für das zu setzen, was Sie an diesem Tag tun möchten. Es ist eine ziemlich subjektive Maßnahme, aber Sie werden sie höchstwahrscheinlich viel lohnender finden als eine objektive.

sp0rus
quelle
2

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.

Mäuse
quelle
2

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.

VinkyH
quelle
2

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:

Bildbeschreibung hier eingeben

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:

Bildbeschreibung hier eingeben

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.

Rei Miyasaka
quelle
2

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

Kevin
quelle
3
Solange Sie LOC als persönliches Maß verwendet haben (Sie sind der einzige, den Sie messen, und Sie sind der einzige, der das Maß verwendet), werden viele seiner Nachteile in Frage gestellt.
Jay Elston
1

Messen Sie die Zeit, die Sie morgens benötigen, um sich an Ihren Computer zu setzen, bis Sie arbeitsunabhängige Aktivitäten ausführen, z. B. 9gag, Facebook, Reddit usw. Ihre Produktivität an diesem Tag ist proportional zu dieser Zahl.

Minthos
quelle
0

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.

S.Robins
quelle