Wie kann ich Six Sigma in einer Software-Entwicklungsumgebung anwenden?

14

Ich bin ein Java-Entwickler, aber ich wurde gebeten, etwas über die Anwendung von Six Sigma zu lernen, um die Gewinne unserer Organisation zu steigern. Ich habe gelesen, dass Six Sigma in allen Umgebungen angewendet werden kann, aber ich interessiere mich für die Nuancen der Anwendung bei der Softwareentwicklung.

Welche Konzepte von Six Sigma können auf eine Softwareentwicklungsumgebung angewendet werden und wie kann ich sie effektiv anwenden?

Nach meinem Verständnis konzentriert sich Six Sigma auf:

  • Identifizierung und Beseitigung von Fehlerursachen
  • Minimierung der Variabilität bei der Anwendung von Fertigungs- oder Geschäftsprozessen

Es scheint mir, dass diese Konzepte auf die Softwareentwicklung angewendet werden könnten, aber kann dies effektiv auf einen Software Development Lifecycle (SDLC) angewendet werden?

Dinesh Kumar
quelle
11
Wo haben Sie festgestellt, dass Six-Sigma "für alle Umgebungen geeignet" ist? Es wurde speziell für die Massenfertigung von physischen Objekten entwickelt - keine Software.
Angelo
5
Ich öffne diese Frage erneut, da sie nicht verschoben werden muss. Das Management von Softwareprojekten ist hier ein Thema, aber Six Sigma ist enger mit der Qualitäts- und Prozessverbesserung verbunden, die auch hier zum Thema gehört. Darüber hinaus wird die Anwendung von Six Sigma auf Softwareprojekte und die Verbesserung von Softwareprozessen (einschließlich der Kombination von Six Sigma und CMMI sowie Six Sigma und agilen Methoden) ausführlich erörtert. Das Anwenden von Six Sigma auf Software unterscheidet sich vom Anwenden auf eine Fertigungsumgebung, weshalb diese Frage das Fachwissen eines Softwareentwicklers erfordert.
Thomas Owens
5
@Angelo Obwohl Six Sigma ursprünglich für eine Fertigungsumgebung entwickelt wurde, wurde viel Arbeit in der Anwendung auf die Softwareentwicklung investiert. Die Suche nach Phrasen wie "Agile Six Sigma" und "Cmmi Six Sigma" bringt eine Menge Arbeit in die Gegend.
Thomas Owens
5
Ich musste das erste Six Sigma Training absolvieren und während meine Firma dafür bezahlte, wünschte ich mir, ich könnte meine Zeit zurückbekommen. Der Lehrer hatte keine Ahnung, die Übungen waren lustige kleine Spiele, aber letztendlich sinnlos. Six Sigma handelt von Statistiken und ist auf dumme, sich wiederholende, genau definierte Aufgaben anwendbar, die Art von Aufgaben, die oft an Roboter ausgelagert werden. Gute Software zu schreiben ist ein kreativer Prozess. Six Sigma hilft guten Software-Ingenieuren genauso wie Calculus-Vorlesungen Tom Cruise beim Handeln helfen würden. Allein die Tatsache, dass Sie diese Frage gestellt haben, führt dazu, dass Sie nicht mehr mit mir oder meinen Kollegen zusammenarbeiten können.
Job
4
@ThomasOwens das ist NARQ, nicht off-topic. Es ist halb Umfrage / halb LMGTFU
Jimmy Hoffa

Antworten:

15

Die grundlegenden Six Sigma-Aktivitäten werden unter dem Akronym DMAIC erfasst , das für Define, Measure, Analyze, Improve, Control ( Definieren, Messen, Analysieren, Verbessern, Steuern) steht . Sie wenden diese auf den Prozess an, den Sie verbessern möchten: Definieren Sie den Prozess, messen Sie ihn, verwenden Sie die Messungen, um Hypothesen über die Ursachen von Problemen zu erstellen, implementieren Sie Verbesserungen und stellen Sie sicher, dass der Prozess statistisch "unter Kontrolle" bleibt.

In Bezug auf Software ist der Prozess Ihr Software Development Lifecycle (SDLC) oder ein Teil davon. Sie würden wahrscheinlich nicht versuchen, die Six Sigma-Prinzipien auf die gesamte SDLC anzuwenden (oder zumindest nicht anfangs). Stattdessen sollten Sie nach Bereichen suchen, in denen Sie der Meinung sind, dass Sie ein Problem haben (z. B. unsere Fehlerquote ist zu hoch, zu viele Rückschritte, unser Zeitplan rutscht zu oft ab, zu viele Missverständnisse zwischen Entwicklern und Kunden usw.). Nehmen wir zunächst einmal an, dass das Problem darin besteht, dass jede Woche zu viele Bugs produziert (oder zumindest gemeldet) werden. Sie definieren also den Softwareentwicklungs- / Fehlererstellungsprozess. Dann beginnen Sie mit der Erfassung von Metriken wie der Anzahl der täglich geschriebenen Codezeilen, der Häufigkeit von Anforderungsänderungen und der Anzahl der Stunden, die jeder Ingenieur in Besprechungen verbringt.

Als Nächstes betrachten Sie die Daten und versuchen, Muster zu erkennen. Vielleicht stellen Sie fest, dass das Engineering-Team A jeden angegebenen Termin einhält und Aufgaben oft sogar vorzeitig erledigt! Anfangs scheint Team B nicht ganz so auf dem Ball zu sein - sie verpassen ihre Deadlines mindestens zur Hälfte um ein oder zwei Tage und sind gelegentlich um eine Woche oder länger zu spät. Das Management sieht Team B als ein Problem und versucht, die Dinge durcheinander zu bringen. Ein genauerer Blick auf die Daten zeigt jedoch, dass die Fehlerrate von Team B viel niedriger ist als die von Team A, und außerdem wird Team B häufig gebeten, Fehler zu beheben, die Team A zuzuschreiben sind, da das Management der Ansicht ist, dass Team A zu wertvoll ist, um viel Geld auszugeben der Zeit für die Wartung.

Also, was machst du? Unter Verwendung der von Ihnen gesammelten Daten und der von Ihnen durchgeführten Analyse schlagen Sie eine Änderung vor: Team A und Team B beheben jeweils ihre eigenen Fehler. Mit dem Segen des Managements (und gegen die vehemente Opposition von Team A) setzen Sie diese Änderung um. Anschließend erfassen Sie weiterhin Messdaten und analysieren die Daten, um festzustellen, ob Ihre Änderung einen Unterschied bewirkt hat. Wiederholen Sie diesen Mess- / Analyse- / Implementierungszyklus, bis die Fehlerrate als akzeptabel erachtet wird. Aber du bist noch nicht fertig. Tatsächlich bist du nie fertig ... Sie müssen die Fehlerrate weiterhin messen und sicherstellen, dass die Fehlerrate innerhalb des akzeptablen Bereichs bleibt, dh sie ist statistisch "unter Kontrolle".

Beachten Sie, dass es hier nichts gibt, das für die Softwareentwicklung spezifisch ist, außer die Besonderheiten des Prozesses, den Sie verbessern, die Arten von Metriken, die Sie sammeln usw. d Verwendung für einen Widget-Herstellungsprozess, obwohl sich die Softwareentwicklung erheblich von der Widget-Herstellung unterscheidet. Das bedeutet nur, dass Sie bei den Zielen, die Sie für Ihren Prozess festlegen, einen gesunden Menschenverstand anwenden müssen.

Caleb
quelle
1
Tatsächlich ist die Six Sigma-Methodik, die mehr mit der Softwareentwicklung zu tun hat, DMADI (Define, Measure, Analyze, Design, Implement), mit der Ausnahme, dass wir MADI in der Softwareentwicklung wiederholen. Leute mit diesen "Gürteln" nennen es Lean Six Sigma DMADI, aber ich nenne es Agile.
Tae-Sung Shin
Es ist wichtig, zwischen der Verbesserung des Entwicklungsprozesses selbst und der Verbesserung der zu entwickelnden Software zu unterscheiden. Ich habe das erstere beschrieben und erwähnt, dass Six Sigma bei der SDLC angewendet werden soll. Ich denke, das war es, worum das OP gebeten hat. @ Tae-SungShins Kommentar scheint sich eher an Letzteres zu richten, und ich stimme zu, dass der Prozess zur Verbesserung der Software selbst ein wenig anders ist. Es wurde viel über Softwareentwicklungsmethoden geschrieben, daher werde ich hier nicht versuchen, dies zu tun.
Caleb
-3

Wie von @Peter erwähnt

Durch die Anwendung von Six Sigma in der Softwareentwicklung wird die Entwicklung einer Software nachhaltig verbessert. Die Anwendung von Six Sigma in der Softwareentwicklung führt zu einer schnellen Integration und zum Testen der Software, hilft bei der Erstellung einer fehlerfreien Software und trägt zu einer effizienteren Programmverwaltung bei.

Ich kann Ihnen ein einfaches Szenario geben, ich habe für ein Luft- und Raumfahrtunternehmen gearbeitet. Es gibt ein Team, das Schaltungen für Flugzeuge entwirft. Sie hatten große Schwierigkeiten, Schaltkreise für komplexe Flugzeuge zu entwerfen. Aus diesem Grund fehlten die Fristen, obwohl sie Designer erlebt hatten. Ich analysierte ihre Arbeit und stellte fest, dass sie jedes Mal Schaltkreise von Grund auf neu entwickelten. Deshalb habe ich eine Software entwickelt, die die zuvor entworfenen Schaltkreise verfolgt. Wenn sie neue Flugzeuge haben, verwenden sie meine Software und wählen die zuvor entworfenen Flugzeuge mit ähnlichen Schaltkreisen aus und verwenden sie mit geringen Änderungen daran. Da diese Schaltungen zuvor für Flugzeuge entwickelt und getestet wurden, können sie sich jetzt mehr auf neue Schaltungen konzentrieren.

Dies ist nur ein Szenario, in dem ich den SIX Sigma-Prozess verfolgte, um alle Daten zu ihren Fehlern zu sammeln und die Gründe dafür zu analysieren. Dann verbessere sie durch meine Software.

Rajkumarts
quelle
4
Es ist nicht so, dass Six Sigma großartig ist. Es ist so, dass der Manager, der seine Mitarbeiter Schaltkreise von Grund auf neu entwerfen ließ, entlassen werden sollte.
Job
2
lol .. aber der gleiche Manager fragte nach dem Six-Sigma-Verfahren, als ich diese Software vorschlug ..
Rajkumarts
-4

Die Anwendung von Six Sigma in der Softwareentwicklung wird als Software Six Sigma bezeichnet. Six Sigma wurde im Wesentlichen für die Herstellung entwickelt und hilft Unternehmen im Herstellungsprozess, die Lieferqualität des Produkts zu niedrigen Kosten zu verbessern. Dasselbe kann auch für die Softwareentwicklung gelten.

Durch die Anwendung von Six Sigma in der Softwareentwicklung wird die Entwicklung einer Software nachhaltig verbessert. Die Anwendung von Six Sigma in der Softwareentwicklung führt zu einer schnellen Integration und zum Testen der Software, hilft bei der Erstellung einer fehlerfreien Software und trägt zu einer effizienteren Programmverwaltung bei.

Software Six Sigma ist jedoch ein neues Konzept, für das Sie das Training der richtigen Personen benötigen. Ein effizientes Six Sigma-Trainingsprogramm kann Ihnen dabei helfen. Für Online-Six-Sigma-Schulungen zur Software-Entwicklungsumgebung empfehle ich http://www.6sigma.us/ . Ich schlage sie auf der Grundlage der Empfehlung vor, die ich von einer anderen Firma erhalten habe.

Peter
quelle