敏捷开发一千零一问系列之二十九:敏捷如何估算(上)?


问题

估算和度量几乎是敏捷开发及其余开发方法永恒的话题。不过,在进行估算以前,必须理解估算的价值,并以为为估算所付出的工做量值得。编程

请看下面这段对话,它发生在2003年为一家企业作CMMI咨询的时候,涉及到代码行估算(有改动和扩展):ide

甲:假设一段代码是1000行。不估算,写完了一数是1000行;估算,写完一数仍是1000行。为何要进行估算呢?函数

乙:由于若是知道是1000行,就能够按生产率来估计开发时间了。好比若是一天开发100行,那么10天就能开发完成。spa

甲:知道是10天,要花10天;不知道是10天,开发完仍是10天,为何要估呢?开发

乙:若是知道每一个任务的具体天数,就能够均衡每一个人的工做量。it

甲:若是咱们这里都是主动领取任务和跨职能,那么每一个人干完都会本身领取,不存在工做量平衡问题,是否还须要估算?class

乙:……扩展

这段对话代表,在作估算以前,以及在确认用什么方法估算以前,都是应该思考一下:我为何要估算?其余实践也是这样。方法

尤为是敏捷开发的估算会(就是Scrum的计划会),须要整个团队开接近一天的时间,若是不能找到合适的理由,浪费时间的可能性仍是很大的。新手

分析

从1999~2001年左右开始作估算,而2002年以后又开始教别人估算。迄今为止,最经得住质疑、雷打不动的两个估算目的不是作计划、度量、平衡工做量、之类,而是:

1. 报价或早期制定项目计划

若报价是错的,老板极有可能已经承诺了不切实际的价格和目标。一旦这个已经肯定了,那么相应的整体计划其实也已经敲定了。

好比,若一个“原本(惋惜无人知道)”须要100万和10个月的项目被签定为50万和5个月,其实不管团队如何努力,团队的绩效都会化为泡影。即便团队以超人的能力在80万(按工做量计算的成本)和8个月完成了项目,都不会拿到奖金。由于老板整个项目净亏损50万,不管责任在谁,反正钱是没有的。

尽管形成这个结果,责任彷佛在老板据多一些,但要知道老板签定合同以前但是问了两我的:一个是客户,客户回答:“50万,5个月。”;另外一个是团队,团队说:“不知道,由于需求太粗略了”。你是老板你该怎么办?http://

2. 用估算下降工做量

这个说法听起来很奇怪:咱们通常认为有个东西叫任务,咱们只须要拿尺子去测量一下,看看结果就能够了;如今竟然测量过程会改变实际结果

本人在2001年左右获得高人真传,编程水平飙升而代码行数陡降,因此后来经常干一些杀代码的工做。好比:4000行代码、4000个常数、2我的月的工做=》700行代码、76个常数、0.5人月;4000行代码、65个函数,1我的月=》55行代码,1个函数,2小时。后来到一家企业,他们本身刚杀完一个代码,19万行代码,13人×9年=》1.3万行代码,1人×1.5年;估计好好杀杀能进万行之内……

固然下一个问题:当问题发生了,再去看它,会很容易发现有众多浪费的代码和工做量,若是一切尚未发生前,有没有方法发现?

对高手而言,他们总能及时预见到代码和工做量的浪费,并在第一次编写代码的时候就能作到最少代码和最少工做量。但是团队里边仍是有不少新手的,他们没有能力作到这一点,甚至都不知道本身将会浪费90%的代码和工做量,怎么办?

没想到后来是估算帮助解决了这个问题,因此很值得一试。

相关文章
相关标签/搜索