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?
quality
process-improvement
Dinesh Kumar
quelle
quelle
Antworten:
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.
quelle
Wie von @Peter erwähnt
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.
quelle
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.
quelle