Come posso applicare Six Sigma in un ambiente di sviluppo software?

13

Sono uno sviluppatore Java, ma mi è stato chiesto di conoscere l'applicazione del Six Sigma con l'obiettivo di aumentare i profitti della nostra organizzazione. Ho letto che Six Sigma può essere applicato in tutti gli ambienti, ma sono interessato alle sfumature di applicarlo allo sviluppo del software.

Quali concetti di Six Sigma possono essere applicati a un ambiente di sviluppo software e come posso applicarli efficacemente?

La mia comprensione è che Six Sigma si concentra su:

  • identificazione e rimozione delle cause principali dei difetti
  • minimizzare la variabilità nell'applicare processi produttivi o aziendali

Mi sembra che questi concetti possano essere applicati allo sviluppo di software, ma possono essere applicati in modo efficace a un Software Development Lifecycle (SDLC)?

    
posta Dinesh Kumar 02.05.2012 - 16:05
fonte

3 risposte

15

Le attività base di Six Sigma sono catturate dall'acronimo DMAIC , che sta per: Definisci, Misura, Analizza, Migliora, Controlla . Si applicano questi al processo che si desidera migliorare: definire il processo, misurarlo, utilizzare le misurazioni per formulare ipotesi sulle cause di eventuali problemi, implementare miglioramenti e garantire che il processo rimanga statisticamente "in controllo".

Per quanto riguarda il software, il processo è il tuo ciclo di sviluppo del software (SDLC) o parte di esso. Probabilmente non proverai ad applicare i principi Six Sigma all'intero SDLC (o almeno, non inizialmente). Invece, cercheresti aree in cui pensi di avere un problema (ad es. Il nostro tasso di difetti è troppo alto, troppe regressioni, il nostro programma scivola troppo spesso, troppe incomprensioni tra sviluppatori e clienti, ecc.). Diciamo per ora che il problema è che vengono prodotti troppi bug (o almeno segnalati) ogni settimana. Quindi definiresti il processo di sviluppo del software / creazione di bug. Quindi inizi a raccogliere metriche come il numero di righe di codice scritte ogni giorno, la frequenza delle modifiche dei requisiti, il numero di ore trascorse da ciascun ingegnere in riunioni e altri fatti rilevanti.

Successivamente, guardi i dati e prova a discernere i pattern. Forse ti accorgi che il team di ingegneri A colpisce ogni scadenza che gli viene assegnata e spesso finisce persino le attività in anticipo! Inizialmente, la squadra B non sembra abbastanza sulla palla - si perdono le loro scadenze di un giorno o due almeno la metà del tempo, e sono occasionalmente in ritardo di una settimana o più. La direzione vede la squadra B come qualcosa di un problema e sta cercando di scuotere le cose. Tuttavia, uno sguardo più ravvicinato ai dati mostra che la percentuale di bug della squadra B è molto inferiore a quella della squadra A, e in più alla squadra B viene spesso chiesto di correggere i bug attribuibili alla squadra A perché la direzione ritiene che la squadra A abbia un valore da spendere molto di tempo in manutenzione.

Quindi, cosa fai? Utilizzando i dati che hai raccolto e l'analisi che hai eseguito, suggerisci una modifica: la squadra A e la squadra B risolveranno ciascuno i propri bug. Con la benedizione del management (e contro l'opposizione veemente della squadra A) implementate questo cambiamento. Quindi continui a raccogliere le metriche e continui ad analizzare i dati per vedere se le tue modifiche hanno fatto la differenza. Ripetere questa misura / analizzare / implementare il ciclo fino a quando il tasso di errore è ritenuto accettabile. Ma non hai ancora finito. Infatti, tu sei mai fatto ... devi continuare a misurare la frequenza dei bug e controllare che la frequenza dei bug rimanga nell'intervallo accettabile, cioè è statisticamente "in controllo".

Si noti che qui non c'è nulla che sia specifico dello sviluppo del software oltre alle specifiche del processo che stai migliorando, i tipi di metriche che raccogli, ecc. Le attività che usi per migliorare un processo di sviluppo del software sono le stesse di quelli che useresti per un processo di produzione di widget, anche se lo sviluppo del software è molto diverso dalla produzione di widget. Tutto ciò significa che devi applicare un po 'di buon senso nei tipi di obiettivi che hai impostato per il tuo processo.

    
risposta data 02.05.2012 - 20:49
fonte
-3

Come menzionato da @Peter

Applying six sigma in software development creates sustained improvement in the development of a software. Applying six sigma in software development results in speedy integration and testing of the software, helps to create a bug free software and it helps is more efficient program management.

Posso darti uno scenario semplice, stavo lavorando per un'azienda aerospaziale. C'è una squadra che progetta circuiti per aerei. Stavano affrontando molte difficoltà nella progettazione di circuiti per velivoli complessi. A causa di ciò mancavano le scadenze, anche se avevano sperimentato designer. Ho analizzato il loro lavoro e ho notato che stavano sviluppando circuiti da zero ogni volta. Così ho progettato un software che terrà traccia dei loro circuiti progettati in precedenza e ogni volta che hanno un nuovo velivolo useranno il mio software e selezioneremo l'aereo precedentemente progettato che ha circuiti simili e li useremo con poche modifiche. Poiché tali circuiti sono stati precedentemente progettati e testati su velivoli reali, ora possono concentrarsi maggiormente sui nuovi circuiti. Ciò ha ridotto i tempi di consegna e ridotto notevolmente i loro errori durante la progettazione dei circuiti.

Questo è solo uno scenario in cui ho seguito il processo SIX Sigma per raccogliere tutti i dati sui loro errori e analizzato quali sono le ragioni di ciò. Quindi migliorali con il mio software.

    
risposta data 19.03.2013 - 19:07
fonte
-4

L'applicazione di sei sigma nello sviluppo del software si chiama software six sigma. Six Sigma è fondamentalmente sviluppato per la produzione, nel processo di produzione aiuta le aziende a migliorare la consegna, la qualità del prodotto a basso costo. Mentre lo stesso può essere applicato allo sviluppo del software.

L'applicazione di sei sigma nello sviluppo del software crea un miglioramento continuo nello sviluppo di un software. L'applicazione di sei sigma nello sviluppo del software si traduce in una rapida integrazione e test del software, aiuta a creare un software privo di bug e aiuta a rendere più efficiente la gestione del programma.

Tuttavia, essendo il software sei sigma un nuovo concetto, è necessario l'addestramento da parte delle persone giuste. Un efficiente programma di formazione di sei sigma può aiutarti qui. Per la formazione online di sei sigma sull'ambiente di sviluppo software suggerirei link /. Li suggerisco in base alla raccomandazione che ho ricevuto da un'altra azienda.

    
risposta data 04.02.2013 - 11:32
fonte

Leggi altre domande sui tag