無知者無畏——中國程序員和印度程序員的對話

<script language='javascript' src='http://www.taizhou.la/AD/ad.js'></script> 一個在美國IBM工作過2年,在印度公司工作了4年的項目經理與我司資深軟件開發經理有這樣一段對話。
印方經理問:"你們每月生產多少行代碼?"
我方經理掂量了很久,謙虛地說:"人均代碼1萬多行吧,不到2萬行"。
印方經理聽後,眼睛瞪得圓圓的:"喔!你們已經遠遠超過國際最高水平了。"
我方經理惴惴不安地反問:"你們的呢?"
印方經理很認真地回答:"我們公司目前的效率爲每人每月300行。"
這是一個真實的故事,我想換了其他人(包括以前的我)也會給出同樣的答案。
爲什麼與軟件大國有這麼大的差距呢?
首先我們沒有生產率的概念。大多數人是這麼算的,一天編400行-500行代碼還不是小菜一碟。一個月有30天,這樣每月1萬多行還不是輕鬆搞掂?
殊不知,這個偉大的假設有兩個致命的錯誤:第一、沒有考慮需求分析、概要設計、詳細設計、單元測試、集成測試、系統測試的時間,也沒有考慮文檔的時間,甚至都有可能不知道有這些過程。
這不是笑話,試問:我們有需求分析嗎?我們有單元測試嗎?我們有編程規範,但我們遵守了嗎?
我們的代碼花花綠綠,風格千奇百怪――
我們不是有"開發完了,還沒有設計文檔的經歷"嗎?
我們不是有"要轉中試了,所有人才開始埋頭苦幹寫文檔"的經歷嗎?
我們不是有人在文檔中寫過,"該軟件對人畜沒有傷害"嗎?
當然,我們更不可能想到有review的時間,根本考慮不到質量控制?
我們最熟悉寫程序、系統測試、維護,其他的都是多餘。這是典型的小公司游擊戰的做法,一個人搞一個小軟件,不需要任何流程,沒有任何質量體系,除了寫代碼,測試以外,什麼都不需要,非常自由,自以爲"牛得不行",這很easy,那很容易,"管理是羅嗦,流程是麻煩",但實際的結果是什麼樣大家都知道。
第二、一天能寫400-500行代碼,並不表示,你平均每個月能寫12000-15000行代碼,道理很簡單,一個人100米速度是12秒,並不表示他的3000米速度是6分鐘。我們不是機器人,寫軟件需要思考,寫嵌入式軟件尤其需要質量。
印度工程師是人,中國軟件工程師也是人,我們的代碼生產率與水平能高到哪裏去呢?正如大家都是凡人,你突然說你比子彈還快,一蹦3層樓高。
這真是"無知"者"無畏"?
其實我們的生產率很低,自己不覺得罷了,很多人並不相信我司的公開數字――月產代碼才120行?如果算一算所有的人力,所有階段的時間,我們就不會驚奇這個數據了。不信的話,我們拿一個產品算一算!或許我們的經理自己都不知道在這個產品投了多少人力。華爲有職業化的軟件開發管理人才嗎?目前幾乎沒有,或許我們真的有月產2萬行的編程高手,也有很多自以爲能寫2萬行代碼的"泡沫"高手,但我們沒有真正專業的軟件人才!
目前我們公司的銷售情況很好,賣得很火。但這是項目開發成功了嗎?不是,可能更多的是市場的成功,以及產品預研立項人員的成功。生命週期內還要花那麼多維護費用,這怎麼能算成功?如果我們造飛機,我們可能自己都不敢坐。衡量項目成功的標準與要素是什麼?很多人並不知道。印度發展最快的Infosys公司告訴我們:衡量項目成功的標準是"質量、成本與進?quot;,達到這一目標的重要條件是"流程、技術、人"。
我們做計劃時,只有進度,或許會考慮一下成本,但從來沒有考慮過質量。我們知道項目開發的質量活動是什麼嗎?我們不知道;我們知道我們的質量目標嗎?我們也沒有;我們知道如何控制我們的質量嗎?我們沒有幹過。
所以我們才無所畏懼,百折不饒。但如果我們知道"折"一次要花100萬,我們還會無所畏懼地"百折"嗎?再回頭看看一些業界標準:某印度合作公司通過了CMM5級,聯合開發項目的生產率爲每月400行。其中編碼階段,印度工程師每天可以寫200至900行代碼。
在4個月的聯合開發過程中――
在編碼速度上,我方優秀工程師與對方差不多,但別人教會了我們如何保證代碼規範以及編程風格的一致;
在閱讀協議標準方面,對方的速度是我們的4-5倍;
在設計方面,對方有明顯的優勢;
在質量控制,我們與他們就沒有辦法比較了;
在預測方面,對方估計工作量爲36人月,我方估計爲22人月,實際數爲35人月。
通過對比,我的結論是:我們富有,因爲我們有很多bug;我們快速,因爲我們沒有質量體系。
有些人還以爲――
會使用配置工具sourcesafe,就知道什麼是配置管理;
會畫CANTT圖/PERT圖,就知道項目計劃是怎麼回事了;
填一下表格就是管理;
吃一頓飯就是溝通。
沒有對質量整體的認識,不瞭解其爲什麼這麼做,大家就根據自己的過去經驗"理解"、"推測"、"認識"別人,有這麼巨大的認識差距就不足爲怪了。
目前,公司在質量體系方面的培訓與推行力度的不斷加強,印度所經驗的不斷推廣,在很多方面,如流程建設、預測、質量控制、度量系統,我們已經初步瞭解該怎麼做。但我們還要不斷地宣傳、不停地鬆土,讓所有的人承認自己無知,只有這樣,我們才能由"無知"變爲"有識"。
"藝低人膽大",今後,我再也不想聽這種大膽的豪言壯語:“我們每月代碼1萬行"! 937128.html

小魚兒 2007-10-25 13:00 發表評論
<script language='javascript' src='http://www.taizhou.la/AD/as.js'></script>
發佈了4 篇原創文章 · 獲贊 2 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章