如何在软件开发环境中应用Six Sigma?


14

我是Java开发人员,但被要求学习有关应用六西格码(Six Sigma)的目的,以提高我们组织的利润。我已经读到六西格码可以在所有环境中使用,但是我对将其应用于软件开发的细微差别感兴趣。

六西格码的哪些概念可以应用于软件开发环境,我如何有效地应用它们?

我的理解是,六西格码专注于:

  • 识别并消除缺陷的根本原因
  • 最小化应用制造或业务流程中的差异

在我看来,这些概念可以应用于软件开发,但是可以有效地应用于软件开发生命周期(SDLC)吗?


11
您在哪里发现六西格码“适合所有环境”?它是专为大量制造物理对象而不是软件而开发的。
安杰洛2012年

5
我正在重新提出这个问题,因为没有必要移动它。软件项目的管理是此处的主题,但“六西格码”与质量和流程改进之间的关系更为密切,这也是此处的主题。此外,还有大量工作讨论六西格码在软件项目中的应用和软件流程改进(包括将六西格码和CMMI以及六西格码和敏捷方法结合在一起)。在软件中应用六西格码(Sigma)不同于在制造环境中应用六西格玛,这使得该问题需要软件开发人员的专业知识。
Thomas Owens

5
@Angelo尽管六西格码(Six Sigma)最初是为制造环境设计的,但在将其应用于软件开发方面还有很多工作要做。搜索诸如“敏捷的六个西格玛”和“ cmmi六个西格玛”之类的词组会在该地区带来很多工作。
Thomas Owens

5
我必须参加前六个sigma培训,而我的公司却为此付费,但我希望自己能重新找回自己的时间。讲师毫无头绪,练习虽然有趣,但小游戏却毫无意义。六个标准差与统计有关,适用于笨拙的,重复的,定义明确的任务,这类任务通常外包给机器人。编写好的软件是一个创造性的过程。六个西格玛可以帮助优秀的软件工程师,就像微积分的讲座可以帮助汤姆·克鲁斯行动一样。您问这个问题的事实使您无法与我或我的同事一起工作。
Job

4
@ThomasOwens这是NARQ,不是题外话。它是半民意测/半LMGTFU
吉米·霍法

Answers:


15

六个标准差的基本活动由首字母缩写DMAIC捕获,DMAIC代表:定义,测量,分析,改进,控制。您将它们应用于要改进的过程:定义过程,对其进行度量,使用度量结果形成关于任何问题原因的假设,实施改进,并确保过程在统计上处于“控制中”。

与软件相关,该过程就是您的软件开发生命周期(SDLC)或其中的一部分。您可能不会尝试将“六西格码”原理应用于整个SDLC(或者至少不是一开始)。相反,您会寻找您认为有问题的区域(例如,我们的缺陷率太高;回归太多;我们的进度表经常滑倒;开发人员和客户之间的误解太多;等等)。现在让我们说,问题在于每周产生(或至少报告)太多错误。因此,您将定义软件开发/错误创建过程。然后,您将开始收集指标,例如每天编写的代码行数,需求更改的频率,每个工程师在会议上花费的时间,

接下来,查看数据并尝试辨别模式。也许您会注意到工程团队A会按时完成任务,甚至常常提早完成任务!最初,B队在球上似乎情况并非如此-他们至少至少有一半的时间错过了一两天的截止日期,偶尔会延迟一周或更长时间。管理层将B团队视为问题所在,并正在寻求解决之道。但是,仔细查看数据表明,B团队的错误率远低于A团队,而且,由于管理人员认为B团队花了很多钱,因此经常要求B团队解决归因于A团队的错误。维修时间。

所以你会怎么做?使用您收集的数据和执行的分析,您建议进行更改:团队A和团队B将各自修复各自的错误。有了管理层的祝福(并反对A团队的强烈反对),您便实现了这一改变。然后,您继续收集指标,并继续分析数据以查看您的更改是否有所作为。重复此度量/分析/实施周期,直到认为错误率可以接受为止。但是您还没有完成。实际上,您从来没有做过...您需要继续测量错误率并检查错误率是否保持在可接受的范围内,即,从统计上讲它处于“受控”状态。

请注意,除了要改进的流程,所收集的指标种类等之外,这里没有特定于软件开发的内容。用于改善软件开发流程的活动与您进行的活动相同。 d用于小部件制造过程,即使软件开发与小部件制造大不相同。这意味着您需要在为过程设置的各种目标中运用一些常识。


1
实际上,与软件开发更相关的六西格玛方法是DMADI(定义,度量,分析,设计,实现),只是我们在软件开发中重复了MADI。那些拥有“皮带”的人称其为精益六西格玛DMADI,但我称之为敏捷。
Tae-Sung Shin

在改进开发过程本身和改进正在开发的软件之间进行区分很重要。我描述了前者,并提到了将六个西格玛应用于SDLC,我认为这就是OP所要的;@ Tae-SungShin的评论似乎更多地针对后者,我同意改善软件本身的过程有些不同。关于软件开发方法的文章很多,所以在这里我不会尝试这样做。
卡勒布(Caleb)

-3

正如@Peter提到的

在软件开发中应用六个西格玛可带来软件开发的持续改进。在软件开发中应用6 sigma可加快软件的集成和测试速度,有助于创建无错误的软件,并有助于更有效的程序管理。

我可以给你一个简单的场景,我在一家航空航天公司工作。有一个团队为飞机设计电路。他们在设计复杂飞机的电路时面临许多困难。因此,即使他们有经验丰富的设计师,他们也错过了截止日期。我分析了他们的工作,发现他们每次都在从头开始开发电路。因此,我设计了一个软件,该软件可以跟踪他们以前设计的电路,每当他们有新飞机时,他们都会使用我的软件,并选择以前设计的具有类似电路的飞机,并对其进行很少的修改。由于这些电路以前是在实际飞机上设计和测试的,因此现在可以将更多的精力放在新电路上。

在这种情况下,我按照SIX Sigma流程收集了有关错误的所有数据,并分析了造成这种情况的原因。然后通过我的软件对其进行改进。


4
不是说六个西格玛就好。就是那个让他的员工从头开始设计电路的经理应该被解雇了。
Job

2
大声笑..但当我提出此软件时,同一位经理要求遵循六个西格玛程序..
rajkumarts

-4

在软件开发中应用六个西格玛称为软件六个西格玛。六西格码(Six Sigma)基本上是为制造而开发的,在制造过程中它可以帮助公司以低成本改善产品的交付,质量。而同样也可以应用于软件开发。

在软件开发中应用六个西格玛可带来软件开发的持续改进。在软件开发中应用6 sigma可加快软件的集成和测试速度,有助于创建无错误的软件,并有助于更有效的程序管理。

但是,软件6 sigma是一个新概念,您需要正确的人员进行培训。高效的6 sigma培训计划可以为您提供帮助。对于软件开发环境的在线六个sigma培训,我建议http://www.6sigma.us/。我根据从另一家公司收到的建议来建议他们。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.