下星期二,來自總部的大人物就要來視察了。或者你可能要在十個星期後做上市示範。不管怎麼樣,你要面對一個不可改變的日期、一系列充滿野心或是不可能實現的功能集合,而且這些功能必須要在那個日期之前完成。無論是否已經測量過團隊的開發速度,你知道團隊是無法在到期日來臨之時完成所有的功能了。看起來團隊面對著議程,都已經處於恍惚的狀態了。有時,這就是團隊對於“幸福日期”的回應。
圖6.16 令人恍惚的議程
首先,要建立項目的儀表板(dashboard,見第11章),再測量進度,從測量開發速度開始。然後考慮採取如下行動。
- 如果還沒有用迭代式開發,趕緊把剩下的項目分解成迭代吧,迭代時間越短越好。如果在不可改變的到期日前有10個星期的時間,項目最少要分解成5個迭代,最好是10個。每周一個迭代,這可以幫你不斷調整工作的優先順序。迭代的目標是要完成某個功能或一組功能,這包括功能的開發、文檔、測試,以及其他產品對於“完成”的要求。如果上市示範需要線上協助,除非一個功能具備了線上協助,否則它就不算完成。
- 在一個迭代中要集中精力,每日站立會議對此會有所協助。項目團隊的目標必須放在要完成的工作上。當完成足夠多的細分任務之後,就可以得到一個完整的功能或是產品了。不要讓團隊中的人們受其他項目、未來工作或是技術債務(見附錄B)的幹擾,除非技術債務使得當前迭代的工作無法完成。
- 如果還沒有準備好,就按功能逐個實現吧。這樣可能會產生不完整的系統架構,不過不必擔心。如果一個功能需要架構提供某些方面的支援,團隊會實現的。如果功能上不需要,那就沒有人會用它。
通過使用“遊擊隊式敏捷”(guerilla-agile) ,可以消除很多上述的排程遊戲。如果能夠以不超過四周的時間盒來組織項目,按功能逐個實現,隨進度整合,並測量進展速度,專案經理就可以中止這些遊戲。如果總是能以這樣的方式管理,那就可以完全避免絕大多數的排程遊戲。
Guerilla agile 是作者Johanna Rothman在Agile 2007大會上的演講題目,指的是非正式的敏捷實施方式,演講提綱:www.agile2007.org/downloads/handouts/Rothman_383.pdf。——譯註