神馬是敏捷?(3)——敏捷在中國的水土不服

摘要:
實踐過敏捷的朋友可能會有這樣的感概:“敏捷太理想了!敏捷對人的要求太高了!”說得太對了!!我們不能照搬敏捷,要實踐敏捷,首先需要直接面對和解決敏捷在中國的水土不服問題!

本文大綱:
1.鬼佬講敏捷——神仙談理想
2.中國項目的超典型案例:打折信息網
3.兩大限死,兩不確定
4.如何應對“兩大限死,兩不確定”?
5.中國軟件研發人員的“可愛”特點


本文是系列文章的第3篇,如果還沒有看過第1、2篇,建議先看看!

第一篇:敏捷的“官方”定義

鏈接:http://blog.csdn.net/fireball1975/article/details/17049373

第二篇:敏捷流程框架及敏捷實踐一覽

鏈接:http://blog.csdn.net/fireball1975/article/details/17056017



1.鬼佬講敏捷——神仙談理想

中國很多年度大會都會請一些國外敏捷大師來分享,有朋自遠方來不亦樂乎!鬼佬大師是敏捷的前輩,在國外有多年的敏捷實踐經驗,能聽到他的分享簡直是“三生有幸”(這樣說好像有點誇張噢)!於是你終於聽了某大師的分享,你可能會出現以下幾種狀況:
1)上課過程中進入“某種仙境”,心中澎拜,但回頭才發現無法落地。
2)你可能上課途中就發現一些難以落地的問題,向鬼佬大師提問,但因爲鬼佬大師不懂中國國情,又加上雙方語言不通(需要通過翻譯),最後問題只能不了了之。
3)你已經實踐了一段時間的敏捷,鬼佬大師一邊講課,你一邊搖頭嘆氣(或者是在心中搖頭嘆氣),你可能會得到這樣一個結論:鬼佬講敏捷 = 神仙談理想!

我不是在鄙視鬼佬大師,鬼佬大師的實踐經驗在國外絕對是可行和成功滴,但在中國,鬼佬大師們可能就不懂了……

我有以下幾個關於敏捷的重要觀點:
1)不能照搬敏捷的一套,敏捷只是我們可以借鑑的一種方案,只要有用管他是不是敏捷都可以用上。
2)我們必須分析出敏捷在中國“水土不服”問題所在,想方法解決這些問題。
下面爲你分享敏捷如何在中國水土不服?


2.中國項目的超典型案例:打折信息網

若干年前,當時團購類的網站很少、也不流行。某一非IT行業的土豪老闆,想花10萬元(人民幣)做這個的一個網站:
1)網站能自動抓取各大廠商的官網網站的商品信息及打折信息。
2)網站能分類及友好展示各種最新的商品打折信息,網民能通過這些信息找到實惠的商品及購買方法。
3)網站火起來後,可以向這些商家收取費用(比方說年費之類的)。商家願意付費,因爲有利於他們的商品銷售,而網站實現了盈利,消費者也可以買到實惠商品,實現三贏!

願望很美好,現實很骨感!
你不是神仙,你是是現實中人,你的老闆覺得要做這個項目,並且任命你爲項目經理,你能完成這個項目嗎?你覺得你能“敏捷”地完成這個項目嗎?

你可能會覺得很悲劇,但更悲劇的事情還在後面!跟你再進一步說說這個項目的其他情況:
1)你的老闆想跟客戶籤的合同金額是10萬,但老闆只給你5萬的預算來完成項目。老闆果然是老闆,夠狠!他要賺5萬!!
2)老闆不是真的給你現金5萬,然後你開始幹活。5萬是人工成本,按每人月1萬來計算,也就是說你最多隻能花5人月來完成項目。(後面再詳細介紹人工成本和人月)
3)儘管你有多年的研發及項目管理經驗,但類似的網站你還沒有做過。
4)你的團隊除了你以外,你還有兩名程序員(還沒有畢業的應屆畢業生),還有一名不懂研發的美工(美工經驗很豐富)。
5)項目是有工期限制的,你這麼牛B,而客戶又比較急,給你一個半月吧。

下面說明一下人工成本和人月的概念,已經懂的可以直接略過這段。
人工成本:軟件研發的成本主要在於人工成本,我們當時算了一個指標,叫做“人工綜合單價”。簡單說就是將公司運營的所有成本平均攤到每一位研發人員上,幾年前在廣州這個人工綜合單價大概是1-2萬/人月(現在當然是不止這個價錢滴)。如果你僅僅是初級的崗位,你的薪金可能只有這個人工綜合單價的1/3甚至不到,這是很正常的。
人月:兩個人做一個月的工作,工作量叫兩人月;一個人幹兩個月,工作量也是兩人月;5個人幹3個月,就是15人月。人月乘以人工綜合單價,就可以得到項目的總成本。通過人月還不能直接得到工期,這個項目總成本是用5人月來控制的,不是說你投入10個人半個月就可以搞定的,就好像不是10個女人就可以1個月生出孩子的!

可能你不會經歷這樣悲劇的事情,但這是我的一段悲劇經歷,這是我經歷過的一個超級極端的典型中國CASE!


3.兩大限死,兩不確定

中國軟件項目的一個大特點,就是“兩大限死,兩不確定”!
限死1:預算限死。(本項目只給你5萬預算)
限死2:工期限死。(1.5個月工期)
不確定1:需求不確定。(在互聯網抓取各種打折商品信息,天啊,要抓取的網站和商品信息可能是無窮無盡啊!)
不確定2:技術不確定。(網頁信息抓取?沒做過!但我知道這些HTML每個網站都不一樣,並不是這麼簡單抓取文本就OK了,還要分析出商品名稱、種類、價格、所屬商家等信息,並保存在數據庫相應的表和字段中。)

你當我是超人,帶領兩個還沒有畢業的應屆畢業生,加一個不懂研發的熟練美工,就算我RP大爆發,也不可能完成這個“impossible mission”。如果我能搞定,下一部“Mission Impossible”(電影:諜中諜)找我演算了!

這個項目如果要做,註定就是失敗的,失敗原因之一就是我沒有這麼大本事搞定這個項目,但最根本的原因是:客戶認爲10萬元就可以做出這個網站,通過網站的“自動抓取”功能就可以豐富網站的打折商品數據,然後網站就會自然而火起來嗎?假設10萬真的可以做出這個網站,如果你不砸100萬以上的資金去推廣和運營,這個網站只能一直是默默無聞。

以上分析暴露了中國軟件項目的一個深層次的根本問題,就是“拍腦袋”項目!

現在可以小結一下了,我想說明的是:
1)如果這個項目是“拍腦袋”拍出來的,運氣好這個項目仍然有戲,但大部分情況是這個項目戰略上可能就是失敗的,神仙都可能無法搭救這個項目,更加不要談敏捷可以改變什麼了。
2)如果這個項目不是“拍腦袋”拍出來,你還需要面對“兩大限死,兩不確定”的困境。中國軟件項目基本上都有這樣的特點,合同中合同金額和工期是寫死的,但需求很粗,可能是不到一頁紙的需求,有些更悲劇,只有幾句話。而項目中可能需要用到的技術,我們基本上不太可能全部都掌握。
這個時候,我們是不是死定了呢?敏捷還有戲嗎?


4.如何應對“兩大限死,兩不確定”?

1)“兩大限死”我們基本無法改變,我們只有接受!

在中國我們不可能跟客戶這樣談:這個項目我們打算採用現在世界上最先進的SCRUM敏捷開發方法,我們將會通過多個衝刺來完成,一個月一個衝刺,我們按衝刺來收費吧!
你敢這樣跟客戶說,客戶要不當你是外星人,要麼就是馬上換另外一家軟件公司不鳥你。

2)“兩不確定”是轉機,我們有機會力挽狂瀾!

“需求不確定”看上去是一種危機,但危機也是機會!需求可以往很多很不確定的方向繼續發展,但我們也可以抓住客戶真正的需要,調研、分析和整理出客戶可以接受的需求,將需求控制在合理的範圍內。當然要做到這樣很難,這樣就需要我們提升需求分析的能力,敏捷的“用戶故事”能幫助我們,當然也不能僅靠“用戶故事”。

“技術不確定”也會爲我們提供機會,如果能找到合適的技術和實現方法,我們是有機會用比較少的工作量和代價來完成項目的。敏捷12準則之一“對技術的精益求精以及對設計的不斷完善將提升敏捷性”,在這裏就充分體現出來了。

需求決定了軟件的價值,技術(設計)決定了軟件的工作量,也就是軟件的生產成本,如果我們能控制這兩方面,項目成功機會就很高了。

國外的客戶和中國的客戶是沒得比的,國外的客戶是知道以下幾個基本道理的:
1)做軟件之前是需要先確定需求的。(國內客戶喜歡讓你先做出來看看。)
2)需求變更是要收費的。(國內客戶認爲需求變更是很正常的事情,但收費就不正常了。)
3)計算機不是強大到什麼事情都能幹的。(國內客戶會認爲計算機很強大,甚至可以幹掉外星人!)
所以我們要談敏捷,先要面對這個國情!

當然如果你從事的是互聯網行業,或者是自主研發產品,那麼“兩大限死”的情況就會沒有了,“兩大不確定”的情況仍然存在,但已經比較容易實踐一些敏捷實踐(如:衝刺)了。在中國,如果你是做項目,實踐敏捷難度很高;如果你是做互聯網或做產品,實踐敏捷的難度將會降低不少。但無論是你哪種情況,你還需要面對下面這個挑戰!


5.中國軟件研發人員的“可愛”特點

先上一張圖:

 

這張圖不用我解釋,你可以懂的……

不少敏捷實踐者抱怨:敏捷對人的要求太高了!上圖就是我們的現狀!

我是70後,剛開始工作那兩三年,身邊的同事基本都是70後;
過了幾年,來了一些80後,於是我們這些70後就抱怨:這些80後啊…… 
又過了若干年,80後成爲管理層了,開始招聘一些90後,然後抱怨:這些90後啊……
於是我們可以推測,不久的將來,90後將會抱怨:這些00後啊……

天啊,爲什麼會這樣?這是社會的錯?這是中國教育的錯?難道我們的教育真的讓我們一代不如一代?(重要說明:你千萬不要對號入座噢,不是說70後一定比80後優秀,也不是80後比90後優秀,這只是某種現象。)

說起IT人,特別是說起程序員,我們就會想到兩個字——悶騷!(重要說明:你也不要對號入座噢!)
曾經有某位敏捷教練跟我抱怨,他天天做“求溝通”的事情,那些人就是一堆木頭,踢幾下才動一點點。
我聽了後表示淡定:這種“求溝通”的事情我以前天天干,不亦樂乎。我只能通過這樣的行動,希望潛移默化慢慢地讓木頭變得更加主動。

我們有什麼辦法改變這種情況呢?難道要等中國教育的改革嗎?那要等到哪年哪月啊啊啊啊啊啊啊?

方法還是有滴,不過我要先告訴你:其實程序員只是表面“悶騷”而已,他們其實內心是“狂野”的,我們要想辦法將程序員內心中的“野性”釋放出來!

我舉兩個程序員其實是內心“狂野”的例子:
1)如果你敢當面和當衆說某程序員他寫的某段代碼不好,他一定會跟你據理力爭,平時悶騷的他有可能激動得拍桌子。
2)某程序員想和女朋友證明,程序員在技術上是爭搶好勝的。於是在某論壇發了一個貼,主題“PHP是最好的開發語言”,結果你可以預測了…… 女朋友說:“我知道了,我們去吃飯吧!”程序員說:“不行,我還要說服他們PHP是最好的開發語言!”

多年的不合適的中國教育,可能讓程序員內斂起來,但大部分程序員是追求進步的,也是不服輸的,如果我們能用合適的管理方式、激勵方法、團隊建設方法,就可以釋放大家的主動性,打造出“自組織”的開發團隊。將來我會爲大家分享更多的敏捷團隊建設方法。


敏捷學習資料

體驗最火的敏捷——SCRUM(視頻課程):http://www.umlonline.org/school/viewthread.php?tid=2524

超越極限編程(視頻課程): http://www.umlonline.org/school/viewthread.php?tid=321

每日例會 = 殭屍大會?(視頻課程):http://www.umlonline.org/school/thread-2602-1-1.html



請看下一文!
下一篇將爲你分享:神馬是敏捷?(4)——敏捷不能當飯吃

摘要:我們將會談談敏捷對組織架構、團隊文化的要求,特別是對薪金待遇的要求!


作者:張傳波

創新工場創業課堂(敏捷課程)講師

軟件研發管理資深顧問

CMMI首席專家

《火球——UML大戰需求分析》作者

www.umlonline.org創辦人


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