Comment puis-je appliquer Six Sigma dans un environnement de développement logiciel?

14

Je suis développeur Java, mais on m'a demandé d'apprendre à appliquer Six Sigma dans le but d'augmenter les bénéfices de notre organisation. J'ai lu que Six Sigma peut être appliqué dans tous les environnements, mais je m'intéresse aux nuances de son application au développement logiciel.

Quels concepts de Six Sigma peuvent être appliqués à un environnement de développement logiciel et comment puis-je les appliquer efficacement?

Ma compréhension est que Six Sigma se concentre sur:

  • identifier et éliminer les causes profondes des défauts
  • minimiser la variabilité dans l'application des processus de fabrication ou d'affaires

Il me semble que ces concepts pourraient être appliqués au développement de logiciels, mais cela peut-il être appliqué efficacement à un cycle de vie de développement logiciel (SDLC)?

Dinesh Kumar
la source
11
Où avez-vous trouvé que six-sigma est "adapté à tous les environnements"? Il a été développé très spécifiquement pour la fabrication à grande échelle d'objets physiques - pas de logiciels.
Angelo
5
Je rouvre cette question car il n'est pas nécessaire de la déplacer. La gestion de projets logiciels est abordée ici, mais Six Sigma est plus étroitement liée à l'amélioration de la qualité et des processus, qui sont également abordées ici. De plus, de nombreux travaux discutent de l'application de Six Sigma aux projets logiciels et à l'amélioration des processus logiciels (y compris la combinaison de Six Sigma et CMMI et Six Sigma et des méthodes agiles). Appliquer Six Sigma au logiciel est différent de l'appliquer à un environnement de fabrication, ce qui fait que cette question nécessite l'expertise d'un développeur de logiciels.
Thomas Owens
5
@Angelo Bien que Six Sigma ait été initialement conçu pour un environnement de fabrication, il y a eu beaucoup de travail pour l'appliquer au développement de logiciels. La recherche d'expressions telles que «agile six sigma» et «cmmi six sigma» fait ressortir beaucoup de travail dans le domaine.
Thomas Owens
5
J'ai dû suivre les six premières formations sigma et pendant que mon entreprise les payait, j'aurais aimé pouvoir récupérer mon temps. L'instructeur était désemparé, les exercices étaient de petits jeux amusants mais finalement inutiles. Six sigma concerne les statistiques et s'applique aux tâches stupides, répétitives et bien définies, le type de tâches qui sont souvent externalisées à des robots. Écrire un bon logiciel est un processus créatif. Six sigma aide autant les bons ingénieurs logiciels que les cours de calcul aideraient Tom Cruise à agir. Le simple fait que vous ayez posé cette question vous empêche de travailler avec moi ou mes collègues.
Job
4
@ThomasOwens c'est NARQ, pas hors sujet. C'est à moitié sondage / à moitié LMGTFU
Jimmy Hoffa

Réponses:

15

Les activités de base de Six Sigma sont capturées par l'acronyme DMAIC , qui signifie: Définir, Mesurer, Analyser, Améliorer, Contrôler . Vous les appliquez au processus que vous souhaitez améliorer: définissez le processus, mesurez-le, utilisez les mesures pour formuler des hypothèses sur les causes des problèmes, implémentez des améliorations et assurez-vous que le processus reste statistiquement "sous contrôle".

En ce qui concerne les logiciels, le processus est votre cycle de vie de développement logiciel (SDLC) ou une partie de celui-ci. Vous n'essaieriez probablement pas d'appliquer les principes Six Sigma à l'ensemble du SDLC (ou du moins, pas au départ). Au lieu de cela, vous recherchez des domaines où vous pensez avoir un problème (par exemple, notre taux de défauts est trop élevé; trop de régressions; notre calendrier glisse trop souvent; trop de malentendus entre les développeurs et le client; etc.). Disons pour l'instant que le problème est que trop de bugs sont produits (ou du moins signalés) chaque semaine. Vous définiriez donc le processus de développement logiciel / création de bogues. Ensuite, vous commenceriez à collecter des mesures telles que le nombre de lignes de code écrites chaque jour, la fréquence des modifications des exigences, le nombre d'heures que chaque ingénieur passe en réunion,

Ensuite, vous regardez les données et essayez de discerner les modèles. Peut-être que vous remarquez que l'équipe d'ingénierie A atteint chaque échéance qui leur est impartie et termine même souvent les tâches plus tôt! Initialement, l'équipe B ne semble pas tout à fait ainsi sur le ballon - ils manquent leurs délais d'un jour ou deux au moins la moitié du temps, et sont parfois en retard d'une semaine ou plus. La direction voit l'équipe B comme un problème et cherche à faire bouger les choses. Cependant, un examen plus approfondi des données montre que le taux de bogues de l'équipe B est beaucoup plus faible que celui de l'équipe A, et de plus, il est souvent demandé à l'équipe B de corriger les bogues attribuables à l'équipe A parce que la direction estime que l'équipe A est précieuse pour dépenser beaucoup. de temps sur la maintenance.

Donc que fais-tu? En utilisant les données que vous avez collectées et l'analyse que vous avez effectuée, vous proposez un changement: l'équipe A et l'équipe B corrigeront chacune leurs propres bugs. Avec la bénédiction de la direction (et contre l'opposition véhémente de l'équipe A), vous mettez en œuvre ce changement. Ensuite, vous continuez à collecter des mesures et vous continuez d'analyser les données pour voir si votre modification a fait une différence. Répétez ce cycle de mesure / analyse / mise en œuvre jusqu'à ce que le taux de bogues soit jugé acceptable. Mais vous n'avez pas encore fini. En fait, vous n'avez jamais fini ... vous devez continuer à mesurer le taux de bogues et vérifier que le taux de bogues reste dans la plage acceptable, c'est-à-dire qu'il est statistiquement "sous contrôle".

Notez qu'il n'y a rien ici qui soit spécifique au développement de logiciels autres que les détails du processus que vous améliorez, les types de mesures que vous collectez, etc. Les activités que vous utilisez pour améliorer un processus de développement de logiciels sont les mêmes que celles que vous '' d utiliser pour un processus de fabrication de widgets, même si le développement de logiciels est très différent de la fabrication de widgets. Tout cela signifie que vous devez appliquer un certain bon sens dans les types d'objectifs que vous définissez pour votre processus.

Caleb
la source
1
En fait, la méthodologie Six Sigma plus liée au développement logiciel est DMADI (Définir, Mesurer, Analyser, Concevoir, Implémenter) sauf que nous répétons MADI dans le développement logiciel. Les gens avec ces «ceintures» l'appellent Lean Six Sigma DMADI mais je l'appelle Agile.
Tae-Sung Shin
Il est important de distinguer entre l'amélioration du processus de développement lui-même et l'amélioration du logiciel en cours de développement. J'ai décrit le premier, et compte tenu de la mention de l'application de Six Sigma au SDLC, je pense que c'est ce que le PO demandait; @ Le commentaire de Tae-SungShin semble viser davantage ce dernier, et je conviens que le processus d'amélioration du logiciel lui-même est un peu différent. Beaucoup a été écrit sur les méthodes de développement logiciel, donc je n'essaierai pas de le faire ici.
Caleb
-3

Comme mentionné par @Peter

L'application de six sigma dans le développement de logiciels crée une amélioration durable du développement d'un logiciel. L'application de six sigma dans le développement de logiciels entraîne une intégration et des tests rapides du logiciel, aide à créer un logiciel sans bogue et aide à une gestion de programme plus efficace.

Je peux vous donner un scénario simple, je travaillais pour une entreprise aérospatiale. Il y a une équipe qui conçoit des circuits pour les avions. Ils rencontraient beaucoup de difficultés dans la conception de circuits pour des avions complexes. Pour cette raison, il leur manquait des délais, même s'ils avaient des designers expérimentés. J'ai analysé leur travail et j'ai remarqué qu'ils développaient des circuits à partir de zéro à chaque fois. J'ai donc conçu un logiciel qui gardera une trace de leurs circuits précédemment conçus et chaque fois qu'ils auront de nouveaux avions, ils utiliseront mon logiciel et choisiront les avions précédemment conçus qui ont des circuits similaires et les utiliseront avec peu de modifications. Étant donné que ces circuits sont précédemment conçus et testés sur des avions réels, ils peuvent désormais se concentrer davantage sur les nouveaux circuits.

Ceci est juste un scénario dans lequel j'ai suivi le processus SIX Sigma pour collecter toutes les données sur leurs erreurs et analysé les raisons de cela. Améliorez-les ensuite avec mon logiciel.

rajkumarts
la source
4
Ce n'est pas que six sigma soit génial; c'est que le gestionnaire qui a laissé ses employés concevoir des circuits à partir de zéro aurait dû être licencié.
Job
2
lol .. mais le même manager a demandé à suivre la procédure six sigma quand j'ai proposé ce logiciel ..
rajkumarts
-4

L'application de six sigma au développement logiciel est appelée logiciel six sigma. Six Sigma est essentiellement développé pour la fabrication, dans le processus de fabrication, il aide les entreprises à améliorer la livraison, la qualité du produit à faible coût. Alors qu'il en va de même pour le développement logiciel.

L'application de six sigma dans le développement de logiciels crée une amélioration durable du développement d'un logiciel. L'application de six sigma dans le développement de logiciels entraîne une intégration et des tests rapides du logiciel, aide à créer un logiciel sans bogue et aide à une gestion de programme plus efficace.

Cependant, le logiciel six sigma étant un nouveau concept, vous avez besoin de la formation de bonnes personnes. Un programme de formation efficace de six sigma peut vous aider ici. Pour une formation en ligne de six sigma sur l'environnement de développement logiciel, je suggère http://www.6sigma.us/ . Je les suggère en fonction de la recommandation que j'ai reçue d'une autre entreprise.

Peter
la source