精益开发2.
卡尔加里APLN会议:“估算和规划敏捷银河在线游戏”

大多数软件开发指标都是误导性和适得其反的

测量
软件开发行业具有较差的轨道记录,用于开发和采用有效的软件指标。这是因为所选的大多数指标都与软件开发的真正目标交联 - 提供业务价值,而是专注于软件属性和会计措施。

指标,例如每个开发人员周的代码线,创建的功能点,工作时间或预算消耗的预算出现了重要的措施,但它们具有危险性和反妥策的影响。使用这些度量标准奖励错误的行为,短语“你得到了你衡量的东西”,突出了这个问题。通过跟踪编写的代码行,建立了生成大量代码的可见和无意识激励。在表面上,这看起来很有吸引力,作为一个银河在线游戏的摩擦,它很满意地看到被写的很多代码,但真正需要的是完成的功能,生成的业务价值和客户满意。

生成的代码越多,系统将维护和扩展。对于编写的奖励等奖励,如何添加重构简化等值添加活动?将20,000行代码减少到15,000行是一件好事,但从代码线看起来它看起来像银河在线游戏正在向后。

注意山楂效果
在1920年,埃尔顿梅奥在芝加哥西部电气公司进行了一些工人生产力实验。这些实验包括将各种办公室工作人员置于一个受控环境中,可以改变照明亮度,然后测量它们的生产率。梅奥发现,在新的更明亮的条件下,测试组比在主办公室更高效。在增加照明水平之后,他们的生产率再次上升。 (这些调查结果似乎对西方电股东似乎有前途向办公室销售电气照明系统)。然而,作为最后一个控制实验,Mayo将照明亮度降低到默认级别并最后一次测量的工作效率。尽管调光的条件,所需率又一次上涨,结果是根本不是照明水平,而是人们正在衡量其生产力的事实。

这些实验和广泛接受的现象,通过测量它会影响它的影响,产生了霍桑效应(以西部电气工厂命名)。因为我们可能会影响我们衡量的,所以我们应该非常小心我们明显衡量的是什么。编写的线条编写和工作时间是明显衡量软件银河在线游戏的坏事的重要示例,因为它们可能会导致臃肿的代码并迅速消耗预算。相反,我们应该将山楂效应用于我们自己的优势,并衡量我们愉快地影响的东西。

与特征相比,与剩余功能相比,指标是一个良好度量的示例。它与银河在线游戏的真正目标很简单,有关,将该银河在线游戏完成为客户满意。 “管理设计工厂”的作者唐纳德Reinertsen为公制选择提供了此建议:“首先,他们应该简单,理想的指标在没有额外努力的情况下自我发行,无需在正常业务过程中创建。其次,他们应该是相关的。一个相关性的相关性是指标是否专注于正在衡量人民实际控制的事物。心理学家已经发现,当人们认为他们可以控制他们的东西时,他们更有动力控制它。衡量他们无法控制的东西的人只是引起压力,不满和异化。第三个特征是它们应该专注于领先的指标。滞后指标等会计师可以非常准确地测量,但这些指向已有过去的东西。另一方面,经理人喜欢将来的不完美预测到过去的完美报告。更好地测量测试队列的大小,而不是测量单个测试的处理时间,因为测试队列大小是测试处理中未来延迟的领先指标。“

评分我们的指标
鉴于这些指定指南,让我们评估传统和敏捷度量的表现。

传统指标:
•编写的代码线 - 穷人,不奖励简化,导致代码膨胀
•工作时间 - 穷人,导致长时间,烧坏,缺陷,消费预算
•交付的功能点 - 穷人,与银河在线游戏的真实目标无关,努力产生

这也是公平的,说这三个常见的指标也倒退,对过去的完美看法,在今天的高变化银河在线游戏上,这不是未来的良好指标。通过依赖倒退的观点来运行银河在线游戏是一件像后视镜和燃料表的驾驶汽车。您可以看到您在燃料耗尽之前所遇到的内容以及多久需要更长时间。我们需要展望领先(前瞻性)指标的领先(前瞻性)的调整(转向)。

敏捷度量
•功能已完成经济功能剩余功能 - 良好,简单,自我生成
•客户满意度 - 与真实目标有益,简单,相关
•循环时间 - 良好,简单而且前进

探索敏捷度量
功能已完成的经济功能剩余功能是一个重要的公制。在一天结束时,业务价值是生成功能而不是为客户添加价值的代码行或功能点。 “功能已完成”表示客户(或代理客户)接受的手段不仅是编码和作为功能所测试的单元,不会添加任何业务价值,直到它们确实完成。事实上,没有签名的代码代表精益思想的库存,尚未返回的努力,并应尽量减少。

累积流程图(CFD)是显示功能完成的verses功能剩余的很好的方法。

cfd_sample_1
图1 - 样本累积流程图

图1显示了已完成的功能介绍仍在正在进行的虚构银河在线游戏的功能。蓝色区域代表要构建的所有计划功能,此数字在6月份的400到420上升,而且在8月450年作为银河在线游戏添加到银河在线游戏中。黄色区域绘制了正在进行的工作,绿色区域显示完成的功能总数。 (CFDS比刻录图表有点复杂,但有优势在于与生产率分开说明范围。“剩余剩余努力”图表的平坦点可能是较低生产率或附加范围的结果该银河在线游戏。)

在CFD中,通过完成线的绿色功能的梯度表示进度率。通过评估进度区域中的黄色大小来确定循环时间(要编码和接受的长度)可以确定。 (我将在创建和解释CFD上创建一个单独的帖子,包括下周的少女法律和约束识别。)

客户满意度可以通过“绿色”,“黄色”,“红色”,“红色”满意度在常规会议上从大使用户排名。更好地了解潜在的问题,当仍然是客户仍然是一个模糊的自动感觉而不是在它作为一个真正的问题之后表现出来。如果“绿色”,“黄色”和“红色”过于定义,那么按照他的激进银河在线游戏管理书中的Rob Thomsett推荐的从幸福面对不快乐的面孔绘制的线条可以是有效和更主观的措施。我们需要意识到这种对满足感的侵入性和利益攸关方的个性。如果你不断缠绕一个快乐的人告诉你他们有多满意,那么很快就会陷入困境会减少满足感。此评估需要经常,但不是侵入性和调整,以适应客户工作风格。

循环时间是不完美的,但重要的前瞻性正常的指标。正在进行的工作量,错误的错误数量,从新功能识别到实施的时间允许在银河在线游戏上进行评估和转向。虽然这些队列大小不允许完成完成日期的精确预测,但它们确实允许提供可用于跟踪和规划的最佳见解。

概括
在Mary Poppendieck的演示文稿中,她列出了周期时间,客户满意度,并符合商业案例作为关键的精益指标。我们可以看到这些与敏捷指标非常相似,并遵守Reinertsen的简单,相关和领先的建议。不幸的是许多软件开发银河在线游戏中使用的指标既不是简单的,也不是相关的,也没有领导和因为霍桑效应,他们对适得其反的行为作出贡献。所以,请记住:90%的软件开发指标是无关紧要的,适得其反(和“80%的统计数据弥补!”)

注释

此项对应的评论被关闭。