大多數軟件開發(fā)人員本能地認為,項目經理所要確保的項目按時完工與實現高質量的軟件是矛盾的。這并不是因為項目經理們不想要高質量的軟件,他們只是想在質量的基礎之上,能夠按時完工和低于或等于預算的情況下,實現這個軟件。
項目經理的努力可以成功地在降低成本和開發(fā)時間的同時不會對質量造成影響,然而,他們有可能過度地使用了這些技巧。盡管以下的這些項目管理技巧至少是很有意義的,在某些情況下,它們甚至是受到尊敬的技巧,但是它們都有造成災難的潛在可能。
一、誤期
所有人都要有奮斗的目標,里程碑是一種受到尊敬的方法,它用來激發(fā)人們向同一個目標前進,這種動力可以在很短的時間內得到重大成果。然而,每個人都必須承認里程碑所界定的時間并不是每次都能實現,這時就必須要做出新的決定。項目經理們必須要在團隊中樹立里程碑的目標,以此來激勵他們前進,但是,當里程碑確立的日期并不現實,而且隊員們一再出錯,那就應該重新評估這個計劃了。
如果因為某種特殊情況可以使這個日期不再重要,那么當這個重要日期真正來臨的時候,整個團隊就只有很小的動力來實現這個里程碑日期。當整個團隊連續(xù)錯過了10個日期,那么第11個日期還重要么?這就像喊著“狼來了”的孩子一樣。如果在設定的時間線之后并沒有任何處罰,那么當錯過這個時間的時候就應該強制執(zhí)行或者移動整個時間線。
長遠來看,不斷創(chuàng)造持續(xù)的壓力和令人迷惑的環(huán)境并不能創(chuàng)造出好的軟件,開發(fā)人員需要能夠專心工作的環(huán)境。完成項目的日期和關于里程碑日期是否真實的混亂,經常會導致開發(fā)人員在開發(fā)過程中跳過關鍵步驟或者造成難以發(fā)現的問題。
二、假裝沒有錯誤
在項目管理中,忽視并不是一種幸福。為了成功地完成項目,除了不可阻擋的政治壓力,向公司其他的員工介紹項目的風險也是必需的。幾乎每個軟件開發(fā)項目都有延期或超出預算或同時出現這兩種情況的風險。
問題在于,當最終某一時間,這些風險真正變?yōu)楝F實的時候將會引起恐慌,每個人都在混亂中將項目其余的部分組裝在一起,整個項目的質量將因為最終輕率的裝配而遭受損失。當然,當整個項目還沒有落后于計劃之前,這一問題還不會充分暴露出來,然而,大多數項目都有辦法只讓項目的某些部分落后一點點,而幾乎每個項目都有過于倉促的風險,這是因為管理層在很長一段時間之內都在項目沒有任何問題之后得知項目的真實狀態(tài)。
三、忽視相關性
在軟件開發(fā)中,我們有很多技巧可以用來延遲相關性,我們可以停用一些函數、移動相連的基本架構,或者繞開眾多的錯誤處理,在正確使用的情況下,所有這些技巧都可以幫助推進一個項目,然而,當為了完成項目,而這些技巧的成本因素又沒有被考慮到整個計劃當中時,就埋下了煩惱的種子。很多時候,在項目中排列軟件開發(fā)的順序是非常具有挑戰(zhàn)的事情,相關性并不容易被發(fā)現,因此也就不可避免地有很多相關性因素沒有被安排到計劃當中。為這些不可預見的相關性安排日程表可以讓人變得瘋狂,因此,壓制相關性的方法是經常使用的,但是,如果過度使用了這些技巧,這些費用可能經常會占據項目總成本中很重要的一部分,而且直到項目的最后才會被發(fā)現。
當項目經理不能在成本與降低相關性的便利中取得平衡,那么他們草率地組裝的代碼將會展示出質量問題。所以要確信您現在所做的對于管理相關性是必需的,不會添加過多的成本,而且是整個軟件開發(fā)項目中必不可少的一部分。
四、時間盒(Time boxing)
在破壞軟件質量的事件列表上,時間盒的應用排在第一位,當您告訴某人在任務必須移交之前,他擁有多長時間來