軟件行業(yè)發(fā)展了很多年,已經(jīng)衍生出各種開發(fā)模式,像RUP,極限編程等等。而本文詳細(xì)記錄了我在使用輕量級B/S引擎NoahWeb來開發(fā)B/S結(jié)構(gòu)的CSDN新聞MIS系統(tǒng)的時所使用的“增量迭代”開發(fā)模式的過程。意在讓更多的人能了解和對比NoahWeb中所倡導(dǎo)的“增量迭代”開發(fā)模式同其他模式的不同之處。
特別感謝:撰寫本文時由于得到CSDN相關(guān)部門的大力支持!因此文中所提MIS系統(tǒng)的各階段源碼也隨本文同時提供,在了解這套MIS系統(tǒng)的開發(fā)模式的同時,有興趣的讀者還可以深入了解一下CSDN對新聞采編所使用的先進(jìn)管理經(jīng)驗,再次感謝CSDN為我們無私的公開該項目源碼與管理思想。
先來和大家介紹一下本文中將要登場的三個人物(使用代稱):
- James-我公司的客戶經(jīng)理
- Neo-CSDN管理人員
- job-也就是我,這個項目的具體實施者
- 另外還有CSDN一些使用該系統(tǒng)的使用者。
6月8日(星期三):需求分析階段
上午
早晨到公司上班,James告訴我有一個新的系統(tǒng)要開發(fā),是CSDN的一個MIS系統(tǒng)。并把頭天晚上他和Neo在MSN進(jìn)行的一段交談記錄發(fā)給了我,并要我盡快完成這個項目,MSN談話中Neo詳細(xì)講述了他所需要的新聞報道的MIS系統(tǒng)的需求,看后我對系統(tǒng)也有了個大概了解。
MSN中的內(nèi)容如下:
由于NoahWeb開源示例中已經(jīng)有一套成型的MIS權(quán)限管理示例,并提供了完整的源碼,所以有關(guān)MIS中的權(quán)限這部分我覺得我沒必要再做了,可以直接以它為藍(lán)本繼續(xù)開發(fā)。另一方面雖然Neo對所系統(tǒng)的需求已經(jīng)描述的很仔細(xì),可是系統(tǒng)中有關(guān)系的元素很多。我和Neo之間的理解可能會有很大差異,因此開發(fā)管理上我決定采用“增量迭代”模式,逐步探索該系統(tǒng)的需求,同時保證整個項目能盡快完成。
因此,第一步:我先用假頁面進(jìn)行系統(tǒng)策劃,以便更多更深刻的了解Neo那邊的需求。
下午
15點36分:經(jīng)過一系列分析,我制作出假頁面交付給James,我們的目的是更多更深刻的了解Neo那邊的需求。這時的假界面版本暫定為1.0。
策劃1.0版本
James把這個策劃發(fā)給了Neo,其中他們又使用了MSN進(jìn)行溝通,對話內(nèi)容如下:
15點41分:我回頭看James和Neo在MSN對話的時候發(fā)現(xiàn)策劃1.0版本中我遺漏了“搜索產(chǎn)品的功能”,呵沒辦法,常言到智者千慮也必有一失嘛。沒等Neo給我反饋,我已經(jīng)開始修改策劃,又發(fā)了一套假頁面的策劃給James,這個版本為1.1。 策劃1.1版本
16點53分:James拿到了Neo那邊的意見,意見如下: MSN對話內(nèi)容
為此我再次制作出了1.2版本的策劃假頁面。
策劃1.2版本
18點26分:James發(fā)來了和Neo的對話。策劃出來的假頁面已經(jīng)不需要進(jìn)行修改,這是個不錯的消息。明天準(zhǔn)備開始寫代碼實現(xiàn)功能。 原對話內(nèi)容
今天用靜態(tài)頁面做了好幾個策劃版本,目的是通過這些的界面可以讓客戶通過一定程度的真實體驗感去體會系統(tǒng)最后開發(fā)出來的效果,從而提出反饋獲得幫助獲得更準(zhǔn)確的需求,通過這幾次的修改對客戶的需求會更快更深的了解,這無疑是一種非常好的低成本增加效率的方式,也能大大減少開發(fā)后期需求變化的可能,至少不會出現(xiàn)和用戶需求“大相徑庭”的現(xiàn)象。
6月9日(星期四) - 6月10日(星期五) :編碼實現(xiàn)階段
從策劃分析確定了這個MIS系統(tǒng)很小,所以“增量迭代”后面的過程我就簡化了。周四和周五兩天內(nèi)沒再同James或是Neo溝通,根據(jù)最后確定的策劃1.2版,開始設(shè)計數(shù)據(jù)庫和編寫代碼,由于NoahWeb的編碼機(jī)制很利于“增量迭代”模式的開發(fā),而且有很強(qiáng)的表單支持,資源重用很容易,所以在兩天內(nèi)整套MIS系統(tǒng)的功能就都實現(xiàn)了。
MIS系統(tǒng)1.0版本下載(根據(jù)策劃1.2 版,完成的實際版本MIS版本1.0)
給James發(fā)過去了代碼,James在下班前把1.0版發(fā)給了CSDN的Neo,呵呵本周工作結(jié)束,周末我可以好好休息了。
6月13日(星期一) :空閑
今天沒我啥事,可能CSDN那邊還未進(jìn)行部署吧。我繼續(xù)做我別的事情。
6月14日(星期二) :變更階段
上午
依舊沒我啥事情,我接著弄別的。
下午
16點15分:CSDN的Neo給James發(fā)來了系統(tǒng)安裝后的一個錯誤日志報告,我忽略的一個小BUG。 對話內(nèi)容
為此我趕快發(fā)送了將缺少資源的兩個文件進(jìn)行替換解決了此BUG。
16點22分:CSDN那邊試用過系統(tǒng)之后發(fā)來了反饋意見,呵呵意料中的事了,一個系統(tǒng)沒真正使用前誰也不能體會真實的使用感覺,所以在試運行階段,變更是肯定的,這個正好也是“增量迭代”的中心思想! 對話內(nèi)容
18點29分:經(jīng)過修改,把1.1版本給James發(fā)過去了。 MIS系統(tǒng)1.1版本下載
18點47分:Neo和James聯(lián)系,那邊對于1.1版本基本上滿意了,任務(wù)順利完成。 對話內(nèi)容
后記:
“增量迭代”模式本身源于實際B/S項目開發(fā)的經(jīng)驗,它將整個必要的開發(fā)過程分成多個迭代過程,并通過迭代探索用戶真實需求,并在每次迭代的同時根據(jù)最新獲得的需求調(diào)整最終系統(tǒng),使用迭代也將減少系統(tǒng)開發(fā)結(jié)束之后的變更工作量,把原本在項目最后階段才會暴露出的變更融合進(jìn)整個項目開發(fā)中,縮短開發(fā)周期!降低成本。
本次的開發(fā)到這里也就結(jié)束了。5天開發(fā)完成出這么一套系統(tǒng)的確不是一件容易的事情,最初3個版本的策劃假頁面起了很大的幫助,如果沒有這些工作,恐怕兩周也不能開發(fā)完成。另一方面NoahWeb引擎所采用的高效編碼機(jī)制對采用“增量迭代”模式下的編碼效率和迭代中變更支持也起到了決定性的作用。
希望這種開發(fā)模式能為大家?guī)硪稽c點的靈感,謝謝。
參考資料:
參考一:什么是NoahWeb?(http://www.noahweb.net/what.aspx) 參考二:什么是動作?(http://www.noahweb.net/training/whataction.aspx) 參考三:適合1月以下的“增量迭代”管理流程(http://www.noahweb.net/training/website.aspx) 參考四:適合1月以上的“增量迭代”管理流程(http://www.noahweb.net/training/base.aspx)
出處:藍(lán)色理想
責(zé)任編輯:藍(lán)色
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|