Come posso monitorare che sto sviluppando software più o meno produttivo rispetto ai giorni precedenti?
Come posso monitorare che sto sviluppando software più o meno produttivo rispetto ai giorni precedenti?
C'è una risposta semplice: non puoi. E inoltre, non dovresti.
Vuoi misurare la tua produttività, ma puoi generalizzare: come misurare la produttività dei programmatori? Prima di tutto devi definire cosa intendi per "produttività": quantità di codice prodotta? Quantità di design (o specifica) implementata? Numero di problemi risolti? Qualità del codice prodotto? (Sì, la qualità è un indicatore di produttività, puoi produrre un sacco di codice cattivo o qualche buon codice, cosa è stato più produttivo?). Tutti questi valori difficilmente possono essere mappati su base giornaliera e qualsiasi tentativo di tracciare la produttività giornaliera è pericoloso per il progetto, per l'azienda e per il programmatore.
Il mio consiglio è definire chiaramente cosa intendi come "produttività", quindi definire un'unità di misura e applicarla su base settimanale e mensile.
Direi che il modo migliore per misurare la tua produttività è impostare un obiettivo ogni giorno per quello che vuoi aver fatto quel giorno e, se lo completi, consideralo produttivo. È una misura abbastanza soggettiva, ma molto probabilmente la troverai molto più gratificante di una oggettiva.
Entrambi i suggerimenti che seguono possono essere approssimativamente adottati per le tue necessità, ma in entrambi i casi devi fare delle stime in anticipo e poi analizzarle ad hoc (e onestamente, non sono sicuro che ci sia un altro modo efficace per misurare questo , Sono d'accordo con TheLQ che le righe di codice per periodo non sono affatto utilizzabili.
Metodologie di sviluppo agili
Sebbene non sia sicuro di quanto possa essere efficacemente applicato a un singolo scenario di sviluppo, alcuni dei principi utilizzati in Agile possono rivelarsi utili in ciò che si mira a realizzare. Agile funziona in cicli in cui gli sviluppatori mirano a implementare storie (attività) che vengono valutate (in punti) in base alla complessità di implementazione all'inizio di un ciclo di sviluppo e quindi analizzate alla fine di ogni ciclo. Ciò consente di determinare la velocità, ovvero il numero di punti che uno sviluppatore o un team può completare all'interno di un singolo ciclo di sviluppo.
Se il tuo modo di lavorare ti consente di adottare alcuni dei principi e organizzare il tuo lavoro in cicli, puoi utilizzare il parametro velocità per ciclo di sviluppo per monitorare la tua efficienza . Nota che i cicli di solito durano 2-3 settimane, tuttavia dovresti essere in grado di accorciarli quando usi questo solo per te stesso. Tutto si riduce a se è possibile adottare una tale metodologia nel proprio ambiente.
Pianificazione basata sull'evidenza
Anche se è principalmente destinato a migliorare le stime, dovresti essere in grado di utilizzarlo in modo efficace per tenere traccia delle tendenze decrescenti nella produttività.
Concorda con Lorenzo, definisci la produttività.
Anch'io ho fatto questo: 1. Abbattere tutti i compiti (abbattimento di alto o basso livello). 2. Stimare le ore di lavoro per ogni attività (non dimenticare di impostare il buffer di ritardo per ogni attività). 3. Completa il compito. 4. Rivedi ogni attività e verifica se sei produttivo o meno.
Ecco una misura significativa e accurata della produttività che implica l'esecuzione di più istantanee Pianificazione basata sull'evidenza :
Dopo aver raccolto un paio di giorni di statistiche, esegui la tua simulazione Monte Carlo e osserva il grafico, che dovrebbe essere simile a questo:
Quindifaiancoraungiornodilavoroeavvianuovamentelasimulazione.Sefossiproduttivoquelgiorno,ilgraficodovrebbecambiarequalcosadeltipo:
Soprattutto, se fossi un prodotto quel giorno, la probabilità della data di spedizione in qualsiasi data dovrebbe aumentare da quando hai eseguito l'ultima simulazione prima di quel giorno di lavoro. Se diminuisce, allora eri meno produttivo in quel giorno.
Naturalmente, l'accuratezza di EBS aumenta con il tempo e l'esperienza, quindi questo può essere un altro motivo per la variazione del valore di probabilità della data di spedizione. Ecco perché vuoi iniziare a farlo almeno dopo alcuni giorni di lavoro campionato. Anche senza questo, però, se tu fossi significativamente più produttivo in un giorno o in un altro, la probabilità dovrebbe aumentare in modo considerevole.
Il conteggio delle righe di codice è una misurazione imperfetta in quanto non offre informazioni sulla qualità del codice, ma può essere utilizzato per determinare la produttività generale. A seconda della lingua che usi ci sono diversi strumenti che conteranno linee di codice per te ma ho chiesto a BitBucket, un repository Git, di aggiungere statistiche relative alla produttività.
Misura il tempo necessario per sederti al computer al mattino fino a quando non svolgi attività non correlate al lavoro, come 9gag, facebook, reddit, ecc. La tua produttività quel giorno è proporzionale a quel numero.
Supponiamo per un momento che essere produttivi sia gestire il tuo tempo in modo tale che tu stia utilizzando tutto il tuo tempo lavorativo per lavorare verso il completamento dei tuoi compiti, e qualsiasi cosa che contribuisca a perdere tempo - Vale a dire: tempo trascorso a non completare i tuoi compiti - è non produttivo.
L'unica cosa che puoi davvero fare è registrare il tuo tempo quando sei impegnato in varie attività durante la giornata. Il time boxing è una tecnica utilizzata per vari scopi, ma si adatterebbe a questo sforzo per registrare la tua attività durante un giorno. Trascorrere 15 minuti su un timer semplicemente facendo qualche attività. Se il compito è qualcosa su cui dovresti lavorare, il tuo tempo è stato produttivo. Se ti sei trovato a modificare il tuo blog, a leggere un giornale, oa sognare ad occhi aperti quella ragazza carina in contabilità, allora il tuo tempo era probabilmente improduttivo. Aggiungi i tuoi minuti alla fine della giornata e avrai un'idea di quanto sei produttivo ...
Ma c'è un problema! Cosa fai di quegli altri minuti ... sai, prenditi una pausa di 5 minuti, vai a pranzo, quando il tuo capo ti interrompe per dirti di quel grosso pesce che non ha catturato durante la sua ultima battuta di pesca? Registra tutto anche questo. Il tempo speso per una pausa non è sprecato se contribuisce alla tua salute mentale e al tuo benessere ... basta che non prenda una pausa di 5 minuti ogni 10-15 minuti !! Per il resto, interruzioni, gestione di altri problemi relativi al lavoro .. tutto questo può essere monitorato.
Ovviamente puoi trovarti ossessionato da questo genere di cose e Dio ti aiuterà se il capo è una di quelle persone che ti vedono il time-boxing e lo usa per giustificare i motivi per accumulare più lavoro o criticare i tuoi sforzi . Vedete, il problema con l'ossessione delle ore produttive è che si può lavorare per un giorno intero e si finisce comunque per non ottenere nulla di reale pertinenza. Alcuni giorni puoi scrivere codice come se il burro si sciogliesse dal tuo cervello, e su quel sandwich che chiami lo schermo ... mentre altri giorni puoi avere un blocco mentale serio mentre provi 357 modi diversi di fare lo stesso cosa, solo per vederlo fallire. Molti direbbero che i "fallimenti" continui possono essere improduttivi, e che di per sé non verranno aiutati, indipendentemente da quanto tempo si registrano e si registrano le ore durante il giorno.
L'altro modo di guardarlo è semplicemente impostarti una serie di obiettivi, da completare durante un giorno e una settimana, e poi lavorare per completarli. Se effettivamente raggiungi i tuoi obiettivi, puoi obiettare che sei stato produttivo e se non raggiungi i tuoi obiettivi, potresti dover capire perché non li hai incontrati e decidere se sei stato o meno produttivo in base alle reali ragioni per cui mancano i tuoi obiettivi. In definitiva, se fornisci il codice funzionante quando è necessario e se riesci a far passare i test e a completare un'attività, sei stato produttivo. Le misurazioni avranno valore solo se esiste un motivo legittimo per analizzarle statisticamente in un secondo momento.
Leggi altre domande sui tag productivity metrics