而且版本控制系統(tǒng)在需求變動激烈的項(xiàng)目中,更是充當(dāng)了一種保險機(jī)制。無意中用錯誤版本的代碼覆蓋工作拷貝的事情可以得到徹底解決。
靈活運(yùn)用敏捷開發(fā)
實(shí)際上,我從來沒有采用過完整的敏捷開發(fā)。因?yàn)槲艺J(rèn)為既然敏捷開發(fā)本身強(qiáng)調(diào)的就是應(yīng)對變化,那么敏捷開發(fā)過程本身也應(yīng)該是可剪裁的。像結(jié)對編程、持續(xù)集成這些,對公司本身和開發(fā)人員的要求相對來說都更高。如果要一一達(dá)標(biāo),確實(shí)不太可能。
所以有選擇性的實(shí)行敏捷開發(fā),是我最常用的方式。
例如對于User Story,除非是客戶充分配合,否則是難以實(shí)施的。這個時候應(yīng)該在前期將工作做細(xì)致,盡可能明確大部分需求。然后以最快的速度做出原型系統(tǒng)后,和客戶進(jìn)行溝通獲取反饋意見。
同時,即便采用User Story,對于較復(fù)雜的系統(tǒng),也應(yīng)該深入客戶企業(yè),了解客戶企業(yè)員工的工作流程。因?yàn)橛袝r候客戶方負(fù)責(zé)項(xiàng)目的人士很可能會按照自己的想法渲染實(shí)際的工作流程或者環(huán)境,這對項(xiàng)目的中后期是非常不利的。
在國內(nèi),一個項(xiàng)目要做得順利,項(xiàng)目負(fù)責(zé)人還要懂得“做人”。和客戶方負(fù)責(zé)人、聯(lián)系人保持良好的關(guān)系是非常非常重要的,否則他們一句話可能就會讓項(xiàng)目的開發(fā)成本增加不少。這些東西的內(nèi)容遠(yuǎn)遠(yuǎn)超過了技術(shù)領(lǐng)域,但卻是我們不得不面對的問題。
遲來的成功
新系統(tǒng)花了一個月就開發(fā)完成了,因?yàn)槌藱?quán)限系統(tǒng)是完全重做的外,其他部分都大量利用了已有系統(tǒng)的結(jié)構(gòu)和代碼。雖然在模擬權(quán)限系統(tǒng)時花了不少時間,但這樣模擬的結(jié)果保證整個系統(tǒng)具有充分的可用性。
這個項(xiàng)目是我公司迄今為止用FleaPHP應(yīng)用程序開發(fā)框架(http://www.fleaphp.org)開發(fā)的最復(fù)雜的應(yīng)用程序。不算FleaPHP自身在內(nèi),應(yīng)用程序的核心有100多個類,6700多行代碼。從與客戶意向性洽談到最后完成,足足花了六個月時間,期間開發(fā)實(shí)際上只進(jìn)行了三個月不到,而且還是做了兩次。其他時間全花在溝通、協(xié)調(diào)、開會上了(有時候不得不抱怨一下國有企業(yè)僵化的機(jī)制)。
如果我一開始能夠耐心說服客戶接受我的意見,那么整個項(xiàng)目的開發(fā)過程可能就會順利得多;蛘哒f我能在項(xiàng)目初審發(fā)現(xiàn)問題后通過其他渠道爭取支持,那么也可以避免后來的二次開發(fā)。不得不說我在如何“做人”方面還有許多需要學(xué)習(xí)的東西。
這個故事雖然不夠精彩,但是很真實(shí)。
此文章共有4頁 上一頁 1 2 3 4
文章來源:中國項(xiàng)目管理資源網(wǎng)
|