一次,在與不少項目管理者的交流中,大家紛紛提到的軟件變更帶來的可怕影響。但是正如完整的法律體制不能制止犯罪,但沒有完整的法律體制犯罪會更加猖獗一樣,頻繁的軟件變更固然可怕,但是沒有一個完整的項目管理對應機制,我們無法相像項目最終會是一個什么樣子。
記得一個格言曾經(jīng)說過“人類最愚蠢的行為在于忘記常識”。另外一句較為相仿的格言則是“不知道歷史的人必然會重蹈覆。作為項目管理來說亦為同樣的道理。很可惜,我們中的大多數(shù)管理者口口聲聲“軟件工程”工作時“用程序代替用戶需求”,極具政客的嘴臉。其結果必然如目前媒體“程序員生存狀況”所言,以開發(fā)人員在時間的犧牲為代價來換取項目的結束,這是再為普遍不過的現(xiàn)象,在此不再妄加評論。
如何改善我們的軟件開發(fā)管理,一條便捷之道便是“尊重常識,尊重歷史經(jīng)驗教訓”.在軟件項目管理中,有許多的原則和經(jīng)驗可以供我們借鑒。
一、計劃原則
沒有計劃,你無從知道什么時候控制和變更。制定一個詳盡的計劃,以詳細到開發(fā)人員可以理解的程度為宜。計劃能夠告訴你什么時候應該做什么。沒有計劃,你無從知道自己需要做什么。不少項目經(jīng)理告訴組員需要做什么東西后揚長而去,絲毫沒有一個相關任務(活動)之間的說明。由于沒有計劃或是計劃太粗糙、不切實 際,很多項目1/3甚至1/2的時間花在返工上面。因為計劃中遺漏了某一項關鍵任務,項目就有可能宣告失敗。試想一下,制定一個周密合理的計劃需要耗費這么多的時間嗎?需要付出項目失敗的代價嗎?還有很多項目管理人員常常錯誤認為“變化比計劃快”,但實際的情況是,由于沒有計劃,你無法預測和估量變化給你的項目所帶來影響,你所面臨的將會是比面條還難以理清的“混沌”狀態(tài)。
此外,對于開發(fā)人員來說,“目標導向(Objective Oriented)”是充分調動其工作積極性的最佳方法,每一個任務階段的成果能夠將員工的工作效率維持在一個較高的水平。因為近期目標總是比遠期目標來說更容易看到和達到。為此,制定一個計劃吧,讓它符合目標導向(通過各個具體任務計劃促使項目總計劃的達成)。
二、Brooks原則
向一個已經(jīng)滯后的項目添加人員,可能會使項目更加滯后。因為作為新加入的員工來說,相關培訓、環(huán)境熟悉和人員之間的溝通通路的增加,迫使項目的工作效率急劇下跌。工作效率下降需要加班來進行彌補,但加班造成的疲勞會再次使工作效率降低。同時工作成本卻不斷的向上攀升。不過就目前來說,項目管理人員絲毫不會 理會這一點,“人多力量大”也許更能引人入勝。
不少項目管理人員抱怨到時間的急迫性,須知很多項目內時間的急迫性來自于項目管理人員不假思索和不基于常理的邀功表現(xiàn),沒有充分考慮的開發(fā)人員能力的多樣性所致。為此,正規(guī)的企業(yè)不得不耗費大量的加班費用于加班人員的津貼,同時亦要承擔違反《勞動法》的潛在法律危險?,F(xiàn)在一種萬不得已的做法是,假設項目開發(fā)人員之間的任務的關聯(lián)性不是太大的情況下,采取兩班倒或是三班倒的方法來保證時間的延續(xù)性和相關開發(fā)人員的工作高效性。
三、驗收標準原則
我們在進行某項任務,往往會為以何種結果為宜而感到困惑。不求質量的開發(fā)人員往往憑據(jù)經(jīng)驗草草了事,追求完美的開發(fā)人員則在該項任務上耗費太多的精力,但此番耗費未必針對該項任務,因而常常吃力不討好。這是由于沒有驗收標準而導致的情景。因為沒有驗收標準,你無法知道你要進行的任務需要一個什么樣的結果,需要達到什么樣的質