在台灣很多軟體開發團隊還是採用很傳統的方法來開發軟體(路人甲:Teddy 你不愛台灣喔,一直唱衰台灣... ),PM 不斷逼迫 programmers 要趕上進度,programmers 不斷加班試圖趕上不可能達成的進度表。為了『回報』PM 的壓迫,programmers 很大方的送給 PM 為數可觀的 bugs。這種合作共生的模式,讓大家看起來都有事可作,有班可加,工作『看起來』很辛苦卻又不用花什麼腦筋。搞不好年終時老闆大發慈悲,多賞幾個月的年終或是多發幾張股票,以慰勞員工這一年來的辛勞。
如果軟體開發團隊導入 Scrum,則 PM 的角色消失了,取而代之的只剩下 Product Owner,Scrum Master,以及強調『自我管理』的 Developers。每天工作 8 小時,準時下班。整個 Scrum Team 一團和諧,大家互相幫忙,共同解決問題。每個 sprint 結束,便可立即看到可以 demo 的成果。Product Owner (顧客的代理人)在每個 sprint 開始可以依序對顧客價值的高低來決定實做功能(stories)的先後順序,或是修改需求的內容。團隊的開發流程有 Scrum Master 關照(團隊是否有依循 Scrum 精神來開發軟體),並且將持續改善的精神落實到每個團隊成員身上。慢慢地,bugs 變少了,對於軟體開發進度的『猜測』越來越準,開發的功能和顧客的落差越來越小,每個 sprint 結束時都有一版可以交付給顧客使用的軟體,開發人員的流動率極低,每個開發人員也都有能力可以修改整個系統。
這不就是軟體開發團隊的『大同世界』嗎?
這麼棒的方法,人客啊,你要不要用?
***
鄉民甲:不要。
Teddy:Why?
鄉民甲:原因如下...
- 沒有 PM?那現在的 PM 要吃什麼? 台灣的失業率已經夠高了,為了不讓吳院長下台,PM 第一個跳出來誓死反對。
- 整個軟體開發流程變得這麼透明,哪來的混水摸魚空間。Teddy 你沒聽過『水清則無魚』嗎,Scrum 違反人性啊。
- 我們的 developers 跟牛一樣,都很被動的啦,一定要一個口令一個動作,不可能『自我管理』。要不然到最後一定會亂成一團,變成沒人管理。
- 每個 sprint 都可以修改需求?!那不是被客戶搞死。
- 每天準時下班,這不是討打嗎。老闆會認為我們過的太爽了,不夠努力,操的不夠。不然就是進度訂的太鬆,原本三個月要完成現在改成一個月就要生出來,看你加不加班。
- 聽說 agile methods 都沒在計畫,不寫文件也不畫甘特圖,這樣老闆和客戶都不會同意的啦。
- 現在的模式 run 的好好地(操的是員工又不是我),幹麼改用這個連聽都沒聽過的 Scrum。萬一失敗不是害我被老闆罵,還是少做少做,不做不錯比較保險。
- 什麼,導入 Scrum 還要收費?太貴了啦,我們自己慢慢 try 就好了(自己隨便 try 了一個月後失敗,因此認為 Scrum 不適合公司文化)。
鄉民甲:謝謝再聯絡。
***
涉世未深的 Teddy 曾經認為軟體從業人員總是希望能用最好(至少也要是比較好)的方法來開發軟體。錯,Teddy 又再次大錯特錯。如果大家的開發模式都一樣爛,那這種模式就不叫做爛了,而是叫做『主流』。導入一種和現行作法差異很大的軟體開發新『思維』(流程),是需要很大的『勇氣』的。嗯,越來越能夠體會為什麼 Kent Beck 要把『courage』列為 XP 四個 values 之一了。用的人和推導的人都需要有打死不退的精神才有可能成功。
***
友藏內心獨白:本來這一篇要寫 『從 The Timeless Way of Building 學設計 (4)』,寫著寫著居然變成在談 Scrum。
路過這篇發表一下留言:
回覆刪除1. 老闆懂軟體開發少之又少。
2. 當你一天被SCRUM壓榨到身心俱疲時,準備準時下班,結果老闆(或小人)在背後叮你為何準時下班,搞不好還把你列入黑名單。
SCRUM的好我相信,在國外成功我也相信,但在這種完全不尊重勞工市場的台灣... 吃屎吧!(很難聽但很真實)
To 路過鄉民:
回覆刪除其實台灣還是有一些公司不像你所形容的那麼『惡劣』,大環境固然不好,但是有良心的老闆、主管還是有滴 XD。