Feb. 05 10:26~12:18
某導入CMMI的公司買了一套估算工時的軟體,號稱可以準確地估算每一件工作所需的時間。在某個場合中Teddy巧遇該公司的員工甲…
Teddy:你們這個軟體估出來的工時真的準嗎?
員工甲:ㄟ,怎麼說哩。其實要使用這套軟體,系統分析的工作都必須要已經做好,假畫面也都要畫好。最後只是透過這套系統填入一些參數,例如畫面有多少欄位、需要操作多少資料庫表格等等的資料。
Teddy:在這個前提之下,軟體算出來的工時準確嗎?
員工甲:對我來講,還算準啦(迷之音:我好強)。例如,軟體估某件工作需要做5小時,我大該都可以在時限內把工作做完,有時甚至可以提前完成。但是對於團隊中比較資淺的工程師,就沒有辦法。
Teddy:那做不完怎麼辦?
員工甲:就只好加班啊,要想辦法在估算工時之內把工作做完,不然時程就會延遲了。
Teddy:這樣感覺有點怪怪的。假設這套軟體估出來的工時是需要很有經驗的資深工程師才可以完成的時間(專案經理內心獨白:這是 電腦選的 軟體的預設值喔),可是實際上團隊中並不是每位成員都是資深工程師。但是專案經理不管這些,只管依據軟體所「估算」出來的工時來押schedule。
員工甲:對啊。
Teddy:可是公司付給資深工程師和資淺工程師的薪水並不相同。資淺工程師拿到針對「資深工程師」所估算的時程,無法在預估時程內完成工作就只能自己留下來加班。但是加班又沒有加班費,所以公司就可以用比較少的成本,來完成專案。
員工甲:但是老闆不會這樣想耶,老闆認為:「我付錢給你(資淺工程師)讓你有學習成長的機會,你應該要感謝我才對」。
***
為什麼估不準
因為軟體專案的變數太多,需求、技術、環境、人員都可能改變,所以估不準是常態,估的準才有鬼。這種說法,相信很多老闆、專案經理都無法接受。先來看下面這張圖,所有工作,都有一個預估完成的工時E,經過開發之後,得到一個實際完成的工時A。在老闆或專案經理的心中,總是期望E=A(預估工時等於實際完成工時)。但是,實際完成工時,至少會受到開發人員與開發流程的影響(先假設在做這件工作的時候需求沒有改變)。而要找到好的人(有能力的人),以及養成團隊持續改善的能力,這些都是需要增加成本的投資。
估不準怎麼辦
為了在最省成本的情況下達到E=A的 幻想 目標,很多公司直接把綁手綁腳的「流程」這一塊砍掉,如此一來便可發揮每個員工的「專業能力」與「應變能力」(傳說中的獨立作業),把一個專案交給一位員工負責,或是讓每個人處理一個很特定領域的工作。
經果一番「最佳化」之後,如果還是E < A 怎麼辦?很簡單,此時再加上「加班」與「降低品質」這兩個法寶,就萬無一失了。
員工:我都一天上班18小時,案子做不完也不能怪我啊。
老闆:大家每天都加班,假日也來加班,已經榨不出汁了。時間到了就「出貨吧」,有問題等客戶反應再說。
***
結論:其實沒有人管你真正的工時需要多久,只管「產品要在計畫中的時程出貨」。
***
友藏內心獨白:反攻大陸的時程表,還是有用滴…Orz。
心有戚戚焉~
回覆刪除常是魔鬼藏在需求細節間
被客戶提需求如擠牙膏剝洋蔥般慢慢提
專案CASE預估與執行常是有gap
慢慢磨了~ 總有一天會發亮的~