Valutazione scientifica delle metodologie di programmazione [chiusa]

1

Ora ci sono una varietà di metodologie di programmazione: Scrum, Extreme Programming, Kanban per nominarne solo alcune. Molti di questi combinano diverse tecniche di base (ad esempio iterazioni frequenti). Tuttavia, quasi tutti affermano che la loro combinazione di tecniche è l'unico modo per scrivere un buon software.

Non penso che esista un modo migliore per ogni progetto. Invece sono interessato a valutazioni scientifiche indipendenti.

  • Quali tecniche di base funzionano meglio per quale tipo di progetto?
  • C'è qualche vantaggio nella combinazione di determinate tecniche?

Dato che non ho tempo di leggere la letteratura primaria, sono soprattutto alla ricerca di un libro. So che c'è Peopleware , ma è un po 'vecchio. Ci sono già parecchie domande correlate ( Ci sono studi scientificamente rigorosi sui principi dello stile di codifica? , Prove scientifiche che supportano l'uso di nomi di variabili lunghi invece di abbreviazioni? ...)

    
posta ACNB 24.01.2012 - 14:50
fonte

2 risposte

6

Essendo un gran fan dei dati empirici con una rigorosa validità statistica, non penso che tu possa scientificamente dimostrare che una metodologia è migliore o peggiore di una qualsiasi.

Ci sono molti fattori che entrano nella scelta di una metodologia. In Rapid Development: Taming Wild Software Schedules , Steve McConnell identifica una serie di fattori: livello di comprensione dei requisiti, livello di comprensione dell'architettura, affidabilità desiderata, gestione del rischio, vincoli di programma, quantità di overhead di processo, "correzioni di corso" a metà progetto, capacità di fornire al cliente visibilità, capacità di fornire al management visibilità e sofisticazione del team di sviluppo e gestione. Ce ne sono anche altri, come la cultura organizzativa, quindi probabilmente non c'è un elenco esaustivo da nessuna parte.

Anche dato lo stesso identico progetto, c'è anche il fattore squadra. Se si prende una squadra che ha costantemente consegnato il software utilizzando la metodologia spirale basata sul piano e lanciata in Scrum, sperimenterà una diminuzione della produttività, un aumento del thrashing e dovrà superare un nuovo modello di processo prima che possano venire intorno al successo. Anche se un'altra metodologia potrebbe essere più adatta, c'è sempre l'esigenza aziendale di consegnare effettivamente il software. Ecco perché gli sforzi per il miglioramento del processo sono spesso sforzi a lungo termine e non durante la notte: i cambiamenti più importanti sono scioccanti per un team e (anche se la metodologia potrebbe essere più adatta sulla carta) possono causare una diminuzione della produttività.

Suggerirei di consultare Rapid Development, insieme a Guida alla sopravvivenza del progetto software (anche da McConnell).

    
risposta data 24.01.2012 - 15:39
fonte
4

Il fattore più importante di gran lunga in un successo di un progetto software non è la metodologia. È la squadra.

    
risposta data 24.01.2012 - 15:33
fonte