摘要:
實踐過敏捷的朋友可能會有這樣的感概:“敏捷太理想了!敏捷對人的要求太高了!”說得太對了!!我們不能照搬敏捷,要實踐敏捷,首先需要直接面對和解決敏捷在中國的水土不服問題!
本文大綱:
1.鬼佬講敏捷——神仙談理想
2.中國專案的超典型案例:打折資訊網
3.兩大限死,兩不確定
4.如何應對“兩大限死,兩不確定”?
5.中國軟體研發人員的“可愛”特點
本文是系列文章的第3篇,如果還沒有看過前面的文章,建議先看看!
第一篇:敏捷的“官方”定義
連結:http://www.cnblogs.com/umlonline/p/3450032.html
第二篇:敏捷流程框架及敏捷實踐一覽
連結:http://www.cnblogs.com/umlonline/p/3450428.html
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是最好的開發語言!”(說明:本例子是關於程式設計師的一個笑話,我引用過來,不是我原創的。)
多年的不合適的中國教育,可能讓程式設計師內斂起來,但大部分程式設計師是追求進步的,也是不服輸的,如果我們能用合適的管理方式、激勵方法、團隊建設方法,就可以釋放大家的主動性,打造出“自組織”的開發團隊。將來我會為大家分享更多的敏捷團隊建設方法。
請看下一文!
下一篇將為你分享:神馬是敏捷?(4)——敏捷不能當飯吃
摘要:我們將會談談敏捷對組織架構、團隊文化的要求,特別是對薪金待遇的要求!
作者:張傳波
創新工場創業課堂(敏捷課程)講師
軟體研發管理資深顧問
CMMI首席專家
《火球——UML大戰需求分析》作者
軟體知識原創基地創辦人