Pianificazione delle tappe e del tempo

4

Sono stato assunto da una società di marketing un anno fa inizialmente per la costruzione di link / SEO, ma in realtà sono uno sviluppatore Web e ho preso il lavoro disperatamente per averne uno (sono ancora piuttosto giovane e ho appena finito il 2 ° anno di università). Dal 3 ° giorno il mio capo si è reso conto che non sono affatto interessato a queste cose e dal momento che ha avuto un'idea di un'applicazione basata sul Web, abbiamo iniziato a programmarla.

Ho stimato che non dovevo impiegare più di due mesi per farlo, ma mentre lo stavo facendo ci siamo presto resi conto che volevamo aggiungere sempre più cose per renderlo ancora migliore.

Quindi lo sviluppo da solo è durato per circa 4 mesi, ma poi è diventato un'applicazione di dimensioni aziendali e abbiamo assunto un altro programmatore per lavorare con me. Il ragazzo è stato fantastico in quello che ha fatto, ma dato che mi è stato assegnato il ruolo di programmatore / project manager, ho dovuto impostare le pietre miliari con scadenze e ci siamo persi la maggior parte di loro, perché la maggior parte delle volte era troppo lavoro e la mia mancanza di l'esperienza mi ha fatto fissare scadenze davvero ottimistiche. Abbiamo continuato ad aggiungere funzionalità e abbiamo cambiato due volte l'architettura dell'applicazione.

Il mio capo è un bravo ragazzo e quando lo aggiungiamo aggiungiamo nuove funzionalità per espandere il periodo di tempo in cui le cose dovrebbero essere fatte, quindi non era arrabbiato con me o con l'altro ragazzo. Ma mi sentivo male (lo sono ancora) che faccio schifo a pianificare.

Ho acquisito molta esperienza dal lato della programmazione, ma mi mancano ancora le capacità di gestione / pianificazione che mi fanno impazzire. Quindi nell'ultimo anno ho dedicato probabilmente circa 8 mesi di lavoro a questa app (ovviamente i miei studi lo hanno influenzato) e questo mese lanceremo come beta chiusa. Quindi la mia domanda è: come posso migliorare nella pianificazione / gestione di un progetto, come valuti i tempi? Cosa prendi in considerazione quando definisci gli obiettivi.

Sto lavorando di nuovo da solo perché l'altro ragazzo si è trasferito dalla città. Ma sono sicuro che ci assumeremo per aiutarmi a mantenerlo, quindi ho bisogno di migliorare.

Sono graditi suggerimenti, punti o qualsiasi cosa sull'argomento.

    
posta Ignas 07.06.2012 - 16:25
fonte

4 risposte

9

Ecco un eccellente articolo di Joel Spolsky: link

È un processo molto semplice che fondamentalmente sostiene di stimare quanto errate saranno le stime tenendo traccia di quanto errate sono state in passato. Col passare del tempo ti ritroverai con ipotesi molto migliori al momento di fare le cose. Non è una soluzione istantanea, ma, di nuovo, una pianificazione accurata dei progetti software è molto difficile.

Inoltre, sostiene la demolizione di progetti in parti molto piccole (e teoricamente più facili da valutare).

    
risposta data 07.06.2012 - 16:37
fonte
3

L'unico modo per ottenere una stima migliore è farlo più, gli sviluppatori meno esperti sono generalmente eccessivamente ottimisti. Da quello che hai scritto non sembra che il tuo problema sia stato la stima, è stato scope creep .

Probabilmente avrai una lezione sulla gestione del progetto, ma come una rapida panoramica il PM è responsabile molto più che impostare il programma e tenerlo in pista. Sono inoltre responsabili di garantire che il progetto che è stato definito all'inizio nella carta del progetto / altri documenti sia il progetto su cui si lavora. Nel tuo caso, sembra che tu abbia finito per fare uno scarso lavoro di questo perché sei passato da una piccola app a un'app aziendale. Questa è una cosa difficile da gestire, specialmente quando sei anche uno sviluppatore del progetto. Gli sviluppatori tendono a voler sempre aggiungere e migliorare tutto ciò su cui lavorano a tempo indeterminato e mai veramente arrivare alla parte di rilascio. Come un PM a volte hai bisogno di dire agli sviluppatori che i loro piani sono fuori portata o che la funzionalità X è già abbastanza buona per iniziare a lavorare su Y.

    
risposta data 07.06.2012 - 16:44
fonte
1

Parte del sapere come pianificare le scadenze, le dipendenze, ecc., verrà dall'esperienza. Tuttavia, detto questo, è un set di abilità molto diverso rispetto allo sviluppo e alla programmazione web. Parte di quell'esperienza che stai guadagnando è che la gestione del progetto probabilmente non è la tua cosa, e non c'è nulla di cui vergognarsi. Ad essere onesti, sono sorpreso che si aspettassero un completo project manager, sapendo che sei ancora nel bel mezzo dei tuoi studi. Ho conosciuto persone che hanno gestito professionalmente il project management per molti anni e ancora non lo capiscono!

A meno che tu non abbia davvero bisogno del denaro, ti incoraggio a porre una maggiore enfasi sui tuoi studi su questo lavoro. Se ti piace davvero fare lo sviluppo web e vuoi riuscirci, allora dovresti concentrarti sul miglioramento delle tue conoscenze e competenze su quel tipo di lavoro e allontanarti da questo ruolo di project management. Non c'è da vergognarsi nel dire al tuo capo che sei arrivato a capire che hai morso più di quanto puoi masticare e che hai incontrato limitazioni personali che potrebbero danneggiare la tua organizzazione. Digli che ti piacerebbe continuare a lavorare con lui, ma rigorosamente in un ruolo di sviluppo. Se è un grande capo, riconoscerà come ciò andrà a vantaggio di entrambi, e potrai spingere la tua carriera più lontano di quanto potresti altrimenti.

    
risposta data 07.06.2012 - 16:44
fonte
0

Una cosa che ci aiuta molto è avere un modello di stima standard che usiamo per ogni progetto. Ci costringe a includere il tempo per cose che gli sviluppatori potrebbero dimenticare nelle loro stime come riunioni e comunione di clienti, gestione dei progetti, test delle unità, supporto per i test QA e UAT, documentazione. Quando aggiungi tutti i pezzi che 8 ore di sviluppo possono facilmente trasformare in 22 o 23 ore.

Lo scorrimento viscoso di cui hai sofferto anche significa una nuova stima. Ogni volta senza eccezioni. Quando decidi di aggiungere una nuova funzione (o ti viene richiesta), è necessario sapere quante ore aggiuntive e fino a che punto spingeranno la scadenza. È meglio spingere il prodotto e spostare le modifiche apportate all'ambito alla successiva iterazione per la maggior parte del tempo.

Ottieni un prodotto e aggiungi funzionalità anziché ritardi continui per aggiungere altro materiale interessante. E assicurati che lo scope creep non provenga dagli sviluppatori. Le modifiche dell'ambito dovrebbero provenire dai clienti o dalle parti interessate nell'organizzazione, non dagli sviluppatori. Non c'è davvero nessuna scusa per questo. Se pensi a qualcosa che vuoi aggiungere, aggiungilo alla versione successiva dopo aver esaminato l'idea con gli stakeholder invece di ritardare la versione corrente a meno che qualcosa non sia effettivamente così rotto che non funzionerà senza la nuova cosa. La spedizione del prodotto è un'abilità critica da avere. Ogni pezzo di software mai scritto può avere alcune nuove cose brillanti aggiunte a loro prima della fine. Resisti alla tentazione e pianifica le tue nuove funzionalità nelle versioni future.

    
risposta data 08.06.2012 - 00:55
fonte

Leggi altre domande sui tag