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)?
quality
process-improvement
Dinesh Kumar
la source
la source
Réponses:
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.
la source
Comme mentionné par @Peter
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.
la source
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.
la source