Le grandi aziende come Google, Microsoft, Facebook, ecc. Utilizzano l’analisi dei punti funzionali e alcuni modelli di stima dello sforzo come COCOMO?

Sistemi come COCOMO sono generalmente inventati per cercare di rendere le stime più valide e pertinenti.

Molte persone non li usano. (Per lo più) non funzionano per lo scopo previsto.

Le ragioni sono piuttosto varie, ma nel limite sono tentativi di sostituire qualche tipo di sistema formulaico in sostituzione di una cattiva gestione ingegneristica.

Ecco il problema: COCOMO – e la maggior parte dei sistemi simili – derivano da un modello matematico di un singolo team su più progetti.

Il modello prevede generalmente di eseguire un’analisi di regressione, determinare le variabili dipendenti, buttare tutto il resto fuori dalla finestra e basare le decisioni future sulla determinazione dei valori delle variabili dipendenti che entrano in qualsiasi nuovo progetto.

Non funziona se cambia qualche aspetto della dinamica del team.

Cambia sempre.


Se Bob il programmatore stava dando a Candice l’assistente amministrativo giù in contabilità, e ora Alice il capo della tecnologia sta prendendo in giro Candice (Candice può essere piuttosto avventuroso) …

L’output della tua squadra probabilmente soffrirà, ora che Bob il programmatore non sta più comunicando con Alice il capo della tecnologia, perché spera che venga colpita da un autobus per “rubare” Candice.


Totalmente a parte le dinamiche personali come questa – che guideranno molta efficienza del team – ci sono altri problemi, che un manager può gestire e che un sistema come COCOMO non può.

Ad esempio, che aspetto ha il piano di sviluppo professionale di Bob? Voglio dire, prima che venisse mandato a girare nella terra, da tutta questa faccenda di Candice / Alice che esplode?

Supponiamo che non ci fosse Candice; portala completamente fuori dall’equazione COCOMO della squadra.

Invece, Bob ha frequentato la scuola serale, perseguendo il suo Master (Alice, per amor di discussione, ha 10 anni di esperienza su Bob, motivo per cui Alice è leader tecnologico).

Bob ora ottiene la sua carta unione (aka quel pezzo di pergamena che dice che ha un Master).

Presumibilmente … Bob ha migliorato le sue capacità lavorative durante il suo viaggio scolastico di tre anni in terra di master.

La dinamica della tua squadra è cambiata, poiché Bob è diventato un ingegnere migliore.

Hai rifatto la tua analisi di regressione?

No?

Perché diamine no?

La squadra che hai ora non è la squadra che avevi prima che Bob decidesse di andare nella sua ricerca di miglioramento professionale.

Stai operando con dati non aggiornati, anche se non è cambiato nient’altro riguardo al team.


La cosa più importante che un manager esperto può fare è tenere un dito sul polso della squadra dinamica.

Questo è ancora più importante per i manager dei manager, dal momento che per alcune delle persone che segnalano loro: questa è sicuramente la prima volta che vanno fuori, e si deve presumere che stiano brancolando alla cieca nel buio.

La seconda cosa più importante che un manager esperto può fare è conoscere i membri del loro team “scalare i numeri”.

Un numero in scala è il numero che devi moltiplicare per qualsiasi stima per ottenere il numero effettivo.

Se Bob dice che può fare qualcosa in 5 settimane, potrebbe impiegarne sei. Se vuoi garantire che qualcosa venga fatto, allora qualsiasi “stima di Bob” viene moltiplicata per 1,2 per ottenere il numero effettivo.

Forse Alice è schizzinosa – potrebbe essere ciò che la rende una buona guida tecnologica – o forse ha appena avuto un numero di manager schifosi, che non sapevano che esisteva qualcosa come un numero in scala, ed è stato catturato nella spazzatura compattatore di Star Wars, senza R2D2 per salvarla.

Quindi, forse, se Alice può fare qualcosa in 3 settimane, Alice dice che ne occorreranno 4 e che le “stime di Alice” devono essere moltiplicate per 0,75.


Dove si inseriscono cose del genere in sistemi come COCOMO?

Generalmente: non lo fanno.

Ecco perché le persone tendono a non fare affidamento su di loro.

More Interesting

Il codice software può essere Prison Clean? - Intimidamente pulito, in un modo che non dà alcuna speranza.

Qual è la tua recensione di Atom (editor di testo)?

In breve, perché a molti sviluppatori non piace Agile? Quali sono le migliori alternative al paradigma di project management?

Perché la ricerca di file sul mio disco richiede in genere da 20 secondi a 2 minuti mentre Google può cercare una pagina in Internet quasi istantaneamente?

Qualcuno con una laurea in ingegneria informatica può lavorare principalmente nel software proprio come un CS?

Bug software: qual è la perdita di memoria più disastrosa che hai visto in un programma per computer?

L'ereditarietà è una cattiva pratica in OOP? Molti luoghi che insegnano i modelli di progettazione dicono di optare per la composizione rispetto all'eredità, ma che dire di quando più classi condividono la logica di una classe astratta come nel modello di progettazione Metodo del modello?

Il test del software utilizzando i dati effettivi è efficace ed efficace?

I programmatori autodidatti (senza alcuna formazione formale CS a scuola) sono migliori o peggiori nella programmazione rispetto ai programmatori di scuola tradizionale?

Qual è il loop degli eventi?

Sono un programmatore, ma preferirei passare la giornata a parlare con le persone piuttosto che a scrivere codice. Come dovrei dirigere la mia carriera?

Come aggiungere la funzione grafica a un software punto vendita per PC

Come migliorare la qualità del prodotto dal punto di vista del controllo qualità

Quale software è veramente buono per l'architettura?

In che modo gli sviluppatori creano app di disegno e pittura?