是否可以将六西格玛质量管理与软件开发流程结合使用?
你的经历是什么?
如果您使用像Scrum或XP这样的敏捷方法,那么六西格玛是不是太官僚了?
我在谈论整个软件开发的质量管理,因为需求收集直到部署和运营,而不仅仅是构建阶段(TDD和单元测试等工具或多或少已经建立为最佳实践)。
答案 0 :(得分:12)
六西格玛与可重复的过程配合良好。由此,我指的是始终产生(或应该产生)相同输出的纯过程。鉴于软件开发很少产生相同的输出,SS并不真正适用,IMO。这是因为软件开发更多的是一种实践,而不是一个过程。
话虽如此,阅读它并试图了解哪些顶级创意可以用于软件开发并没有什么坏处......
答案 1 :(得分:11)
如果我理解正确,六西格玛依赖于有意义的,可衡量的指标。你会是什么? KLOC?课程检入您的档案?敏捷速度?
六西格玛在车间工作得很好,但我不认为软件开发足够“像小工具”这样做。
答案 2 :(得分:7)
只要您不开发新产品,这绝对是可能的。
请按照以下步骤操作。
1)创建应用程序的无错版本。这可能需要相当多的努力,因此最好选择范围微不足道的应用程序 2)从头开始重新创建应用程序,并将迭代与步骤1中创建的理想值进行比较,以创建度量标准 3)调整您的过程,以便在下一次迭代时在度量旁边实现更紧密的对齐 4)转到第2步。
什么?您不是在商店中反复创建相同的应用程序?嗯,我不认为六西格玛在这种情况下会有很多用处。
答案 3 :(得分:4)
要使六西格玛有用,您需要轻松比较的指标或程序。
软件过于抽象,无法获得所需的指标类型。
也许一个好问题就是
是否有适用于生产和制造业的类似于六西格玛的软件开发质量控制工具?
答案 4 :(得分:3)
我使用了各种方法,六西格玛,敏捷等。真正的软件开发质量管理的成功取决于一个关键的事情。团队的质疑。这一切归结为此。一个好的团队可以在一个可怕的方法中工作并使其工作。这就是为什么他们很好。流程非常重要,您可以提高流程效率,但这一切都取决于团队。
答案 5 :(得分:2)
软件开发的某些部分不适合,因为它们不提供正常分布结果的过程。另一方面,关注风险,价值和做正确的事情是必不可少的
[edit]看一下Cynefin模型(在维基百科上),了解为什么大部分软件开发都在复杂领域。
答案 6 :(得分:2)
六西格玛非常适合那些积压大量离散工作项目的维护团队。
六西格玛设计有一些可用于构建新软件产品的元素。
由于大多数软件是业务流程的推动者,并且该业务流程可能是一个高度重复的流程,其中可以应用六西格玛的统计工具,因此六西格玛可以在确定最高价值的软件功能方面发挥作用是为了提供最大的商业价值。它可以消除特征优先级决策过程中的情绪。如果您的环境中产品经理/利益相关者大声喊叫或者最有说服力地建立了自己的东西,那么可以通过在优先级排序过程中进行一些合理的测量来应用六西格玛来修复开发过程中不健康的方面。
答案 7 :(得分:0)
我不确定会关注你。
SixSigma是一种管理流程变体的方法,它使用数据和统计分析来衡量和改善公司的运营绩效。
因此,请选择任何流程(SDP或其他流程),选择要衡量的内容,确定问题,规划解决方案,评估影响。
我参与的SixSigma项目都是相当横向的,与软件生命周期无关。
通过横向,我的意思是横向于软件开发的“产品设计 - 开发 - 构建 - 交付”过程。
例如,在一个环境中,我们需要在我们的内部生产平台上生成一组程序,我们的大多数SixSigma项目都围绕 Operational Architecture ,即“制作”操作执行环境“(如何设置服务器和网络以停止,更新,安装和启动一组可执行文件,以及许多项目,每个项目都有自己的SDP)。
这是一个横向于您想要的任何SDP的概念,因为最终,所有这些“开发过程”只有一个共同的目标:将您的软件投入生产。
要衡量的标准是准确且可重复的,从管理合并最终可执行文件所需的合并到合并错误的数量到部署错误的时间(由于标签不正确或发布说明错误)。 / p>
所有这些失误都是在发布后发布的,并且目标是减少它们 一个副作用是确定一个不充分的merge workflow工作流程,一旦修复,我们就可以大大减少最终交付中的错误。
答案 8 :(得分:0)
我在一个教授六西格玛和其他制造效率技术的课程中有一位教授,在告诉他我在软件开发领域后,他提出了这本书Lean Software Development。不幸的是,我还没有阅读它,但它似乎涉及将六西格玛和精益制造的一些适用的概念应用于生产软件(如消除浪费,减少缺陷,持续改进)。 Here's一篇描述精益软件开发的简短白皮书。
答案 9 :(得分:0)
我已将六西格玛用于特定的性能测试项目,该项目以特定的可测量问题陈述开始,并以可再次衡量的对策进行结束。 DMAIC有助于性能调整,原因分析,实验设计等工具和技术也是如此。