為了讓非軟體產業的鄉民們對於台灣軟體業有所了解,請容許 Teddy 簡述一下許多軟體專案進行的方式。
專案成員:
- 夢想與天一樣高或瘋狂想賺錢的老闆,或兩者皆是。
- 標準配備為十二英吋口徑加農嘴砲的業務(永遠搞不懂,也不需要懂他在賣什麼東西)。
- 只會畫甘特圖與 WBS 的專案經理(可能擁有 PMP 證照)。
- 該死的工程師(實際上應該要做事的人)。
- 老闆或是業務靠著『冥想』,『政商關係』,『人脈』,以及『眼睛被蛤蠣蓋住的客戶』加持之下,接到專案。至於專案內容是什麼,拜託,這不重要。
- 在老闆一聲令下,決定了專案的時程。訂定時程其實很簡單,依據
專案的大小收錢的多寡,只要遵循 一,三,六,九,十二 這個原則就 OK 了。在這幾個數字中隨便挑幾個用來,一,三 和 六 可能是最常使用的,不管專案要做什麼,反正老闆都認為三個月就應該可以完成。 - 專案經理依照聖上(老闆)的聖旨,以緊迫釘人的方式,督促工程師趕上進度。
- 工程師在還沒搞清楚要做什麼之前,三個月的期限已經到了。
老闆:專案經理,案子進行的如何?
專案經理:進行的很順利,工程師每天都加班到很晚,功能都做的差不多了,只剩下測試還有『幾個』 小 bugs 要修。
老闆:測試就不用了,讓客戶自己測就好了。這樣還需要多久?
專案經理:大概.... 三個月吧!
老闆:給你一個月。
***
鄉民乙:那專案到底多久做完?
Teddy:這不是重點,結案才是重點。
鄉民乙:沒做完也可以結案?
Teddy:當然。
鄉民乙:那要如何結案?
Teddy:這是秘密,講出來會動搖國本。
鄉民乙:(消音)。
***
Teddy 今天想提的,其實是『加班』這件事。每個工程師都知道一件事,就是專案的『時程 (schedule)』就像台鐵的火車時刻表一樣,僅供參考之用。有的專案更誇張,居然膽敢訂出『反攻大陸』時程表。
老闆:給你一個班的兵力,兩年內把大陸給我打下來。
老闆要做夢鄉民們也犯不著吵醒他,但是又要保護自己在夢醒時分不會遭遇不測。因此,雙方發展出一套遊戲規則:『加班』。
老闆 :我的員工好認真,每天加班到 12 點,假日也來上班,統一大業指日可待。
員工:我每天都加班,假日也來加班,東西做不出來也不能怪我。啊不然你是要怎樣。
有了『加班』這個方便法門,老闆不用去花腦筋去提昇管理績效,員工也不用花腦筋去改善做事方法。反正,『這是主流』啊,順著潮流走就對了。(PS:花腦筋是很違反人性的一件事,這也是為什麼周星星的電影那麼多人看,還看了不只一遍。)
***
Agile methods 提倡『每週工作 40 小時』,就像 TPS (Toyota Production System) 提倡『零庫存』是一樣的,目的就是要『把問題暴露出來』。每天加班事情還是做不完,大家已經習以為常,不用花腦筋去想,多方便。那,如果不加班要把事情做完呢,這就難了:
- 我們專案時程根本亂訂,業務搶到一堆案子,做一個賠兩個。
- 我們的 bugs 太多了,所以事情做不完。要準時下班,就要想辦法減少 bugs。
- 程式亂寫,後續根本無法維護,也找不到願意維護的人。
- 工程師看不到未來,無法成長,人員流動太快。
- 沒有自動化測試,改一行程式錯 100 個地方也沒人發現。
要拯救一個快散掉的軟體開發團隊,首先想想,要如何可以讓團隊成員不再加班也可以達成進度。不管這個團隊有多少問題,這都是一個不錯的出發點。
***
友藏內心獨白:Teddy 年輕的時候也加了不少班,案子還是做的一團亂。
有了『加班』這個方便法門,老闆不用去花腦經去提昇管理績效,員工也不用花腦經去改善做事方法。
回覆刪除I can't agree with you more.. 加班其實是老闆最不需要花工夫的管理方式, 但也是最差的一種..
不過當你處於一個快散掉的團隊(A.K.A 快沉的船)時,只需要確定兩件事:
回覆刪除1.確定自己有脫離火箭
2.確定點燃了脫離火箭後有地方可以著陸
其他什麼搶救團隊(A.K.A 沉船)的事都是徒勞,多幹幾次之後就會想去賣雞排(或保險)
Teddy 也很想去過『自己自足』的生活,可惜沒有農地也沒有『深口袋』,只能繼續『搶救雷恩大兵』。不過話說回來,電影中去搶救別人的人,通常沒什麼好下場。
回覆刪除那裡有賣『脫離火箭』?
首先想想,要如何可以讓團隊成員不再加班也可以達成進度
回覆刪除=>在台灣, 我認為這有點複雜, 牽涉到的文化的問題:信任
=>因為你這個專案負責人經過遍訪名師,自己再不眠不休的努力之下, 如果不小心找到方法的話(實踐後證明成功),以本人多年的工作經驗, 台灣的血汗老闆們反而會這樣想:原來不用加班就可以準時完成工作, 那麼你們應再認真點加班, 這樣專案就可以提早完成, 產品也可以提早上市
格主您說的對極了,您那句"給你一個班的兵力,兩年內把大陸給我打下來。"好中肯xDD
回覆刪除