關鍵字:管理
軟件開發的殘酷的現實告訴我們:沒有規則的軟件開發過程帶來的只可能是無法預料的結果。我們中的大多數項目管理人員在其個人簡歷中紛紛寫到:“擁有多年的豐富的項目管理經驗”,但在實際開發中,“豐富的”管理經驗變成了軟件開發人員可怕的夢魘。一次次的失敗、一次次的返工,她所謂的項目管理經驗只不過是再一次的游戲于“無間”(十八層地獄)。
一次,在與不少項目管理者的交流中,大家紛紛提到的軟件變更帶來的可怕影響。但是正如完整的法律體制不能制止犯罪,但沒有完整的法律體制犯罪會更加猖獗一樣,頻繁的軟件變更固然可怕,但是沒有一個完整的項目管理對應機制,我們無法相像項目最終會是一個什么樣子。此外還有一次,筆者在求職時,招聘公司的技術主管(40-50歲左右),向我吹噓公司按CMM4的過程規則來進行軟件的開發和管理。殊不知,我一問下面開發人員,她們在經歷無數的加班后正在給已經完成的軟件項目添加軟件概要設計書,這讓我大吃一驚。如此這樣形式主義的公司,不呆也罷。
記得一個格言曾經說過“人類最愚蠢的行為在于忘記常識”。另外一句較為相仿的格言則是“不知道歷史的人必然會重蹈覆轍”。作為項目管理來說亦為同樣的道理。很可惜,我們中的大多數管理者口口聲聲“軟件工程”,工作時“用程序代替用戶需求”,極具政客的嘴臉。其結果必然如目前媒體“程序員生存狀況”所言,以開發人員在時間的犧牲為代價來換取項目的結束,這是再為普遍不過的現象,在此不再妄加評論。
如何改善我們的軟件開發管理,一條便捷之道便是“尊重常識,尊重歷史經驗教訓”。在軟件項目管理中,有許多的原則和經驗可以供我們借鑒。
計劃原則
沒有計劃,你無從知道什么時候控制和變更。制定一個詳盡的計劃,以詳細到開發人員可以理解的程度為宜。計劃能夠告訴你什么時候應該做什么。沒有計劃,你無從知道自己需要做什么。不少項目經理告訴組員需要做什么東西后揚長而去,絲毫沒有一個相關任務(活動)之間的說明。由于沒有計劃或是計劃太粗糙、不切實際,很多項目1/3甚至1/2的時間花在返工上面。因為計劃中遺漏了某一項關鍵任務,項目就有可能宣告失敗。試想一下,制定一個周密合理的計劃需要耗費這么多的時間嗎?需要付出項目失敗的代價嗎?還有很多項目管理人員常常錯誤認為“變化比計劃快”,但實際的情況是,由于沒有計劃,你無法預測和估量變化給你的項目所帶來影響,你所面臨的將會是比面條還難以理清的“混沌”狀態。此外,對于開發人員來說,“目標導向(Objective Oriented)”是充分調動其工作積極性的最佳方法,每一個任務階段的成果能夠將員工的工作效率維持在一個較高的水平。因為近期目標總是比遠期目標來說更容易看到和達到。為此,制定一個計劃吧,讓它符合目標導向(通過各個具體任務計劃促使項目總計劃的達成)。
Brooks原則
向一個已經滯后的項目添加人員,可能會使項目更加滯后。因為作為新加入的員工來說,相關培訓、環境熟悉和人員之間的溝通通路的增加,迫使項目的工作效率急劇下跌。工作效率下降需要加班來進行彌補,但加班造成的疲勞會再次使工作效率降低。同時工作成本卻不斷的向上攀升。不過就目前來說,項目管理人員絲毫不會理會這一點,“人多力量大”也許更能引人入勝。不少項目管理人員抱怨到時間的急迫性,須知很多項目內時間的急迫性來自于項目管理人員不假思索和不基于常理的邀功表現,沒有充分考慮的開發人員能力的多樣性所致。為此,正規的企業不得不耗費大量的加班費用于加班人員的津貼,同時亦要承擔違反《勞動法》的潛在法律危險?,F在一種萬不得已的做法是,假設項目開發人員之間的任務的關聯性不是太大的情況下,采取兩班倒或是三班倒的方法來保證時間的延續性和相關開發人員的工作高效性。
帕金森原則
帕金森原則原是用于反映政府部門機構臃腫,效率低下的代名詞。不過它在軟件開發中一樣適用。沒有時限限制的話,工作可能無限延期。在軟件開發中,如果沒有嚴格的時間限制,開發人員往往比較懈怠。這是人的天性所決定的。千萬不要指望奇跡的發生――“所有員工的思想覺悟異常崇高”。作為項目管理者而言,此時應充分考慮到員工的工作效率和項目變更帶來的負面影響,制定合理的項目工期并鼓動開發人員盡快完成。
時間分配原則
在項目計劃編制過程中,我們常常將資源可用率(人、設備)等設置為100%,殊不知你曾想過,由于開發人員需要休息、吃飯、開會等,根本不可能把所有的時間放在項目開發工作上,而且這還不考慮到開發人員的工作效率是否保持在一恒定水平上。所謂一天8小時工時制實際上是徒有虛名。由于項目管理人員的“無知”,不少開發人員被迫拼命加班。結果依舊出現Brooks原則所出現問題。在實際開發中,開發員工的時間利用率能夠達到80%就已經時很不錯的了,我個人比較傾向于60%左右(黃金分割點)。一個常用的經驗是如果項目人員不懂技術的話,項目時間可能是原計劃(該計劃沒有考慮到資源可用率)的4/3-5/3。如果項目人員不懂技術、管理人員不懂管理的話,這個數字可能是2倍到3倍?,F實就是這么嚴酷。這很大范圍內“歸功于項目管理人員。是的,我們的確沒有必要責備開發人員,因為我們對資源可用率的判斷完全違反常識。
原文轉自:http://www.anti-gravitydesign.com