理解敏捷開發(fā):需求處理與齊頭并進(jìn)
敏捷開發(fā)是一種理念,現(xiàn)在在國內(nèi)各個(gè)開發(fā)團(tuán)隊(duì)的實(shí)現(xiàn)雖然還不成熟,但認(rèn)可度已經(jīng)相當(dāng)可觀。下面是博客園的青宇對敏捷開發(fā)的一些理解與心得分享:
我們部門是一個(gè)基礎(chǔ)平臺(tái)研發(fā)部門,主要為其他各部門提供技術(shù)接口和服務(wù)支持。
也正是由于這個(gè)特性,部門內(nèi)正在考慮基于WCF搭建一套服務(wù)平臺(tái)。
部門內(nèi)提倡敏捷開發(fā),談?wù)勎易约簩γ艚莸暮唵卫斫狻?/P>
對需求做足功課
個(gè)人認(rèn)為敏捷的前提是要對需求做充足的功課。
一、明確需求
比如我們每天都要為別的部門提供很多接口,在開發(fā)過程中逐漸發(fā)現(xiàn)我們其實(shí)做了很多重復(fù)性的工作。
同時(shí)大量的技術(shù)接口(webservices調(diào)用、post調(diào)用)非常分散,難以管理。針對這種情況,我們迫切的需要一套統(tǒng)一的服務(wù)平臺(tái)。
我們的目的就是能夠提供各種部門之間甚至是公司對外合作的技術(shù)接口支持。具體這個(gè)平臺(tái)叫什么,都包括什么,可能還不是很明確。
二、合理的拆分需求
我們的目的很明確,所以我們決定對目前的需求進(jìn)行分析。通過和各部門同事交流我們對目前存在的需求做了分析。一是從業(yè)務(wù)上拆分,我們可以
得到很多子系統(tǒng)。二是從技術(shù)上考慮,我們理出一些通用的基礎(chǔ)的功能以及支持業(yè)務(wù)擴(kuò)展的功能。這樣呈現(xiàn)在我們面前的就是一個(gè)個(gè)經(jīng)過組合的子系統(tǒng)。
雖然目前的這個(gè)模式還是沒有名字,不過我們已經(jīng)有了進(jìn)行下去的勇氣。
三、迎接變化
在我們了解需求的過程中,部門的同事都會(huì)提到兩個(gè)字“目前”?!斑@是我們目前的工作。”,“這是我們目前存在的問題”。
沒錯(cuò),沒人敢預(yù)測未來。我們也沒打算做一勞永逸的系統(tǒng)。但我們該如果應(yīng)對變化呢?
了解變化點(diǎn),我們做不到預(yù)測未來。但我們可以盡力去掌握哪些地方有可能變,哪些地方會(huì)經(jīng)常變。甚至能分析出他會(huì)朝著那個(gè)趨勢變。
齊頭并進(jìn)開發(fā)子系統(tǒng)
一、“并列式”開發(fā)
將開發(fā)團(tuán)隊(duì)分割成小組,不同的子系統(tǒng)交由各個(gè)小組負(fù)責(zé)開發(fā)。大家可以同年同月同日開工,不一定非得同年同月同日完成。總比一條線的“瀑布”要快的多。
二、關(guān)注代碼,以人為本
不必在開發(fā)的每一個(gè)階段整理無窮盡的文檔。整齊的代碼更能體現(xiàn)程序員的智慧。可以沒有詳細(xì)設(shè)計(jì),這樣其實(shí)更不害怕變化。
沒有計(jì)劃變化也就無所謂變化了。
三、迭代
這是迭代法的解釋:迭代法也稱輾轉(zhuǎn)法,是一種不斷用變量的舊值遞推新值的過程,跟迭代法相對應(yīng)的是直接法(或者稱為一次解法),即一次性解決問題。
敏捷開發(fā)中鼓勵(lì)迭代,周期性的停下來歇一歇,看看過去幾天寫的東西,整理整理思路。其實(shí)這是我們在自己尋找變化。所以說敏捷的核心思想是適應(yīng)變化!
【編輯推薦】