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