引入敏捷開發(fā)
其實我公司不是第一次嘗試敏捷開發(fā),只是這個項目由于前期做了“細致”的文檔,所以沒有按照慣用的快速迭代模式進行開發(fā)。但新系統(tǒng)在排除了“人”的障礙后,采用敏捷開發(fā)的條件已經(jīng)很充分了。
User Story
我首先和客戶方派來的代表一起模擬了權(quán)限系統(tǒng)的運作方式,最終得到了一個和最初設(shè)計功能近似,但具備充分實用性的權(quán)限系統(tǒng)設(shè)計方案。
模擬過程類似角色扮演游戲。我先在許多張卡片上寫好各個部門及員工的名字、職位信息。然后我和客戶代表一起,手持不同的卡片扮演不同的角色。然后將不同角色之間的交互過程記錄下來。這個過程就是敏捷開發(fā)中倡導(dǎo)的“User Story”,雖然簡單,但是非常有效。不但能夠真正理清各個角色之間的關(guān)系,還能找出實際運用時的不足之處。
在我和客戶代表的模擬過程中,開發(fā)人員則迅速創(chuàng)建一個符合我們演示過程的權(quán)限系統(tǒng)來驗證權(quán)限系統(tǒng)的可行性。當然,如此高要求的快速開發(fā)還需要借助公司從以往項目中積累的大量可復(fù)用代碼以及高水平的開發(fā)人員。
快速決策和充分溝通
由于在客戶企業(yè),一個很簡單的決策可能也要層層批復(fù)。所以經(jīng)過我公司的艱苦努力,客戶企業(yè)最終決定由一位領(lǐng)導(dǎo)來專門負責(zé)該項目的決策。所以大部分決策可以在較短的時間內(nèi)獲得反饋意見。
而客戶代表在整個新系統(tǒng)開發(fā)期間,幾乎一半時間都在我公司上班。這也保證了我公司和客戶之間的充分溝通,并且當面溝通也比通過電話更容易說服客戶接受我的意見。
實際上,不管采用何種開發(fā)模式,充分的溝通都是保障項目成功的關(guān)鍵因素之一。溝通越充分、雙方協(xié)作程度越高,項目就會進行得越順利,成功的幾率也更大。而在敏捷開發(fā)中,由于是通過小步前進的快速迭代來逐步逼近項目最終目標,所以溝通就更為重要。否則一次迭代完成后,卻得不到及時和正確的反饋,那么項目也無法進行下去。
有限的單元測試
持續(xù)集成雖然非常有用,但是對于這個項目卻不太適合。不過為了保證子系統(tǒng)的修改不至于影響到全局系統(tǒng),我仍然編寫了一些重要的單元測試。
準確來說,這幾十個單元測試都不太符合“單元測試”的標準。因為每個測試實際上都要用到子系統(tǒng)的許多接口。但在項目時間壓力下,這些測試既能很大程度上保證子系統(tǒng)的修改不至于對全局系統(tǒng)產(chǎn)生太大的破壞作用,又不用花太多時間去維護。所以是一個折衷的選擇。
不過這里我認為這里做得很好的地方就是單元測試是由我來編寫的,并不是開發(fā)人員自己編寫的,所以更能夠反映我和客戶的意圖。同時測試重點也更偏重業(yè)務(wù)領(lǐng)域,而不是程序行為。
版本控制系統(tǒng)
雖然敏捷開發(fā)沒有對版本控制系統(tǒng)做要求,但使用版本控制系統(tǒng)可以很明顯的提高開發(fā)效率。例如我和客戶代表驗證一個想法后,發(fā)現(xiàn)這個設(shè)想并不好,那么通過版本控制系統(tǒng),開發(fā)人員幾分鐘就可以退回到先前的代碼或者切換到其他階段的代碼。
此文章共有4頁 上一頁 1 2 3 4 下一頁
文章來源:中國項目管理資源網(wǎng)
|