爲什麼Scrum不行?

《爲什麼Scrum不行?》

如果還不知道Scrum敏捷開發的朋友們,同理,還是請出門左轉,點擊 Scrum 瞭解下。

以下是原文中提到的9個Scrum不行的理由。

Reason 1: Scrum的基石是相信人。創造一個安全的環境,這樣每個人都能相互學習,相互直言。但是,這是不行的,這世上有很多人並不關心這些,而且政治和競爭到處都是,辦公室裏無小事,你和別人交心,你相信他們,最終受傷的你自己。你真的以爲那裏有空間讓你可以去犯錯,去冒險嗎?

Reason 2: Scrum認爲只要給員工足夠多的自由員工就能做得最好。這該死的理論是基於什麼玩意?不可能,人的天性是懶惰的,他們纔不會把事做好的,他們只會做相應報酬的工作量,還可能基本甚至達不到其相應的報酬,大多數人都在混日子。尤其是和經理比起來,誰不想能儘快地成爲經理或Team leader啊,因爲那樣他們就可以即不幹活,又掙得多。另外,你給他們自由,你就會發現,他們會只會做他們感興趣的事,要麼聊QQ,要麼打遊戲,看閒書,反正不幹正事。直到你催了,他們才動一動。

Reason 3: 因爲前面的原因,所以,我們仍然要把一個PM放在Scrum團隊的上面做管理,這樣纔會有產出。於是,PM給團隊分配任務,管得細枝末節,事無鉅細,天天讓你做進度彙報,等等。直至把團隊拖垮。

Reason 4:Scrum只不過是一個流程。這世上有太多的流程,尤其是那那些執行CMMI的公司。幾乎所有玩CMMI流程的公司,你都能看到的是員工都是那一副副難看的臉。所以,Scrum的流程同樣會這樣。因爲這些都不是開發團隊自發出來的,而是上面管你喜歡不喜歡安給你的。Scrum根本不可能增進你的軟件質量和技術,只能是優秀的人才纔可能!使用Scrum的公司都是些吝嗇鬼,他們不願花大錢招優秀的人,他們妄圖使用Scrum這種東西讓現有的這些廉價勞動力發揮更大的生產效率,Scrum成了push程序員最有用的工具。

Reason 5:Scrum delivers ‘business value’。不是這樣的,實際上,Scrum不可能。這有很多原因。真正瞭解業務的那幫人根本不可能加入項目團隊,那些人誰TMD願意和苦逼的技術人員加班啊。 那些人喜歡和我們的用戶吃吃喝喝,花天酒地的,根本不會和你們那些奇怪的東西(如: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: “是的,如果我們只做需要的功能,那麼我們就會最低的成本,對嗎?”,爲什麼這世上總是會有這些幼稚的人?這種事怎麼可能啊。很多很多的銀行或保險公司的項目在你還沒有啓動項目前就談好了一個價格(可能還會有回扣),爲了打單子,銷售什麼都幹得出來,讓你去做項目是因爲你是廉價勞動力,而且,他們會不斷地加需求,因爲軟件合同談好的價格時候,連需求都沒有,你去做了纔有,還是模糊和不確定或根本就是錯的,然後需求是越來越多,越改越多。等你精疲力盡的時候,你才意識到,銷售早就把你賣了。

有人看到這篇文章後也分享了團隊實踐Scrum後的心得,他覺得在他的團隊裏不適用Scrum有幾個原因:

1.大家對技術不熟悉,因爲目前主要的工作量在前端。大家以前都是做java後臺的,對js不熟悉,把js當作java來面向對象。而且沒有一個成熟的控件庫使用。

2.沒有在項目開始前做足夠的技術調研。本來,應該有個architector來做這些事情。我覺得什麼TDD,就是胡扯。沒有前期調研,什麼都是假設我們能做到,然後就去break down,然後就是估時間,只能是瞎估。估完了,真正implement的時候才發現,一堆東西stand in my way。

3.人的本性就是利己。如果一個team的performance,不和salary掛鉤,大家憑什麼會齊心協力,deliver更快,更好。目前情況下,scrum只是pm push developers的工具。現在,大家都想到偷懶的方法,就是儘量多估一些時間,或者implement的時候粗一些,反正都是一個個task領的,誰知道bug是誰的code導致的。以前如果一個人responsible for one module,就很容易知道誰的代碼質量不高。

4.user story 拆分的不好,容易漏掉很多東西。大家現在都關注task,只想着做完就拉倒,根本不會想着各個task之間的邊界和交叉影響。而且,大家現在就習慣看看task就做了,根本不會去看case,所以有些重要的flow全都漏掉了。

5.pm就是scrum master,整個team就是在一個不平等的環境下,scrum只不過是pm試驗的工具,能在她的簡歷上添磚加瓦。我們只不過是小白鼠。

另一種觀點認爲,Scrum適用於一幫資深程序員組成的team,每個人都是牛人,每個人都有激情幹活,這樣才work。在國內大家只是幹活拿工資,沒什麼激情,很不適合Scrum。

Scrum就是一把雙刃劍,如何用、是否合適還是要看具體的情況。那麼,您的團隊是否採用過Scrum模式,效果如何呢?

 

英文原文出自:《Why Scrum will never work》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章