Come pianificare attività "pezzo di corda"

1

Abbiamo un vecchio database che viene utilizzato per contenere informazioni di supporto sul sistema finanziario. La maggior parte del codice attuale è in Views che consolida i dati di supporto con i dati finanziari (contenuti in un sistema diverso) in un'unica tabella. Alcuni di questo codice View sono molto grandi.

A causa di un cambiamento nel modo in cui sono riportati i risultati finanziari, è necessaria una modifica alla più ampia di queste opinioni. Non è immediatamente evidente dove questo cambiamento può essere fatto. Tuttavia, è molto probabile che sia effettivamente una piccola modifica nel codice reale.

Sono stato incaricato di "stimare" questo lavoro. Ma questo mi presenta un problema. Per stimarlo, ho bisogno di capire cosa deve essere fatto. Questo richiede molto tempo in quanto non c'è una soluzione ovvia: alcune delle sottoquery devono essere scisse e analizzate per l'artificio. Effettuare la correzione una volta trovata una volta probabilmente richiederà non più di qualche minuto.

A volte chiamo questo tipo di lavoro "stringa" perché, quando viene chiesto quanto tempo ci vuole, la risposta è "quanto è lungo un pezzo di corda". Quasi tutto il lavoro è nella pianificazione e nelle indagini e non è chiaro quanto impegno comporti.

Mi trovo in questa situazione relativamente frequentemente quando si tratta di bug e cambiamenti nei punti. Questo pone problemi quando il tuo manager vuole utilizzare il tuo tempo o rispettare una metodologia timebox come Agile. Come puoi stimare / pianificare questo tipo di compiti? E se nessuna stima è possibile, c'è qualche valore nel sostenere alla dirigenza che questo tipo di lavoro non può essere programmato in modo efficace?

    
posta Matt Thrower 19.10.2017 - 15:42
fonte

3 risposte

3

Caratterizza il lavoro come ricerca.

La ricerca non si presta naturalmente alla stima, perché non conosci né la risposta, né dove la ricerca ti porterà. Il CERN può darti una stima di quanto tempo ci vorrà per costruire il loro prossimo supercollider (sebbene quella stima contenga ancora alcune incognite), ma non quanto tempo ci vorrà per trovare la particella di Dio.

Offri un'opportunità per ridurre il debito tecnico.

Se riesci a vendere l'idea che questa "ricerca" produrrà dividendi futuri in termini di manutenibilità migliorata, allora puoi fare una stima basata sulla rielaborazione richiesta e anche fornire risultati più allettanti che "correggere questo bug oscuro."

Contare le righe di codice.

Potresti fare un'ipotesi ragionevole a una stima assumendo che dovrai esaminare ogni riga di codice in questo particolare modulo per trovare il problema, stimando il tempo necessario (da 3 a 5 minuti, forse) per rivedere ogni linea di codice, contando le linee totali di codice nel modulo e moltiplicando i due numeri per una stima complessiva. Questa è una semplice forma di cucinare l'elefante; rompere il problema in parti più piccole rende più facile la stima.

    
risposta data 19.10.2017 - 17:23
fonte
2

Nella mia posizione passata i miei compiti erano molto simili ai tuoi problemi di "stringa", non saprei se la soluzione fosse semplice come cambiare un valore in un file di configurazione o una riscrittura a metà di un piatto di 8 anni codice spaghetti Con il mio capo abbiamo elaborato un sistema che sembrava funzionare bene con tutti.

In primo luogo, ho sempre risposto alle stime temporali con un intervallo. Il numero basso era quello che mi sarei aspettato che fosse se tutto andasse a posto come per magia. Il numero elevato era un'ipotesi plausibile su quanto tempo ci sarebbe voluto (caso peggiore) sulla base di ciò che sapevo del sistema e delle mie esperienze passate lì, ecc. Come consiglio generale per le stime temporali, entrambi i numeri avevano un buffer integrato perché io cose naturalmente sottovalutate. Inoltre c'è una quantità minima di tempo che impiega qualsiasi (se sei un dipendente a tempo pieno, in genere lo metto a mezza giornata per le attività software e una giornata intera per le attività elettriche). Anche se occorrono 30 minuti per cambiare il software, occorreranno 2 ore per riunire tutti i file del progetto e creare, un'ora per testare e controllare le cose, mezz'ora perché Joe si occupi della contabilità e ti distragga, ecc.

Ora, se non potessi consegnare quei due numeri con sicurezza, avrei allargato la gamma superiore a quella in cui la stima era sostanzialmente inutile (potrebbe far arrabbiare qualcuno ma hey, era la verità) o più comunemente sarei in grado di stimare quanto tempo ci vorrà per scrivere un preventivo. Con questi problemi con le stringhe di solito potrei dare un'occhiata e se uscissi dicendo "beh Sarò una soluzione rapida o chi diavolo lo sa "- di solito ne so abbastanza per dire" Se ti piacerebbe stimare ho bisogno di x ore di investigare sul problema e ti riporto ". Le persone con cui ho lavorato pensavano che fosse ragionevole ed era la nostra strategia principale.

Se ti è capitato di trovare la risposta e risolvere il problema nel corso di tale periodo d'inchiesta - Complimenti, sei un eroe, riferire con "E 'stata una soluzione semplice e la sua già fatto - ho solo bisogno di un paio d'ore per testare il mio soluzione".
 Le persone saranno felici Se è una correzione più lunga, puoi segnalare una stima significativa per le persone che ne hanno bisogno per prendere una decisione e ancora vinci.

    
risposta data 19.10.2017 - 22:21
fonte
0

It is not immediately apparent where this change can be made. However, it is very likely that it's actually quite a small alteration in the actual code.

Quindi hai già una stima del tempo per le effettive modifiche al codice , non hai bisogno di sapere dove.

Questa stima sarà sbagliata solo se la cosa "molto probabile" non si verifica, e questo è OK - è solo una stima, dopotutto.

To estimate it, I need to work out what needs to be done.

No. Capire i dettagli delle modifiche al codice non fa parte della stima.

Basta stimare il tempo necessario per capire i dettagli e aggiungerlo alla stima per il cambiamento concreto. Forse fai qualche ricerca iniziale con il time box se non sei sicuro.

Naturalmente ciò presuppone un'organizzazione che non reagisce patologicamente agli errori di stima. Se il tuo capo ti punirà per aver fatto "stime sbagliate" di tanto in tanto, allora dovrai dirgli che la stima stessa richiede molto tempo o non è specificata o stimata in modo generoso.

    
risposta data 19.10.2017 - 17:57
fonte

Leggi altre domande sui tag