2、 缺少必要的信心和激情
也許你會發現周圍的一些同事僅僅是為了薪水而工作,在執行工作的時候即使發現了上層領導忽略的問題依然照糊涂畫瓢也不反饋問題所在,即便他是個天才,但成功不會屬于他的,因為成功垂青于有激情的人才,其實這些同事并不是一開始缺少激情的,原因也許是失去了信心,而暫時做"糊涂人"而已,無論如何,缺少信心和激情的團隊,只會是一盤散沙。
3、 軟件質量的價值觀念模糊
軟件質量這個問題已經是老調老談了,但質量的標準是如何?是否在團隊中有明確的評價標準?目前國內的許多軟件開發團隊都很難給出正確的答案,許多的項目終僅僅是以可以交差、收到錢、套概念、圈錢等市場行為做為標準。目前流行的許多開發過程、質量體系如:RUP、XP、CMM、ISO9000、SEI等真正應用的又有多少?一些公司僅僅是用來提升公司形象而已。缺少正確的軟件質量價值觀念的軟件開發團隊是不可能有明確目標的,不可能會采用合理的開發過程,也不可能有共同的工作規范和框架的。
4、 相互的合作并不協調
在一個開發團隊中偶爾有部分人不愿意與整個團隊合作,也許是這些人性格比較保守,也許是有某些不平衡的心態,也許是他們還沒有明白目標是什么,也許他們并沒有體驗到團隊開發成功的快樂。。。不管怎樣,這種情況的出現必然影響融洽的交流環境。
5、 無效的內耗占據了開發過程的主體
也許是一些不良的傳統觀念和思想的沿襲,一些軟件開發團隊出現了排擠其它有異議的成員、推卸責任、相互指責、貪功等,這種情況是壞的,但卻事實存在。沒有凝聚力的團隊是不可能做得很好的。
6、 模糊不清的角色職責定義
軟件開發是由不同角色的成員共同協作完成的,但目前國內的一些開發團隊卻沒有對各種角色成員的職責做出明確的定義,成員無法明確知道自己的目標,很簡單的道理,都不知道要做的是什么,能按時準確的完成嗎?如果每人都按自己想象中的職責去工作,那么有多少工作沖突、多少遺漏,誰能給出正確的估計?沒有明確的職責定義人力資源的安排可能合理嗎?結果可能是找了個資格較老的程序員做了項目經理,找了個沒有理會對象概念的人去做面向對象的系統分析,找個不顧網絡安全、網絡流量、事務特性、運行費用的人去設計一個分布式系統。。。有才華的人也許只能跺在被窩里激呼懷才不遇或許能做個美夢安慰自己。
三、 營造高效軟件開發團隊的關鍵因素
如果做到了高效軟件開發團隊的特征,那么這個團隊肯定是高效的團隊,可是如何才能營造這樣的一個團隊呢?上面分析了國內軟件開發團隊容易出現的一些問題,解決這些問題及避免這些問題的出現是營造高效軟件開發團隊的出發點,但一些問題產生的原因是其它問題的存在,關鍵是解決問題的根源,所以營造高效軟件開發團隊的因素是以下幾點:
1、 選拔或培養適合角色職責的人才
軟件項目是由不同角色的人共同協作完成的,每種角色都必須有明確的職責定義,因此選拔和培養適合角色職責的人才是首要的因素,如:選拔軟件項目開發經理一定要注意,這人要熟悉各種設計方法,愿意聽取其他人的意見并且客觀上和邏輯上把自己的思想與其它人意見相比,掌握激發團隊成員的積極性的方法等;選拔系統分析員,一定要注意,這人要熟悉需要的設計方法,掌握系統分析和設計的原則,擁有完成職責所需技能和豐富經驗等。選拔或培養適合角色職責的人才,特別是合適的軟件開發經理是營造高效軟件開發團隊的重要的因素。
2、 建立共同的工作框架、規范和紀律約束
軟件項目的開發是創造性的工作,但要有必要開發紀律。建立共同的工作框架使團隊成員知道如何達到目標,知道應該做到什么及對開發過程達成共識;建立規范使各項工作有標準可以遵循,使成員知道團隊的風格是怎樣的;建立一定的紀律約束保證計劃的正常執行。
3、 自我管理
作為團隊的成員,應該以開發經理為首堅持管理自我,對工作負責,與同事友好合作,遵守工作紀律、自我技能培訓等。
4、 學習國外成功經驗
學習國外的一些成功開發過程、分析方法、設計思想、體系結構、設計模式等,如學習合理統一開發過程(RUP)的一些實踐,歸納適合自己的合理開發過程;學習先進的系統分析、設計的思想力求完成更高質量要求的軟件項目;學習各種體系結構優缺點及適應情況,設計出滿足系統需求的軟件體系結構;學習國外成功設計模式,使代碼的編寫滿足更高質量的需求。