當我們談論完工時我們在談論什麼
星期一的專案進度會議快要完結。Development Manager, Doris 急不及待回去處理自己枱頭上那疊應徵者履歷;Lead Developer, Liz 心想原本要和自己pair programming 的Jo 應該已經自己一個人開始寫code 了;Product Manager, Peter 數小時後就要坐上飛往馬德里的航班;不過Pat ……Project Manager, Pat 對議程可是很執著的。
「所以,」Doris 總結道「開發團隊現已可以每星期出一次產品發佈。就等Pat 確認已經通知我們的客戶,我們便可以實行每週發佈──即是說你可以讓客戶更快用到新功能和程式修正。」
「事實上,」Liz 插嘴說「新流程容許我們每日發佈甚至按『Story』發佈。我們沒有必要再每隔一段日子集合多項程式更新才一次過發佈。」
「對、對,非常好,」Pat 開始說「可是客戶跟我們簽訂的發展大綱和發佈日程原訂是兩星期發佈一次的。我正向他們爭取每週發佈,部分人也同意了。不過刻下我們有個更重要的事項要商討……」
「Come on, Pat」Peter 打斷她「能夠更快要到新功能和程式修正,他們大部分人高興也來不及吧?」
「也許是這樣,但我們得按程序辦事。他們很多都有自己的change management group ,發佈太頻密會對他們造成問題的。事實上我知道有個跨國企業的Change Manager 寧願我們轉回去每月發佈。但正如我所講,我們有個更大的事項還未商討。」
Doris 和Liz 交換了一個了然於心的表情,她們知道接下來要發生甚麼。
Pat 板起臉來,「什麼時候,各位先生女士,我們什麼時候才可以完工?」
於是乎那個歴史悠久的戲碼又再上演……
「你說『完工』準確來說是指什麼?」Doris 問。
「你非常清楚我說的完工是什麼意思,Doris,我們都合作多久了?」Pat 頓一頓道「今天是3月14日,專案計劃原訂1月31日完成的,即是說我們遲了差不多兩個月了。幸好我預留了四個星期的緩衝期但到了現在我們要逾期了而我得向管理層提交事故報告並且要請求延期。他們首先就會問:還要花多久?你們什麼時候才完工?」
「等等,」Peter 被惹惱了「你同意過利用緩衝期的,本來我們在1月28日發佈時就可說是完工了,但是是你自己同意我們應該繼續的,我清清楚楚記得你說你在backlog 裡看到「增加營利的良機」而且每個人都會覺得緩衝期被花掉是當然的。」
「也許是這樣,Peter ,但我們需要劃一條分界線,不可能這樣子無止境繼續下去。」
「你說不能繼續下去是什麼意思?」Liz 緊張地問「你是不是知道些我們不知道的事?」
「Liz,我和所有高層都私交甚篤,我可以向你們保證這團隊沒有任何人會被裁員 。」Doris 為人勤懇,她知道Liz 被上一個僱主在聖誕佳節毫無預兆地裁走,至今仍有心理陰影。
「其實技術上來說,Doris ,這個專案完結後整隊人都會等待委派。不過我預期所有人都會立刻投入到緊接其後的下一個專案。」Pat 不像Doris 那樣能夠察言觀色「因此我必須再問一次:你們何時才能完工?」
Liz 對他們的發佈流程充滿信心:「如果你那麼想完工的話我們可以星期四完工。下一次的發佈訂在下午三時,我們可以說那天就是完成日。事實上,你想的話我們大可以說三日前就已經完工,現在就開始下一階段。」
「Pat ,」Peter 開始說「這個專案有這個專案的產品功能,下個專案有下個專案的產品功能,這些功能都是同一個產品的,坦白講,我不在乎你要如何劃這條分界線。所有工作都是我負責的,而客戶只要收到他們要的功能,根本不會在乎這些。」
「也許是這樣,但我們得按程序辦事,而這不是為了趕工期而是……」
「不是趕工期?一分鐘前你才跟我們說要趕工期!」正如大部分的編程員和測試員,Liz 覺得Pat 令人煩厭。
「工期確實重要,Liz ,因為越遲完工成本就越高,而管理層已經指示我們要減省成本了。當新專案開始就會有新一個成本代號和新一個預算。所以,什時候,拜託,什時間才會完工?」
正當Doris 要指出不管用哪個成本代號都是花同一筆錢時,Liz 先插話。
「我們還剩下多少預算?我們就繼續直至預算用盡吧。」
「Liz,我重申,我們要節省成本,那樣做節省不到成本的。」
「那我們何不將餘下要開發的功能放到下一個專案?」
「Liz ,這是不道德的!這會令下一個專案的範圍未開始就蔓延失控,增加成本並且冒不能如期完工的風險。」
「但Pat ,下一個專案不論什麼完工日期都可以做到,因為會實行每週發佈。當工期快到或預算用盡時,我們就算完工。分別只是Peter 如何排工作的優先次序。」
當提到自己時Peter 覺得有必要插話「Pat ,認真的,你說的『完工』是指什麼?如果是工期的話那麽Liz 是對的。」
「Peter ,這個專案有承諾要交付什麼項目的。」
「對,Pat,而且我們都交付了。」
「不,我們沒有。」
「你在說那些McAnderson 的顧問們放到原初業務需求文件的產品功能嗎?那些從未被加進『應有清單』而在十二個月前當我被委派時就剔除的那些?」
「不,不是那些,不過我頗清楚Pira 系統中見到那個,你們叫什麼來着,待辦事項的backlog。」
「事實上Pira 已經許久沒更新了,我們沒在用。」Liz 啐道。
「你應該要更新的,職責文件中有提到這是你的工作,我記得當中特別提到Team Leader 有責任……」
「OK 、OK ,確是有待辦事項」Peter 同意說「不過……都些可有可無的事項,我們是這幾天才從滿是垃圾的『應有清單』中提升到『須有清單』的。 我寧可將這些事項剔走,畢竟下一專案開始時還有更值得做的事。」
「我亦必需指出」Peter 續道「所有仍在待辦清單的事項都是專案開始後才追加的,即是你所謂的『專案範圍蔓延』。若然你看一下McAnderson 最初擬訂的事項──而我又未刪去的話──我們六個月前就完工了。」
「Peter,決定什麼事項應該加進來什麼應該剔走並不是我的工作,那是你和CEO Harry 決定的。我的工作是確保專案完成。那我再問一次,你們到底什麼時候能完工?」
不過Doris 也加入戰線了:「事實上,Pat,管理開發是我的工作,而我必須再向你問清楚,你說的完工到底是指什麼?」
「你不是指工期,因為你已經將專案延期而且可以再請求延期。另一方面我們可以這個星期四完工也可以上星期四就完工。日期根本無關重要。」
「你也不是指人員何時會離任,因為沒有人會被裁走,而且第二天都會留下來在同一間辦公室、寫一個程式、做同一件產品。」
「而你也不是指專案範圍──那個『我們要造些什麼』,因為McAnderson 給我們的範圍一開始就不對,所有他們要求做的,不是已經完成就是已被取消。Peter 很樂意將餘下的事項放到下一個專案,或更樂意將它們通通剔走。」
「又如果,但願不是,我們是尋求產值最大化的話,那我們就應該立刻將這個專案餘下的所有事項通通排除然後現在就開始下一個專案,因為所有餘下的事項都不會比下一個專案八成的事項更有價值。」
「所以Pat ,在你再問任何人「何時會完工」之前,可以請你先解釋清楚你說的「完工」究竟是什麼意思嗎?」
(譯自 What do you mean… Done? 作者 Allan Kelly )
Originally published at cyl-notes.blogspot.com on March 29, 2017.