發布時間:2011-09-30 共1頁
關于軟件開發過程中的進度控制:對于各項活動,都需要有這么一個過程,從活動啟動,完成活動中的各項必須元素,然后活動關閉。其中,在活動之中的進度管理和控制是活動領隊非常關鍵的工作。軟件開發項目實施當然也是一個典型的例子。但是軟件開發因涉及到質量度量和復雜性度量以及估算度量。并且人力資源上存在一些不均衡問題,所以在進度管理上應當更具特色。
首先:作為項目領隊,從自身角度來講,應當具備能夠擔當外部接口和對項目整體把握的能力。當前項目的進展情況,以及各項指標,包括項目組內成員的能力,性格在內。都能了然于胸。
第二,對于進度,并非越快越好,當然我們不是說快本身是壞事,而是說,在可以保證質量的前提下。這依賴于團隊的整體開發實力。如果是一個敏捷開發團隊,我們的資本就是敏捷開發,快速反應能力。但好像公司越大,敏捷度越低,這也是正常,因為,大型公司講究的是規范,細節,具體的流程。這些都是軟件質量的體現。所以大型公司留下來的軟件作品才會流傳的深遠。
第三,軟件開發進度控制,得首先有一個開發計劃在前,并且在每個必要的時間點建立里程碑。并且在里程碑時刻對過去的工作進行總結。包括工作方法的改進,工作情緒的調整,以及慶祝等等。
第四,對于項目實施的人員分工。由于軟件開發人員的個人素質和能力差異較大,所以對人員的編制顯得很關鍵。一個良好的人員體系和一個不良好的人員體系,工作效率相差特別多。
一般軟件公司按照樹型結構組織人員,樹根是技術總監或者項目負責人。樹的結點由程序員組成。在結點之上還可以有小組組長,在之上還可以有小隊隊長。類似以前的天地會,搞分舵似的。只不過我們做的事沒他們那么偉大罷了。在一個小team當中,對于開發小組工作的展開,有這么兩種方式:第一種,安排組內一個到兩個主程序員,我們可以叫他們“超級程序員”,對主程序員,要安排他們解決整個項目對實施方面的大部分問題,包括技術難點問題,軟件代碼規范等一些統一的問題。而且還必須完成組內其他成員的代碼的評審工作。其他人只是主程序員的副手,或叫助手。一句話,主程序員知道了組內所有的成員幾乎所有技術活動,并且認為沒有問題。當然了,這種對于主程序員的個人能力是個很大的挑戰。第二種,也就是建立軟件民主開發小組,所有個人,人人平等。有問題大家互相討論,最終達成共識,這種開發模式的優點在于能夠集思廣益,各取所長。缺點是效率極其低下。但軟件民主開發小組對于個人學習是很有幫助的。因為它要求所有個人都要參與進來,并且因為是人人平等。沒有心理負擔。
第五,在軟件開發活動中,對于項目實施結果的評審是一項很關鍵的工作。特別是對代碼的評審,及時有效的評審能夠指引整個項目一直朝著正確的方向在前進。評審活動貫穿整個項目實施。評審實施過程一般是從技術總監開始,技術總監先看一下整體的狀況,然后提出整體的規范,比較大的要求,先把大的方針列出,但是,如果整體的規范是有公司多年來的經驗所得,就不必這樣子了,只要找公司內部有經驗的人就可以了。接下來是項目組負責人來評審,這對項目組負責人的經驗要求也是較高的。如果經驗不足,容易導致評審活動產生反效果,一個方法是集合組內優秀程序員,讓他們多多參與到項目評審活動來。這樣既鍛煉了這些較優秀的程序員,也能使項目評審得到較好的實施。
第六,內部的文檔管理也是進度管理的一部份,文檔是我們在項目實施過程中的經驗總結,這些也是為后來者提供幫助的資料。一般在項目實施過程,一線的程序員往往能夠發現一些技術細節,問題點,這些東西都是項目組寶貴的經驗。這需要項目負責人對這些問題進行匯總,歸檔。并且共享到組內所有成員,或者作為公司的整體財富。所有這些,都需要項目負責人細心的留意任何一線程序員提到的問題點。