進(jìn)行軟件項(xiàng)目開發(fā)是一項(xiàng)非常有意義的工作,但這其中也包含著許多的風(fēng)險(xiǎn)和挑戰(zhàn)。有效地管理這些風(fēng)險(xiǎn)是至關(guān)重要的,并且它要求所有各方——包括研究人員,工程師,開發(fā)人員,程序員和項(xiàng)目經(jīng)理——必須要首先考慮健壯的應(yīng)用開發(fā)所需的遵循的基本原則。即使是對(duì)于最具有挑戰(zhàn)性、最復(fù)雜的軟件開發(fā)項(xiàng)目,持續(xù)地專注于這些基本原則都是努力減少項(xiàng)目風(fēng)險(xiǎn)、確保項(xiàng)目成功一個(gè)必不可少的組成部分。定期審查這些基本的原則和做法對(duì)于任何人(包括最有經(jīng)驗(yàn)的開發(fā)人員)都很有價(jià)值。
面臨的挑戰(zhàn)
軟件開發(fā)絕對(duì)不是一件容易的事情。每個(gè)軟件項(xiàng)目都具有自己獨(dú)特的需求,也都面臨著不同的挑戰(zhàn)和問題。預(yù)測(cè)和防范風(fēng)險(xiǎn)的失敗會(huì)造成巨大的損失,它可能會(huì)導(dǎo)致代價(jià)極為高昂的進(jìn)度延誤,造成巨大的收入損失,增加的團(tuán)隊(duì)成員壓力,減少項(xiàng)目的產(chǎn)出,甚至?xí)?dǎo)致整個(gè)項(xiàng)目的最終失敗。
解決方案
雖然每個(gè)項(xiàng)目都有自己獨(dú)特的要求,但是有效的風(fēng)險(xiǎn)管理也都具有一些共同的特性。通過在項(xiàng)目開發(fā)進(jìn)程之前或開發(fā)過程中確定潛在的風(fēng)險(xiǎn)并且制定解決方案,可以最大限度地提高團(tuán)隊(duì)的效率和成品的質(zhì)量。
第一道防線:強(qiáng)烈的基本原則
仔細(xì)評(píng)估潛在的風(fēng)險(xiǎn)并且提出解決方案來解決這些問題,僅僅是風(fēng)險(xiǎn)管理萬里長(zhǎng)征的第一步。你同時(shí)也應(yīng)該認(rèn)識(shí)到:一個(gè)健全的項(xiàng)目開發(fā)的原則,是有效的進(jìn)行風(fēng)險(xiǎn)管理的核心所在;只有不間斷地對(duì)項(xiàng)目的風(fēng)險(xiǎn)進(jìn)行管理,才能夠最大限度地發(fā)揮團(tuán)隊(duì)的工作效率和整體開發(fā)能力,為創(chuàng)造出健全的軟件產(chǎn)品打下堅(jiān)實(shí)的基礎(chǔ)。
靈活的規(guī)劃
首先要保持充分的靈活性。讓小組成員自由地作出決定,因?yàn)槌浞肢@取新的信息能夠使他們迅速作出反應(yīng),而僵化的項(xiàng)目計(jì)劃和進(jìn)度表會(huì)阻礙他們應(yīng)對(duì)新的挑戰(zhàn)的能力。
不靈活的時(shí)間表還會(huì)對(duì)小組成員對(duì)于該項(xiàng)目的進(jìn)展情況的看法產(chǎn)生不良的影響。由于項(xiàng)目計(jì)劃和進(jìn)度安排對(duì)于衡量項(xiàng)目進(jìn)展和期限是非常必要的,不能過于死板。在項(xiàng)目的開始階段促進(jìn)團(tuán)隊(duì)成員的靈活性會(huì)鼓勵(lì)他們更加積極主動(dòng)地面對(duì)正在不斷增加的挑戰(zhàn),同時(shí)也使他們能做好準(zhǔn)備,以一個(gè)更加有效的時(shí)間表推進(jìn)項(xiàng)目的進(jìn)程。
在建立一個(gè)能夠指導(dǎo)團(tuán)隊(duì)成員努力進(jìn)行軟件開發(fā)計(jì)劃的路線圖時(shí),靈活規(guī)劃的重要性就顯得尤為突出了。
良好的發(fā)展原則
在項(xiàng)目的開發(fā)階段,決定項(xiàng)目成功與否的某些重要的未知因素,將作為項(xiàng)目收益顯現(xiàn)出來。這些未知的因素通常就是我們所說的風(fēng)險(xiǎn)。容納這些未知因素的關(guān)鍵是你要認(rèn)識(shí)到,你不可能預(yù)知所有可能發(fā)生的事情。因此你必須要養(yǎng)成正確對(duì)待無知的態(tài)度,特別是在開啟了一個(gè)新的項(xiàng)目的時(shí)候,要防止那些假裝無所不知的人。
人們往往容易過分強(qiáng)調(diào)表面文章以平衡這種不確定性。報(bào)告完成了,會(huì)議參加了,時(shí)間安排也得到滿足了,但很少有人知道項(xiàng)目現(xiàn)在取得了多少進(jìn)展,或什么樣的風(fēng)險(xiǎn)正在安全的范圍內(nèi)積聚。必須明白軟件開發(fā)和風(fēng)險(xiǎn)管理的最終目標(biāo)是優(yōu)秀的軟件,而不是你所熱衷的報(bào)告和時(shí)間表,不能讓這些報(bào)告和時(shí)間表成為你工作的重心。
在這里我們提出的一個(gè)極其重要的開發(fā)原則是減少代碼的復(fù)雜性,并且實(shí)現(xiàn)相同功能模塊化。分離的代碼模塊,并不能為所有目標(biāo)平臺(tái)或操作系統(tǒng)所共享。確保剩余的代碼是共同的,這樣就可以使你的努力最佳化,并為以后的產(chǎn)品開發(fā)中對(duì)于原先模塊的維護(hù)以及軟件的有效再利用奠定了基礎(chǔ)。
集成產(chǎn)品團(tuán)隊(duì)(IPTs)
構(gòu)建集成產(chǎn)品團(tuán)隊(duì)是控制成本和減少風(fēng)險(xiǎn)的另一重要法寶,特別是對(duì)于那些可能影響進(jìn)度的因素來說,集成管理團(tuán)隊(duì)為解決問題提供了便利,使團(tuán)隊(duì)能夠迅速應(yīng)對(duì)不斷變化的要求,并促使大家按照預(yù)定的進(jìn)度開展工作。
該團(tuán)隊(duì)能夠很好地使客戶(在大多數(shù)情況下是政府機(jī)