我是Java开发人员,但被要求学习有关应用六西格码(Six Sigma)的目的,以提高我们组织的利润。我已经读到六西格码可以在所有环境中使用,但是我对将其应用于软件开发的细微差别感兴趣。
六西格码的哪些概念可以应用于软件开发环境,我如何有效地应用它们?
我的理解是,六西格码专注于:
- 识别并消除缺陷的根本原因
- 最小化应用制造或业务流程中的差异
在我看来,这些概念可以应用于软件开发,但是可以有效地应用于软件开发生命周期(SDLC)吗?
我是Java开发人员,但被要求学习有关应用六西格码(Six Sigma)的目的,以提高我们组织的利润。我已经读到六西格码可以在所有环境中使用,但是我对将其应用于软件开发的细微差别感兴趣。
六西格码的哪些概念可以应用于软件开发环境,我如何有效地应用它们?
我的理解是,六西格码专注于:
在我看来,这些概念可以应用于软件开发,但是可以有效地应用于软件开发生命周期(SDLC)吗?
Answers:
六个标准差的基本活动由首字母缩写DMAIC捕获,DMAIC代表:定义,测量,分析,改进,控制。您将它们应用于要改进的过程:定义过程,对其进行度量,使用度量结果形成关于任何问题原因的假设,实施改进,并确保过程在统计上处于“控制中”。
与软件相关,该过程就是您的软件开发生命周期(SDLC)或其中的一部分。您可能不会尝试将“六西格码”原理应用于整个SDLC(或者至少不是一开始)。相反,您会寻找您认为有问题的区域(例如,我们的缺陷率太高;回归太多;我们的进度表经常滑倒;开发人员和客户之间的误解太多;等等)。现在让我们说,问题在于每周产生(或至少报告)太多错误。因此,您将定义软件开发/错误创建过程。然后,您将开始收集指标,例如每天编写的代码行数,需求更改的频率,每个工程师在会议上花费的时间,
接下来,查看数据并尝试辨别模式。也许您会注意到工程团队A会按时完成任务,甚至常常提早完成任务!最初,B队在球上似乎情况并非如此-他们至少至少有一半的时间错过了一两天的截止日期,偶尔会延迟一周或更长时间。管理层将B团队视为问题所在,并正在寻求解决之道。但是,仔细查看数据表明,B团队的错误率远低于A团队,而且,由于管理人员认为B团队花了很多钱,因此经常要求B团队解决归因于A团队的错误。维修时间。
所以你会怎么做?使用您收集的数据和执行的分析,您建议进行更改:团队A和团队B将各自修复各自的错误。有了管理层的祝福(并反对A团队的强烈反对),您便实现了这一改变。然后,您继续收集指标,并继续分析数据以查看您的更改是否有所作为。重复此度量/分析/实施周期,直到认为错误率可以接受为止。但是您还没有完成。实际上,您从来没有做过...您需要继续测量错误率并检查错误率是否保持在可接受的范围内,即,从统计上讲它处于“受控”状态。
请注意,除了要改进的流程,所收集的指标种类等之外,这里没有特定于软件开发的内容。用于改善软件开发流程的活动与您进行的活动相同。 d用于小部件制造过程,即使软件开发与小部件制造大不相同。这意味着您需要在为过程设置的各种目标中运用一些常识。
正如@Peter提到的
在软件开发中应用六个西格玛可带来软件开发的持续改进。在软件开发中应用6 sigma可加快软件的集成和测试速度,有助于创建无错误的软件,并有助于更有效的程序管理。
我可以给你一个简单的场景,我在一家航空航天公司工作。有一个团队为飞机设计电路。他们在设计复杂飞机的电路时面临许多困难。因此,即使他们有经验丰富的设计师,他们也错过了截止日期。我分析了他们的工作,发现他们每次都在从头开始开发电路。因此,我设计了一个软件,该软件可以跟踪他们以前设计的电路,每当他们有新飞机时,他们都会使用我的软件,并选择以前设计的具有类似电路的飞机,并对其进行很少的修改。由于这些电路以前是在实际飞机上设计和测试的,因此现在可以将更多的精力放在新电路上。
在这种情况下,我按照SIX Sigma流程收集了有关错误的所有数据,并分析了造成这种情况的原因。然后通过我的软件对其进行改进。
在软件开发中应用六个西格玛称为软件六个西格玛。六西格码(Six Sigma)基本上是为制造而开发的,在制造过程中它可以帮助公司以低成本改善产品的交付,质量。而同样也可以应用于软件开发。
在软件开发中应用六个西格玛可带来软件开发的持续改进。在软件开发中应用6 sigma可加快软件的集成和测试速度,有助于创建无错误的软件,并有助于更有效的程序管理。
但是,软件6 sigma是一个新概念,您需要正确的人员进行培训。高效的6 sigma培训计划可以为您提供帮助。对于软件开发环境的在线六个sigma培训,我建议http://www.6sigma.us/。我根据从另一家公司收到的建议来建议他们。