Incoraggiare gli ingegneri del software a tenere traccia del tempo


24

Come posso incoraggiare i miei colleghi a tenere traccia del tempo impiegato per risolvere i problemi e implementare le funzionalità? Abbiamo un software per farlo, ma non inseriscono i numeri.

Voglio che il team migliori nel fornire stime del progetto confrontando le nostre stime passate con il tempo effettivamente trascorso. Ho il sospetto che i miei colleghi non vedano il vantaggio personale, dal momento che non sono spesso coinvolti nella pianificazione del progetto.


6
Forse il problema è che devono inserire i numeri invece di fare in modo che il software tenga traccia del tempo e chiedano loro periodicamente di impostare la descrizione dell'attività e premere il record. Ho scritto un programma, per me stesso, per affrontare esattamente questo, perché andrei tutto il giorno nella zona e poi affiorerei e avrei avuto difficoltà a generare il mio "registro orario" per il giorno. Vedi softwaremonkey.org/Program/TimeKeeper
Lawrence Dol

3
Basta fare loro quello che mi è stato fatto in un'azienda per cui ho lavorato. Assegnagli un compito, fagli passare immediatamente 3 giorni continui nelle riunioni a cui partecipi con lui, e subito dopo le riunioni chiedono di sapere perché l'attività non è stata completata.
user16764,

2
Dove metto i numeri per il momento in cui risolvo un problema sulla strada di casa?
Pieter B,

1
@PieterB IMO se passi regolarmente abbastanza tempo a pensare ai problemi di lavoro in auto che aumenta la tua produttività, penso che il tempo debba essere monitorato per le stime del progetto, anche se non è compensato. È tempo che altrimenti passeresti a pensare alla tua scrivania. D'altra parte, se si tratta di una rivelazione una tantum in auto, non credo che valga la pena tracciarla poiché non è qualcosa su cui basare una stima del progetto.
M. Dudley,

1
@PieterB Sicuramente una zona grigia. Tutto dipende dal fatto che sia utile tenere traccia quando si pianificano e si stimano i progetti.
M. Dudley,

Risposte:


41

Ho il sospetto che i miei colleghi non vedano il vantaggio personale, dal momento che non sono spesso coinvolti nella pianificazione del progetto.

È riparabile.

Renderli coinvolti nella programmazione.


2
C'è una citazione a riguardo, ma la maggior parte dei miei libri è ancora piena. Qualcosa sul fatto che gli ingegneri stessi siano i migliori nella programmazione, quindi dovrebbero essere coinvolti nella programmazione di un progetto dal primo giorno. Voglio dire che proviene dal Rapid Development di Steve McConnell, ma non posso esserne sicuro.
Thomas Owens

4
Di recente ho visto un mio progetto (progetto di 6 mesi) in cui il nostro PM ha assegnato 4 ore per l'integrazione con un'altra applicazione. Basti pensare che l'integrazione richiederà molto tempo e io e un altro sviluppatore abbiamo pensato che fosse abbastanza comico.
Chris,

@ThomasOwens Mi sconcerta ancora ogni volta che mi viene detto quanto tempo impiegherà un BA o un PM. Questo errore è così accuratamente sfatato che è triste rendersi conto che significa che nessuno dei BA o dei PM fa la minima lettura del settore in cui lavorano.
Jimmy Hoffa,

21

Joel Spolsky ha scritto un articolo su Evidence Based Scheduling che potrebbe aiutarti a trovare alcuni argomenti.

Devi convincere i tuoi colleghi che migliori capacità di stima possono aiutarli a produrre software migliore. Ecco alcuni punti a favore del monitoraggio delle attività:

  • Se hai una scadenza arbitraria stabilita dalla direzione, buone stime ti diranno cosa puoi effettivamente realizzare in quel momento. Come bonus hai dei bei grafici per convincere il manager a sapere di cosa stai parlando.
  • Devi pensare più attentamente al progetto. L'articolo che ho collegato agli stati afferma: "Devi suddividere il tuo programma in attività molto piccole che possono essere misurate in ore ". Dato che hai pensato praticamente a tutti gli aspetti del progetto (speriamo di scrivere una specifica !), È molto meno probabile che ti sorprenda da qualcosa a cui non hai pensato.
  • Ti rende uno sviluppatore migliore. Vedrai nel tempo quali tipi di attività tendi a sottovalutare, in modo da poter dedicare un po 'di tempo a migliorare quelle attività specifiche anziché ottimizzare ciecamente.

1
+1, per il secondo punto. Ho scoperto che qualsiasi stima che utilizza la misura del tempo in giorni o settimane, sarà sempre imprecisa in termini di giorni o settimane. Se sei fuori da qualche ora, puoi sempre ricalcolare le altre stime in modo più accurato. E scrivere una specifica o costruire un artefatto PoC rende le stime più accurate, anche se elaborare stime per quegli articoli non è così semplice.
Vineet Reynolds,

10

Puoi farlo in modo standard: carote e bastoncini.

Le carote in questo caso potrebbero essere "migliorate la stima futura comprendendo la nostra velocità attuale" - ma dovresti seguire.

Il tuo commento sul fatto che non sono spesso coinvolti nella pianificazione dei progetti può rendere questo una vendita difficile.

Il più efficace tra loro, in particolare se hai follower di PSP , è che li stai aiutando a migliorare.

Lo stick più comune (per batterli, non tenere la carota davanti a loro) è "è obbligatorio, fallo". Pur non essendo molto motivante; almeno la posizione è chiara.

Infine, il software che stai usando contribuisce alla loro reticenza? È goffo? Devono cercare i codici temporali nel Sistema A, prima di inserire il loro tempo nel Sistema B? È troppo granulare, non consente il tempo "off" e richiede una contabilità di 8 ore al giorno. Rendi il più privo di attriti possibile anche per aiutare l'adozione.

In bocca al lupo


5
+1 per l'ultimo paragrafo. Rendi più facile il monitoraggio del tempo piuttosto che non farlo, e all'improvviso verrà magicamente fatto.
Scott,

5
Ottimo ultimo punto: odiavo dover cercare un numero di 8 cifre quando un elenco a discesa basato sul web poteva essere scritto in 10 minuti (la mia stima usando i dadi di stima che tengo nella mia scrivania). Inoltre, non userei termini di gestione del bingo come "capire la nostra velocità attuale", ma piuttosto "non dovrai lavorare un sacco di lavoro straordinario non retribuito obbligatorio cercando di ottenere le cose alla fine del programma se rendiamo realistici i nostri programmi per iniziare con."
Wonko the Sane,

@Wonko +1 per "dadi di stima" :-)
sdg

8

Nella mia esperienza, i seguenti sono i problemi con la maggior parte dei software di monitoraggio del tempo:

  • Lo sviluppatore non ha la capacità o l'autorità di suddividere un'attività in sottoattività più facilmente stimabili al volo.
  • Non esiste un buon modo per tenere conto delle attività secondarie che non conoscevi fino a quando non hai iniziato a lavorare su qualcosa, una situazione che si presenta continuamente nello sviluppo e nel debug del software.
  • Il tempo trascorso viene inserito dopo il fatto, quando è difficile ricordare esattamente quanto impegno mirato è andato in un'attività e quanto è andato alle riunioni, alle domande dei colleghi, alle revisioni tra pari e ad altre spese generali.
  • Non esiste un buon modo per tenere conto delle attività non monitorate. Alla fine della giornata, metti giù 8 ore anche se 6 di queste sono state spese per le riunioni e simili?
  • Non esiste un buon modo per spiegare e comunicare l'incertezza nelle stime.

Ho affrontato molti di questi problemi iniziando a utilizzare la tecnica pomodoro per me stesso. Se lavoro 25 minuti ininterrottamente su un'attività, questa viene registrata in quel momento e le mie stime vengono eseguite in termini di intervalli ininterrotti. Sto ancora lavorando sull'incorporazione di una pianificazione basata sull'evidenza per comunicare l'incertezza e sulla traduzione del mio tracciamento dettagliato nelle stime approssimative che piacciono ai PM, ma finora è stato sicuramente un miglioramento.


6

Buon modo

Usa il software, che in realtà lo rende facile e quasi trasparente, come ad esempio Mylyn. Combinalo con strumenti come ad esempio un grafico di burn-down dell'ora.

Cattiva strada

Costringili a compilare noiose schede attività, in cui devi specificare manualmente progetto, attività, date e orari esatti, ecc.


3
Spero che tu abbia compilato il modulo tt-proc-1b per registrare il tempo impiegato a rispondere a questa domanda, quindi ottenere la firma manageriale per concordare il tempo trascorso. e hai compilato il modulo tt-est-1a per registrare il tempo stimato che ti spenderesti per rispondere a questa domanda prima di iniziare a lavorare per rispondervi?
gbjbaanb,

mylyn / tasktop ... non perfetto ma sicuramente fa molto per il buon monitoraggio del tempo proprio come un effetto collaterale di un altro strumento che porta benefici reali ai programmatori direttamente ... non perfetto ma meravigliosamente fantastico !!
Newtopian,

2

Se non sei il leader del team / PM, allora avrai difficoltà con questo. Alla gente non piace ascoltare i loro coetanei se richiede loro di fare più lavoro di quanto assolutamente necessario (nella mia esperienza è il caso, comunque). Prova a occupartene con il tuo team leader o PM, e se sono d'accordo con il tuo caso probabilmente possono semplicemente rendere obbligatoria la registrazione del tempo (è quello che è successo dove lavoro attualmente).

Se sei il capo / PM della squadra devi essere più forte nel tuo ruolo: queste persone sono lì per fare ciò che dici loro (in modo efficace) e se hai bisogno di più informazioni per fare il tuo lavoro, dovresti convincerli a fornire che informazione. Se non sono disposti ad aiutarti ad ottenere le informazioni è probabilmente perché non capiscono perché sia ​​utile, prova a parlare con loro per spiegare come i tuoi progetti spesso vanno fuori programma / sopravvalutano / qualunque cosa e perché sta causando problemi, vedi se riesci a girarli!


2

Tieni traccia del tuo tempo o non essere pagato. Milioni di persone lo fanno (consulenti, avvocati, ecc.), Perché non possono?

Alcuni potrebbero pensare che questo sia piuttosto draconiano, ma non lo è. Se lavori in Starbucks, devi pulire il bagno . Se lavori in banca, indossi una giacca e una cravatta per lavorare ogni giorno e se sei un ingegnere del software in una squadra che ha bisogno di te per tenere traccia del tuo tempo, lo fai !

A volte dobbiamo fare cose nel nostro lavoro che non ci piacciono. Siamo tutti grandi ragazzi e ragazze, penso che dovremmo essere in grado di gestirlo.


1
Esattamente quello che stavo per dire. Soprattutto se hai clienti che pagano il conto - in quale altro modo puoi sapere cosa addebitare? Garantisco che uno stipendio in ritardo perché qualcuno non ha caricato il suo tempo avrebbe risolto il problema per sempre.
HLGEM,

2
Questo è un modo eccellente per essere citati in giudizio per non aver pagato gli straordinari ai dipendenti che stai rivendicando come esenti da FLSA ma che non si qualificano per l'esenzione perché stai pagando le retribuzioni in base alle prestazioni.
Wooble,

1
@Wooble: Ovviamente non sostengo azioni che potrebbero renderti vulnerabile a essere citato in giudizio o in qualche modo maltrattare i tuoi dipendenti. Ma l'idea è la stessa. Dovrebbero esserci ripercussioni per non fare il tuo lavoro. E in molti casi, monitorare il tuo tempo fa parte del tuo lavoro. Quindi forse non paghi in porto, ma avverti, metti in libertà vigilata, qualunque cosa abbia senso, ma il fatto è che devi fare il tuo lavoro . È egoistico non farlo, perché colpisce anche tutti i membri del tuo team.
Richard

@HLGEM: il tuo punto è esattamente giusto. Se il tuo contratto con il cliente è basato su T&M, è meglio tenere traccia del tuo tempo o sei disonesto.
Richard

Sfortunatamente non sono in grado di imporre il monitoraggio in qualsiasi momento, quindi ho bisogno di trovare metodi alternativi.
M. Dudley,

1

Ovviamente la risposta migliore dipende interamente dalla miscela psicologica della tua squadra. Sono competitivi? Progetta un concorso ricorrente che premia il vincitore per aver inserito il proprio tempo nel sistema. Regola e perfeziona il contest in modo che i giocatori pensino che sia giusto e divertente. Rendilo un gioco.

Forse sono preoccupati che se ci fosse trasparenza su quanto tempo trascorrevano effettivamente a svolgere un compito, ci sarebbero state conseguenze negative. Mi sono sempre chiesto di progettare uno "strumento di tracciamento dello sforzo" che fosse anonimo e in cui i bucket fossero sufficientemente di alto livello da consentire a più individui di versare gli importi degli sforzi spesi in ciascun bucket che i singoli contributori non potevano essere individuati. Anche solo ottenere costi di sforzo più accurati per i bucket di progetto di alto livello potrebbe essere un dato utile per la pianificazione del progetto e la velocità complessiva del team, ma ciò eviterebbe "OMG, non posso credere che Joe abbia preso 3 volte la sua stima per fare qualcosa di così semplice ... . "o quant'altro che le persone hanno paura di riferire in un sistema di tracciamento temporale tradizionale.

Immagino che questi siano solo due esempi, ma in realtà, avere una buona conoscenza del trucco psicologico della tua squadra ti darà la risposta giusta su come incentivare o incoraggiarli in altro modo a contribuire con le loro informazioni sui costi dello sforzo.


+1 per la cosa della trasparenza. Ho dovuto fare un sistema di tracciamento del tempo una volta e ho deliberatamente reso molto difficile per il management estrarre l'ora esatta di inizio e fine, invece potevano vedere solo il tempo totale trascorso. In questo modo non importava quando un membro dello staff faceva il lavoro, solo che era fatto e quanto tempo impiegava. Un piccolo dettaglio ma comunque.
James,

1

Pensa al motivo per cui potrebbero non rispondere bene a questa richiesta. Non dare per scontato che sono pigri o che evitano gli sforzi.

Gli sviluppatori che evitano di produrre prove lo sono di solito

  • Preoccupato per come potrebbe essere usato e / o
  • Preoccupato per la validità dei dati

Questo è il motivo per cui la stima basata sui punti e il dimensionamento delle magliette sono decollati negli ultimi anni. Tiene conto della natura molto incerta del processo di stima e consente alla "magia" (ovvero la media delle incertezze) di assumere il controllo della programmazione.

E, sebbene possa non sembrare logico, funziona principalmente - almeno come un sistema basato su ore o giorni. È anche molto difficile battere una squadra o un individuo intorno alla testa con ciò che hanno ottenuto in un mese se fatto in modo arbitrario.

Scrum consente anche agli sviluppatori di controllare la velocità, il che significa che stanno facendo una promessa di raggiungere qualsiasi cosa tu scelga tra A, B e C o A, Y e Z. Quando hanno fatto quella promessa, gli sviluppatori non amano fallire; ma se fai questa promessa per loro, a loro non importa. È colpa tua se è sbagliato.

Capisco che stai dicendo che non useresti le stime in quel modo, ma quanto sono sicuri le persone nella tua squadra?


1

Qualsiasi strumento che richiede ai programmatori di dedicare ancora più tempo alla programmazione non è necessariamente un'ottima cosa. I programmatori hanno già un sacco di overhead, non stanno avendo riunioni di 5 minuti e quindi stanno programmando una tempesta.

Se hai il potere, puoi costringerli a farlo. Ma di gran lunga la soluzione migliore è quella di costruire uno strumento senza soluzione di continuità che lo rende indolore. Non posso dirti come farlo per la progettazione, ma per la codifica, si desidera registrare le modifiche apportate nell'ambiente di sviluppo. Questa era una barra incredibilmente alta, ma se stai usando qualcosa come Eclipse, non è poi così male, forse esiste già. In questo modo, puoi misurare quanto tempo impiega ogni file e, potenzialmente, in Java, ogni metodo. Si tratta di informazioni molto più dettagliate di quelle ottenute chiedendo loro di fatturare e possono essere piuttosto accurate.

Allo stesso modo, se si dispone di uno strumento per inserire disegni, è possibile intercettare lì.


0

Dipende da come e perché vuoi che tengano traccia del tempo, stiamo solo contando il tempo in ufficio o il tempo trascorso al lavoro per pensare anche al problema?

La pianificazione del progetto è difficile e ci sono buone probabilità che le metriche ottenute non siano così utili come si potrebbe pensare. Non esistono due problemi uguali, quindi un'attività può richiedere otto ore, mentre un'altra può richiedere 32 ore per il completamento.

Potresti voler esaminare la pianificazione basata sull'evidenza in quanto ha la stima dello sviluppatore quanto tempo impiegherà un'attività e quindi si adegua nel tempo in base alla validità delle loro stime; tuttavia, non è buono per i grandi progetti poiché potresti non conoscere tutti i compiti in anticipo. Per i progetti di grandi dimensioni potrebbe essere meglio guardare i progetti passati di portata simile e usarli come parametro rispetto al tentativo di aggregare le singole stime.


0

Prova ad introdurli ad esempio in sistemi di organizzazione personale come la tecnica Pomodoro (ce ne sono molti altri ma è quello che sto provando ora)

La tecnica utilizza un timer per suddividere i periodi di lavoro in intervalli di 25 minuti chiamati 'Pomodori' (dalla parola italiana per 'pomodori') separati da brevi pause. Strettamente correlato a concetti come il timeboxing e lo sviluppo iterativo e incrementale utilizzato nella progettazione del software, il metodo è stato adottato in contesti di programmazione di coppia. Il metodo si basa sull'idea che pause frequenti possono migliorare l'agilità mentale.


0

Invece di convincerli a inserire i loro numeri, usa un software che funzioni senza sforzo. Sto usando ScreenAware: https://www.screenaware.com/en/ Tiene traccia del tuo tempo automaticamente e lo assegna ai rispettivi progetti. Quindi è sempre preciso e nessuno deve più indovinarlo


Questa soluzione specifica potrebbe non funzionare per la domanda generale di OP. Anche se va bene fornire collegamenti, la prossima volta prova a fornire una soluzione più generale a meno che OP non menzioni specificamente la richiesta di soluzioni software per il suo problema.
Neil,

-1

Hai preso in considerazione l'utilizzo del tuo sistema di ticket esistente? Il nostro sistema di ticket controlla il tempo che intercorre tra la creazione di un ticket e la sua chiusura. Se crei biglietti per le attività e rendi un numero di biglietto un requisito per il commit del codice, otterrai più soldi per il tuo dollaro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.