這篇文章的原文在這裡(原文連結)(下文不是全譯,也不是部分譯,我只是把其總結,有我自己的發揮,但是原意大致不變),這篇文章完全是在調侃Scrum的,作者第一段就是一個免責宣告,其說他是Scrum和其它敏捷方法的big fan, 他也認為Scrum 100% 對軟體開發可行。
作者使用Scrum 5年了,也公開作過幾次敏捷的分享會。他覺得寫這篇文章只是為了好玩,因為他們帶上Edward de Bono 的 black hat (黑禮帽 – 是6個思考之帽中的一種——負面思考,思考事物的負面因素,這樣才知道:它會起作用嗎?缺點是什麼?它有什麼問題?為什麼不能做。)
因為本人經常站在Agile的風口浪尖,所以我有必要也來一個“免責宣告”。Shit!其實我想來的是“不免責宣告” ——下文中的九大原因是對中國的各種Agile實踐者諮詢師不注重實際只重方法論的批判,本人必然要和那種只以流程方法論為中心的軟體開發鬥爭到底。其實我沒有那麼囂張,我只是想說,下面的這些東西相當的現實。希望各種Scrum的實踐者們認識到這些問題,從而可以讓你們明白軟體開發中的人有重要。
Reason 1: Scrum 的基石是相信人。創造一個安全的環境,這樣每個人都能相互學習,相互直言。但是,這是不行的,這世上有很多人並不關心這些,而還政治和競爭到處都是,辦公室裡無小事,你和別人交心,你相信他們,最終受傷的你自己。你真的以為那裡有空間讓你可以去犯錯,去冒險嗎?別天真了!你啊,too young, too simple, sometimes naive!
Reason 2: Scrum認為只要給員工足夠多的自由員工就能做得最好。這該死是理論是基於什麼玩意?不可能,人的天性是懶惰的,他們才不會把事做好的,他們只會做相應報酬的工作量,基本還達不到,認不想混日子啊。尤其是和經理比起來,誰不想能儘快地成為經理和架構師啊,因為那樣他們就可以即不幹活,又掙得多。另外,你給他們自由,他們就會發現,他們會只會做他們感興趣的事,要麼聊QQ,要麼打遊戲,反正不幹正事。直到你催了,他們才動一動。
Reason 3: 因為前面的原因,所以,我們仍然要把一個PM放在Scrum團隊上頂上做管理,這樣才會有產出。於是,PM給團隊分配任何,管得細枝末節,事無鉅細,天天讓你做進度彙報,等等。直至把團隊拖垮。
Reason 4:Scrum 只不過是一個流程。這世上有太多的流程,尤其是那那些操CMMi的公司,幾乎所有玩CMMi流程的公司,我看到的是員工們那一副副苦逼的臉。所以,Scrum的流程同樣會這樣。因為這些都不是開發團隊自發的,而是上面管你喜歡不喜歡按下去的。 Scrum 根本不可能增進你的軟體質量和技術,只能是優秀的人才!使用Scrum的公司都是些吝嗇鬼,他們不能花大錢招優秀的人,他們妄圖使用Scrum這種東西讓現有的這些謙價勞動力發揮更大的生產率。
Reason 5:Scrum delivers ‘business value’。不是這樣的,實際上,Scrum不可能。這有很多原因。真解了解業務的那幫人根本不可能加入專案團隊,那些人誰***願意和苦逼的技術人員加班啊。 那些人喜歡和我們的使用者吃吃喝喝,花天酒地的,根本不會和你們那些奇怪的東西(如:backlog)或是那堆ugly的內向古怪的技術人員打交道,更別說什麼技術了。所以,你的團隊就像一個客服團隊一樣疲於奔命。
Reason 6: 一個敏捷的團隊應該是持續進步的。這就是為什麼Scrum總是在問什麼幹得好,什麼需要改進,並定義行動方案。你真的以為員工想進步嗎?讓他們不得不去想想怎麼進步,然後他們還不得不去執行行動方案。別天真了,人的天性是不喜歡改變的,人的天性是習慣於一些按部就般的事的,也許那樣做令人討厭,但是人家還是能幹出來。如果你逼著人家改變,你就是在壓迫人家,人家自然會反抗。
Reason 7: Product Owner 專注於 ‘what’ 和 ‘why’ 的問題,開發團隊決定 ‘how’。很不錯的分工,於是可以造就一個即高速有重質量的團隊。然後,這根本不行。你的Product Owner馬上就想要這個功能,他們才不管你的軟體開發的技術難題,人家只要快,要你meet deadline,要你給我們重要的客戶做出承諾。另外,你千萬不要以為你們可以哄走這個初級的product owner,因為他的後臺直接高層管理。你作為一個程式設計師可能只是其個小部門的一個小嘍囉,或者只是外包公司,你覺得可能嗎?你覺得建立信任可能嗎?
Reason 8: 軟體質量和生產率成正比。也就是說,質量越高,生產率越高。如果質量不高,你開發效率就會低下,但是誰管呢?我們朝九晚五的上班,質量好了也是做8小時,質量差了也是做8小時,無所為嘛。另外,我們的 project manager (或者是Scrum master!) 總是會批評我們沒有按計劃完成。所以,這根本 不可能。
Reason 9: “是的,如果我們只做需要的功能,那麼我們就會最低的成本,對嗎?”,為什麼這世上總是會有這些幼稚的人?這種事怎麼可能啊。很多很多的銀行或保險公司的專案在你還沒有啟動專案前就談好了一個價格(可能還會有回扣),為了打單子,銷售什麼都幹得出來,讓你去做專案是因為你是廉價勞動力,而且,他們會不斷地加需求,因為軟體合同談好的價格時候,連需求都沒有,你需做了才有,而且是越來越多,越改越多。等你精疲力盡的時候,你才意識到,銷售早就把你賣了。