里碰得頭破血流。那么,我們?cè)撛趺崔k?
讓我們從開發(fā)過程中尋找答案吧!唐柳宗元道:“苛政猛于虎”,我們常常會(huì)畏“最后期限”如虎,然而殊不知錯(cuò)誤的開發(fā)過程或方法有時(shí)候會(huì)比這條“虎”更為兇猛!此外,我們還可以從計(jì)劃執(zhí)行、任務(wù)安排、團(tuán)隊(duì)合作等諸多方面找到可以擠出來的時(shí)間。這個(gè)時(shí)候,項(xiàng)目管理者必須像葛朗臺(tái)老頭一般,精打細(xì)算,珍惜每分鐘項(xiàng)目時(shí)間的運(yùn)用。然而,項(xiàng)目管理者絕對(duì)不能因?yàn)闀r(shí)間緊促,而像周扒皮那樣半夜學(xué)雞叫,讓團(tuán)隊(duì)成員加班加點(diǎn),像牲口一般的對(duì)待。偶爾為之,或許無傷大雅,然而每日都如此,那么只能說明這個(gè)項(xiàng)目已經(jīng)到頭了,趕緊準(zhǔn)備失敗的毒藥吧。因此,我們要做到:
1、合理裁減開發(fā)過程。
在項(xiàng)目管理過程中,必須執(zhí)行相應(yīng)的開發(fā)流程,例如計(jì)劃評(píng)審、同行評(píng)審、階段評(píng)審等。此外,QA會(huì)拿著眾多檢查點(diǎn),每日走查項(xiàng)目組是否在質(zhì)量保證方面存在缺陷。因此,在項(xiàng)目周期緊張的情況之下,項(xiàng)目管理者與QA就必須針對(duì)項(xiàng)目的實(shí)際情況,合理地裁減開發(fā)過程,省去一些不必要的官僚會(huì)議以及QA檢查的表面文章。同時(shí),隨之而來的利益則是大量工件,尤其是文檔的減少。如果能夠讓開發(fā)人員能夠從文山會(huì)海中解脫出來,謝天謝地,他會(huì)成為項(xiàng)目開發(fā)的急先鋒。要知道,世界上所有的程序員都在為文檔的編撰而苦惱。減少文檔不等于說不寫文檔,即使是敏捷開發(fā),注重代碼與可工作的產(chǎn)品勝過完整的文檔,仍然不會(huì)忽略基本文檔的編寫。雖然在對(duì)需求和設(shè)計(jì)進(jìn)行分析期間,我們可以考慮用面對(duì)面交談的方式,或者在白板上寫下我們的設(shè)計(jì)方案,但為了項(xiàng)目沉淀或者產(chǎn)品維護(hù)與重構(gòu),以及考慮成員變化等種種因素,文檔的編寫仍然是項(xiàng)目開發(fā)中不可缺失的重要環(huán)節(jié)。關(guān)鍵是編寫文檔的“度”。敏捷的布道者Alistair Cockburn在其書《敏捷軟件開發(fā)》中寫道:“團(tuán)隊(duì)成員應(yīng)當(dāng)在為將來的使用而超支的成本與未來文檔不足的風(fēng)險(xiǎn)之間進(jìn)行平衡。找到兩者之間的平衡點(diǎn)是一門藝術(shù)……”我對(duì)那種形而上學(xué)的開發(fā)過程管理深惡痛絕。為了通過階段評(píng)審,我們必須要騰出時(shí)間來編寫階段評(píng)審文檔,然后請(qǐng)來那些大多數(shù)尸位素餐的評(píng)審委員會(huì)專家,然后不痛不癢地提出幾個(gè)缺陷或錯(cuò)誤,最后一團(tuán)和氣的結(jié)束會(huì)議。顯然,這是一種官僚思想,是集體的資源浪費(fèi)。即使為了某些辦公室政治考慮,那么項(xiàng)目經(jīng)理也應(yīng)該像牧羊犬那樣,保護(hù)自己的團(tuán)隊(duì)成員免受這方面的干擾,就像Scrum所要求的那樣。
2、合理的設(shè)定功能優(yōu)先級(jí),并以此制定開發(fā)計(jì)劃。
這里我們可以玩弄一個(gè)花招,即使我們無法在客戶那里尋求到裁減功能的支持,但我們?nèi)匀豢梢栽诠δ軆?yōu)先級(jí)方面大作文章。例如將客戶要求的優(yōu)先級(jí)高的功能,以及技術(shù)實(shí)現(xiàn)必須的高優(yōu)先級(jí)功能先行實(shí)現(xiàn),那么,到了最后期限來臨之際,即使我們還有一大堆低優(yōu)先級(jí)的功能未曾實(shí)現(xiàn),但由于客戶最關(guān)心的功能點(diǎn)能夠高質(zhì)量地運(yùn)行,最后的產(chǎn)品雖然沒有完全滿足客戶的需求,但憑借著優(yōu)先級(jí)的合理劃分,也可以讓我們?cè)诤竺娴纳虅?wù)談判中占據(jù)先機(jī)。此外,我們還可以信誓旦旦地向客戶承諾,我們會(huì)在交付產(chǎn)品之后,繼續(xù)完成剩下的功能??蛻羰欠裢耆珴M意,誰知道呢?但至少我們交付了產(chǎn)品!以己之見,雖然這個(gè)產(chǎn)品不夠全面,但總比交付一個(gè)全面的產(chǎn)品,卻錯(cuò)誤頻現(xiàn)要來得好。
3、提高會(huì)議效率。
無論是傳統(tǒng)的軟件開發(fā)方法,還是敏捷方法,在軟件開發(fā)過程中,不可避免要召開各種各樣的會(huì)議。畢竟軟件是人開發(fā)的,而且是組成一個(gè)團(tuán)隊(duì)的人開發(fā)的,因而交流成為必然。我并不反對(duì)召開這樣的會(huì)議,相反,我很樂于參加這樣的會(huì)議,因?yàn)檫@樣可以讓我的口才在全體同僚面前得到充分地展示。然而,會(huì)有多少的寶貴時(shí)間淹沒在這樣的夸夸其談,或者口沫橫飛之