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


14

Sono uno sviluppatore Java, ma mi è stato chiesto di imparare ad applicare 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:

  • identificare e rimuovere le cause alla radice dei difetti
  • minimizzare la variabilità nell'applicazione dei processi produttivi o aziendali

Mi sembra che questi concetti possano essere applicati allo sviluppo del software, ma può essere efficacemente applicato a un ciclo di vita dello sviluppo del software (SDLC)?


11
Dove hai trovato che six-sigma è "adatto a tutti gli ambienti"? È stato sviluppato in modo molto specifico per la produzione ad alto volume di oggetti fisici, non software.
Angelo,

5
Sto riaprendo questa domanda in quanto non è necessario spostarla. La gestione dei progetti software è in tema qui, ma Six Sigma è più strettamente correlato alla qualità e al miglioramento dei processi, che sono anche in tema qui. Inoltre, è in corso un ampio lavoro di discussione sull'applicazione di Six Sigma ai progetti software e al miglioramento dei processi software (inclusa la combinazione di Six Sigma e CMMI e Six Sigma e metodi agili). Applicare Six Sigma al software è diverso dall'applicarlo a un ambiente di produzione, rendendo questa domanda richiede l'esperienza di uno sviluppatore di software.
Thomas Owens

5
@Angelo Sebbene Six Sigma fosse stato originariamente progettato per un ambiente di produzione, c'è stato molto lavoro per applicarlo allo sviluppo del software. La ricerca di frasi come "agile six sigma" e "cmmi six sigma" fa emergere molto lavoro nell'area.
Thomas Owens

5
Ho dovuto seguire i primi sei allenamenti sigma e mentre la mia compagnia pagava per questo, vorrei poter recuperare il mio tempo. L'istruttore era all'oscuro, gli esercizi erano piccoli giochi divertenti ma alla fine inutili. Six Sigma riguarda le statistiche ed è applicabile a compiti stupidi, ripetitivi e ben definiti, il tipo di compiti che sono spesso esternalizzati ai robot. Scrivere un buon software è un processo creativo. Six sigma aiuta i bravi ingegneri del software tanto quanto le lezioni di Calculus aiuterebbero Tom Cruise ad agire. Il solo fatto che tu abbia posto questa domanda ti squalifica dal lavorare con me o con i miei colleghi.
Giobbe

4
@ThomasOwens questo è NARQ, non fuori tema. È metà sondaggio / metà LMGTFU
Jimmy Hoffa il

Risposte:


15

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

Per quanto riguarda il software, il processo è il ciclo di vita dello sviluppo del software (SDLC) o parte di esso. Probabilmente non proveresti ad applicare i principi Six Sigma all'intero SDLC (o almeno non inizialmente). Invece, cercheresti aree in cui pensi di avere un problema (ad esempio il nostro tasso di difetti è troppo alto; troppe regressioni; il nostro programma scivola troppo spesso; troppi equivoci tra sviluppatori e clienti; ecc.). Diciamo per ora che il problema è che troppi bug vengono prodotti (o almeno segnalati) ogni settimana. Quindi definiresti il ​​processo di sviluppo del software / creazione di bug. Quindi inizieresti a raccogliere metriche come il numero di righe di codice scritte ogni giorno, la frequenza delle modifiche ai requisiti, il numero di ore che ogni ingegnere trascorre nelle riunioni,

Successivamente, guardi i dati e provi a discernere i modelli. Forse noterai che il team di ingegneri A raggiunge tutte le scadenze che gli vengono assegnate e spesso termina anche le attività in anticipo! Inizialmente, la squadra B non sembra abbastanza sulla palla: mancano le scadenze di un giorno o due almeno la metà del tempo e occasionalmente sono in ritardo di una settimana o più. La direzione vede la squadra B come un problema e sta cercando di scuotere le cose. Tuttavia, uno sguardo più attento ai dati mostra che la percentuale di bug del team B è molto più bassa di quella del team A e, inoltre, al team B viene spesso chiesto di correggere i bug attribuibili al team A perché la direzione ritiene che il team A sia prezioso per spendere molto di tempo per la manutenzione.

Allora cosa fai? Usando i dati che hai raccolto e l'analisi che hai eseguito, suggerisci una modifica: il team A e il team B risolveranno ciascuno i propri bug. Con la benedizione della direzione (e contro la veemente opposizione della squadra A) attui quel cambiamento. Quindi continui a raccogliere le metriche e continui ad analizzare i dati per vedere se la modifica ha fatto la differenza. Ripetere questo ciclo di misurazione / analisi / implementazione fino a quando la percentuale di bug non è considerata accettabile. Ma non hai ancora finito. In effetti, non hai mai finito ... devi continuare a misurare la percentuale di bug e verificare che la percentuale di bug rimanga entro l'intervallo accettabile, cioè statisticamente "sotto controllo".

Nota che qui non c'è nulla di specifico per lo sviluppo del software se non le 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 quelle che d utilizzare per un processo di produzione di widget, anche se lo sviluppo del software è molto diverso dalla produzione di widget. Tutto ciò significa che è necessario applicare un certo senso comune nei tipi di obiettivi che si prefiggono per il processo.


1
In realtà la metodologia Six Sigma più correlata allo sviluppo del software è DMADI (Definisci, Misura, Analizza, Progetta, Implementa) tranne per il fatto che ripetiamo MADI nello sviluppo del software. Le persone con quelle "cinture" lo chiamano Lean Six Sigma DMADI ma io lo chiamo Agile.
Tae-Sung Shin

È importante distinguere tra il miglioramento del processo di sviluppo stesso e il miglioramento del software in fase di sviluppo. Ho descritto il primo e ho menzionato l'applicazione di Six Sigma all'SDLC, penso che questo sia ciò che l'OP stava chiedendo; Il commento di Tae-SungShin sembra più mirato a quest'ultimo, e concordo sul fatto che il processo di miglioramento del software stesso sia leggermente diverso. Sono stati scritti molti metodi di sviluppo del software, quindi non proverò a farlo qui.
Caleb,

-3

Come menzionato da @Peter

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

Posso darti uno scenario semplice, stavo lavorando per una compagnia aerospaziale. C'è un team che progetta circuiti per velivoli. 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. Quindi ho progettato un software che terrà traccia dei loro circuiti precedentemente progettati e ogni volta che hanno nuovi aeromobili useranno il mio software e sceglieranno l'aeromobile precedentemente progettato che ha circuiti simili e li userà con poche modifiche. Poiché tali circuiti sono stati precedentemente progettati e testati su velivoli reali, ora possono concentrarsi maggiormente su nuovi circuiti.

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


4
Non è che six sigma sia fantastico; è che il manager che ha permesso ai suoi dipendenti di progettare circuiti da zero avrebbe dovuto essere licenziato.
Giobbe

2
lol .. ma lo stesso manager ha chiesto di seguire la procedura six sigma quando ho proposto questo software ..
rajkumarts

-4

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

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

Tuttavia, poiché il software six sigma è un nuovo concetto, è necessaria la formazione delle persone giuste. Un efficiente programma di formazione six sigma può aiutarti qui. Per la formazione online six sigma sull'ambiente di sviluppo software, suggerirei http://www.6sigma.us /. Li suggerisco in base alla raccomandazione che ho ricevuto da un'altra ditta.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.