敏捷開發一千零一問系列之二十九:敏捷如何估算(上)?


問題

估算和度量幾乎是敏捷開發及其餘開發方法永恆的話題。不過,在進行估算以前,必須理解估算的價值,並以爲爲估算所付出的工做量值得。編程

請看下面這段對話,它發生在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%的代碼和工做量,怎麼辦?

沒想到後來是估算幫助解決了這個問題,因此很值得一試。

相關文章
相關標籤/搜索