本人從事軟件行業(yè)以來,經歷了多次的成功與失敗的體驗,總覺得中國的軟件應該可以做得更好些,但結果并不是我想象中的那樣,許多的項目實際都還只是以假的、虛的面孔而存在,其中原由大家都可以說得出很多很多,但怎么改呢?一些問題的存在只是因為其他問題存在而存在的,所以我想尋找中國軟件行業(yè)為什么不能崛起的根源。中國人智商不夠?那絕對是錯的。中國人不夠勤奮?那也絕對是錯的??萍疾蝗缙渌鼑野l(fā)達?通訊如此發(fā)達的現代,那不是理由。中國人做軟件的少?那更加不是理由。為什么呢?中國缺少高效的軟件開發(fā)團隊嗎?這也許是問題的根源。
正文:喜歡足球的朋友應該非常清楚一件事情,那就是在一場足球賽中假如球員之間缺少默契的配合或教練的指導思想執(zhí)行不到位等情況下,那場比賽多半是以失敗告終的,因為這支球隊并不是優(yōu)秀的球隊。開發(fā)軟件項目就象一場進行中的足球賽,是靠項目管理、系統分析設計、程序編制、測試、市場營銷等不同角色人員共同協作完成的,不同角色的人執(zhí)行的工作相互促進和制約著其它角色的人的工作,因此一個高效的軟件開發(fā)團隊是高質量軟件項目或產品的保證,可如何才能營造高效軟件開發(fā)團隊呢?從以下幾個方面來說明:
一、高效軟件開發(fā)團隊的特征
高效的軟件開發(fā)團隊是建立在合理的開發(fā)流程及團隊成員密切的合作的基礎之上的,成員共同的迎接挑戰(zhàn)、有效的計劃、協調和管理各自的工作以至完成明確的目標,高效的開發(fā)團隊具有如下特征:
1、具有明確且有挑戰(zhàn)性的共同目標一個具有明確的而且有挑戰(zhàn)性目標的團隊比目標不明確或不具有很大的挑戰(zhàn)性目標的團隊效率高得多,通常技術人員往往會因為完成了某個明確的任務,而且這個任務的完成具有挑戰(zhàn)性的意義而感到自豪,反過來團隊成員為了獲取這種自豪的感覺而更加積極的工作從而帶來團隊開發(fā)的高效率,如作為系統設計人員很清楚的知道在什么時候要做到什么,什么時候開始做,什么時候必須完成,為了完成工作必須面臨哪些挑戰(zhàn),怎么解決這些困難等為設計出一個高質量的軟件項目提供了重要保證,而模模糊糊的去設計一個系統或模模糊糊的就去編寫代碼是非常危險的,而且會為此付出高昂代價,因此高效的軟件開發(fā)團隊具有挑戰(zhàn)性的共同目標。
2、團隊具有很強的凝聚力在一個高效的軟件開發(fā)團隊中,成員們凝聚為一個整體共同進行工作,他們是相互支持、互相交流、互相尊重的,而不是相互推卸責任、保守、相互指責的,在一些散亂的開發(fā)團隊中往往存在這樣的問題,一些程序員是比較保守的,明明知道另外的模塊中需要用到一段與自己已經編寫完成但有些難度的程序代碼,他也不愿拿出來給其它程序員共享,不愿與系統設計人員交流,這樣給項目的進度造成了些不可度量的因素。
3、具有融洽的交流環(huán)境在一個開發(fā)團隊中,每個人行使自己的職責,如需求分析人員制定需求規(guī)格說明、系統設計人員做系統概要設計和詳細設計、項目經理配置項目開發(fā)環(huán)境并且制定項目計劃等,但每個人的工作不可能做到完美的,如系統概要設計的文檔可能有個別地方詞不達意,做詳細設計的時候就可能會造成誤解,項目經理制定計劃時可能忽略了某種風險的存在而造成執(zhí)行者過于緊張的壓力等等情況都需要大家通過交流、反饋的手段然后協商解決的,因此高效的軟件開發(fā)團隊是具有融洽的交流環(huán)境的,而不是那種簡單的命令執(zhí)行式的。
4、具有共同的工作規(guī)范和框架高效軟件開發(fā)團隊具有規(guī)范性及共同框架的工作,對于項目管理具有規(guī)范的項目開發(fā)計劃,對于分析設計具有規(guī)范和統一框架的文檔及審評標準,對于代碼具有程序規(guī)范條例,對于測試有規(guī)范且可推理的測試計劃及測試報告等等。并且所有成員都明白自己的職責,知道必須完成什么計劃?