Posso fidarmi dell'equazione di programmazione di base?

3

Ho letto il libro Software Stimation: Demystifying the Black Art di Steve McConnell e lui fornisce un'equazione per la stima del programma nominale in base a mesi-persona di sforzo:

ScheduleInMonths = 3.0 x EffortInMonths1/3

Secondo il libro, questo è molto accurato (entro il 25%), sebbene il fattore 3.0 sopra riportato vari a seconda dell'organizzazione (in genere tra 2 e 4). È presumibilmente facile utilizzare i progetti storici nella tua organizzazione per ricavare un fattore appropriato per il tuo utilizzo.

Sto cercando di riconciliare l'equazione con i metodi Agile, usando cicli di 2-6 settimane che sono spesso mini-progetti che hanno un risultato finale funzionante. Se ho un team di 5 sviluppatori per 4 settimane (1 mese), allora EffortInMonths = 5 Person Months. L'algoritmo emette quindi un programma di 3.0 x 5 1/3 = 5 mesi.

5 mesi è molto più del 25% diverso da 1 mese. Se si abbassa il fattore 3.0 a 0.6, allora l'algorthim funziona (emette un programma di circa 1 mese). Il fattore più basso possibile menzionato nel libro è 2.0.

Che sta succedendo qui? Voglio fidarmi di questa equazione per stimare un progetto "tradizionale" non agile, ma non posso fidarmi di esso quando non si riconcilia con la mia esperienza (agile). Qualcuno può aiutarmi a capire?

    
posta Steve Campbell 02.11.2012 - 15:18
fonte

3 risposte

1

Non penso che ci sarà una risposta a questo da qualcun altro, quindi ho intenzione di mettere la mia risposta qui:

Penso che @Ryanthal abbia ragione - Le iterazioni agili semplicemente non seguono lo stesso programma stimando l'equazione come progetti a cascata . Sospettavo che quando ho posto la domanda - avevo solo bisogno di una spiegazione sul perché.

L'equazione in pratica dice che esiste un limite rigido al numero di persone che possono lavorare contemporaneamente alla stessa cosa, e meno lavoro ci sarà, più è difficile scalare il lavoro attraverso la squadra. Lo abbiamo sperimentato su piccoli progetti: dividere il lavoro tra 2 persone è una sfida e ha un certo grado di inefficienza. Dividere più lavoro tra 3 persone è un po 'più gestibile, ma comunque difficile.

Penso che questo si applichi ancora ai progetti Agile, ma i progetti Agile compiono uno sforzo concertato ogni 2-4 settimane per affrontare questa sfida pianificando il modo in cui interrompono il lavoro per l'iterazione, con il vincolo di fornire lavoro software e lavorando in un ambiente collaborativo. Ciò consente ad Agile una maggiore libertà di scalare la squadra (almeno all'interno del agile punto debole degli sviluppatori 3-10).

È come un tradizionale progetto a cascata è un'applicazione server monolitica che può essere ridimensionata. Puoi aggiungere più memoria, ma poi ti sbagli contro un vincolo della CPU. Migliora la CPU e la memoria o il disco è il nuovo vincolo. È solo difficile da scalare e puoi imbattersi in alcuni limiti difficili. I progetti tradizionali sono vincolati a quanto efficacemente possono utilizzare le risorse disponibili per gli sviluppatori, perché il lavoro viene trattato come un unico blocco monolitico.

(In termini di risorse e programmi), Agile è più simile all'architettura di componenti server in cui ciascuno dei pezzi può essere ridimensionato individualmente, su più server. Se il componente di autorizzazione è un collo di bottiglia, avviare un'altra istanza. Puoi ancora imbatterti in limiti difficili, ma all'interno delle capacità dell'infrastruttura hai molta flessibilità.

    
risposta data 05.11.2012 - 18:10
fonte
2

Stai usando l'equazione per qualcosa per cui non è mai stata concepita. Ecco alcuni dei limiti dell'equazione di programmazione di base di cui si parla nel libro di Steve:

The schedule equation implicitly assumes that you're able to adjust the team size to suit the size implied by the equation.

If your team size is fixed, the schedule won't vary in proportion to the cube root of the scope; it will vary more widely based on your team-size constraints. Section 20.7, "Schedule Estimation and Staffing Constraints," will discuss this issue in more detail.

The Basic Schedule Equation is also not intended for estimation of small projects or late phases of larger projects.

You should switch to some other technique when you know the names of the specific people working on the project.

    
risposta data 31.01.2016 - 20:38
fonte
-1

Considera due progetti A e B. Il progetto A ha una certa quantità di impegno e si stima che occorrano 1 mese. Si stima che il progetto B abbia uno sforzo 27 volte maggiore rispetto al progetto A. L'equazione sembra dirci che il progetto B richiederà solo 3 mesi.

Trovo questo ALTAMENTE controintuitivo.

    
risposta data 05.11.2012 - 20:18
fonte

Leggi altre domande sui tag