對于創(chuàng)業(yè)公司的產(chǎn)品經(jīng)理來說,很可能因?yàn)榭吹介_發(fā)人員無事可做而感到壓力,所以盡快完成產(chǎn)品定義,而沒有充分了解市場和競爭對手信息,沒有與合作伙伴充分溝通,沒有對項(xiàng)目周期進(jìn)行做深入的思考。
項(xiàng)目周期指一個(gè)投資項(xiàng)目從提出項(xiàng)目設(shè)想、立項(xiàng)、決策、開發(fā)、建設(shè)、施工,直到竣工投產(chǎn),進(jìn)行生產(chǎn)活動(dòng)和總結(jié)評價(jià)的全過程。軟件開發(fā)的項(xiàng)目周期大體分為3個(gè)階段:獲取需求和定義產(chǎn)品、開發(fā)和測試、部署和運(yùn)維。
在獲取需求和定義產(chǎn)品階段,需要防止 的不是進(jì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。要在每日晨會(huì)(站著開,一般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,那么很可能會(huì)在深夜被系統(tǒng)運(yùn)維工程師叫醒。
在進(jìn)行軟件估算時(shí)(包括利用工具輔助估算)必須考慮到這些方面,否則估算結(jié)果就會(huì)和實(shí)際結(jié)果有很大的偏差。軟件開發(fā)是一項(xiàng)非常復(fù)雜的工程,不僅包含需求分析、設(shè)計(jì)、編碼、測試、實(shí)施、維護(hù)等不同的子過程,還涉及到開發(fā)工具、開發(fā)人員、項(xiàng)目管理、風(fēng)險(xiǎn)等眾多因素,不同因素對估算產(chǎn)生的影響不盡相同。
項(xiàng)目的生命期是管理項(xiàng)目的重要指標(biāo),而對項(xiàng)目周期的估算則是管理項(xiàng)目的重要一環(huán)。周期估算如同蓋樓房中 打地基,是后續(xù)工作的基礎(chǔ),它的影響會(huì)貫穿整個(gè)項(xiàng)目。項(xiàng)目周期估計(jì)過長表面看來影響不大,但是實(shí)際上也會(huì)帶來成本估計(jì)過高、充分效率低下的后果。
估算是軟件開發(fā)中很重要的一個(gè)環(huán)節(jié):項(xiàng)目周期估算過短會(huì)造成人力低估、成本預(yù)算低估、日程安排過短,最終人力資源耗盡,成本超出預(yù)算,為完成項(xiàng)目不得不 趕工,影響項(xiàng)目質(zhì)量,甚至導(dǎo)致項(xiàng)目失敗。