項(xiàng)目周期指一個(gè)投資項(xiàng)目從提出項(xiàng)目設(shè)想、立項(xiàng)、決策、開發(fā)、建設(shè)、施工,直到竣工投產(chǎn),進(jìn)行生產(chǎn)活動和總結(jié)評價(jià)的全過程。軟件開發(fā)的項(xiàng)目周期大體分為3個(gè)階段:獲取需求和定義產(chǎn)品、開發(fā)和測試、部署和運(yùn)維。在獲取需求和定義產(chǎn)品階段,需要防止 的不是進(jìn)度太慢而是過快、過草率。特別是對于創(chuàng)業(yè)公司的產(chǎn)品經(jīng)理來說,很可能因?yàn)榭吹介_發(fā)人員無事可做而感到壓力,所以盡快完成產(chǎn)品定義,而沒有充分了解 市場和競爭對手信息,沒有與合作伙伴充分溝通,沒有做深入的思考。
這些因倉促而隱藏的問題,發(fā)現(xiàn)得早則導(dǎo)致開發(fā)階段大量返工,發(fā)現(xiàn)得晚則導(dǎo)致產(chǎn)品上線后不 受歡迎。常聽一些人說現(xiàn)在互聯(lián)網(wǎng)開發(fā),講究快速迭代和敏捷,邊做邊想,返工也正常。這是一個(gè)誤解??焖俚傅氖菍⒉煌姹局g的周期縮短,小步快跑,而 不是在一個(gè)版本的周期內(nèi)來回折騰。
在開發(fā)和測試階段,項(xiàng)目管理重在跟蹤進(jìn)度和保持溝通—用集成和演示跟蹤進(jìn)度,基于Bug溝通問題。
要做到各個(gè)模塊外部接口相對清晰穩(wěn)定,并盡早完成各個(gè)模塊間的集成,最晚不超過開發(fā)周期的1/4時(shí)間。第一次集成之后,就應(yīng)該開始每日集成和每周演示。每日 集成使得測試團(tuán)隊(duì)每天能同步測試最新的代碼,幫助開發(fā)團(tuán)隊(duì)盡早發(fā)現(xiàn)問題并及時(shí)了解技術(shù)細(xì)節(jié)上的進(jìn)度;每周演示使產(chǎn)品經(jīng)理、項(xiàng)目經(jīng)理和管理層能從用戶的角度 感受產(chǎn)品,使他們對產(chǎn)品有信心。集成和演示是項(xiàng)目管理的心跳,合理利用它們,有助于及時(shí)把握項(xiàng)目的健康程度。
無論開發(fā)流程多敏捷,工程師能 力多強(qiáng),記錄和跟蹤Bug都是必不可少的。開發(fā)團(tuán)隊(duì)和測試團(tuán)隊(duì)的溝通都應(yīng)該基于Bug,才能言之有物。開發(fā)工程師每次提交代碼都應(yīng)該記錄是針對哪個(gè)Bug 的,每日工作簡報(bào)都應(yīng)該寫今天關(guān)/開了哪些Bug。要在每日晨會(站著開,一般15分鐘內(nèi))時(shí)說好,今天打算解決哪些Bug,其中有哪些點(diǎn)不清楚,需要和 誰溝通。
在后期部署和維護(hù)階段,要快速響應(yīng)??简?yàn)的是團(tuán)隊(duì)成員的責(zé)任心和抗壓能力。系統(tǒng)運(yùn)維工程師要深夜工作,因?yàn)椴渴鹂赡芤诹髁康偷臅r(shí) 候進(jìn)行;項(xiàng)目經(jīng)理要保持能隨時(shí)溝通,做出快速而準(zhǔn)確的決定,鼓勵(lì)團(tuán)隊(duì)并做出表率;一旦出現(xiàn)高危害Bug,開發(fā)團(tuán)隊(duì)要在24小時(shí)內(nèi)準(zhǔn)備好補(bǔ)丁。這樣不僅能保證快速響應(yīng),還能讓工程師意識到:前期代碼不好好寫,后期就別指望能好好睡覺了。
Amazon 的做法比較有趣:在產(chǎn)品剛上線一段時(shí)間內(nèi),開發(fā)工程師要保持24小時(shí)開機(jī)。如果自己負(fù)責(zé)的模塊中出現(xiàn)高危害Bug,那么很可能會在深夜被系統(tǒng)運(yùn)維工程師叫醒。