??????? 近日,和隊(duì)友一起對(duì)IBM的SOA大賽的命題思索,感觸良多。
??????? 需求是軟件開發(fā)的起點(diǎn),更是開發(fā)成敗的關(guān)鍵。我們一拿到題目不禁產(chǎn)生了如下疑問:沒有一個(gè)真實(shí)的,可以調(diào)查、訪問、咨詢的客戶,不能與之討論、協(xié)商以明確需求,我們的設(shè)計(jì)和開發(fā)會(huì)不會(huì)就是一場(chǎng)游戲一場(chǎng)夢(mèng)呢?如果僅僅是虛幻的南柯一夢(mèng),那么大賽是否能夠真正地考量出參賽者的架構(gòu)設(shè)計(jì)能力呢?沒有詳盡的需求,這是我們面臨最大的挑戰(zhàn)。
????????? 硬幣是兩面的,大賽也是。討論和思索中,我們發(fā)現(xiàn)了一些有價(jià)值的線索,或許這才是對(duì)大賽題目的正確解讀。
“或許你并不需要完整的需求,最起碼在開始設(shè)計(jì)的時(shí)候”。對(duì)于軟件開發(fā)來(lái)說,開發(fā)模型的選擇或許是至關(guān)重要的,是MSF,RUP還是FDD,XP。就本項(xiàng)目而言,項(xiàng)目的規(guī)模不應(yīng)該超過15人月(5名隊(duì)員,3個(gè)月),顯而易見我們應(yīng)當(dāng)選用某些輕量級(jí)的模型,例如:XP。另一面,大賽初賽要求提交的制品顯然只是設(shè)計(jì)而不包括代碼實(shí)現(xiàn),考慮到IBM主推的RUP過程,我們有理由認(rèn)為初賽、復(fù)賽就是RUP的Inception和Elaboration兩個(gè)階段,而決賽則是Construction和Transition兩個(gè)階段。對(duì)于RUP來(lái)說在Inception和Elaboration的早期我們并不需要完整的需求,更不需要Frozen Requirements。
???????“做一只騎在大象身上的猴子”,Barry Boehm的話或許是我們?cè)谶x擇本項(xiàng)目的開發(fā)模型問題上最好的指導(dǎo),我們不用純粹的RUP,也不用某一種固定的XP方法,我們將有針對(duì)的來(lái)制定本項(xiàng)目的SDP。
?????????最近,EMC的“秘書門”事件網(wǎng)上炒得沸沸揚(yáng)揚(yáng),我并無(wú)太多興趣,倒是記住了EMC的motto,“與客戶,合作伙伴和同事建立長(zhǎng)久關(guān)系的核心要求是做正確的事,永遠(yuǎn)是”。如果不希望SOA大賽對(duì)于我們只是“春夢(mèng)了無(wú)痕”,或許我們需要在這場(chǎng)游戲中從選擇正確的開發(fā)模型開始。
?????? “做正確的事,永遠(yuǎn)是”。
??????? 需求是軟件開發(fā)的起點(diǎn),更是開發(fā)成敗的關(guān)鍵。我們一拿到題目不禁產(chǎn)生了如下疑問:沒有一個(gè)真實(shí)的,可以調(diào)查、訪問、咨詢的客戶,不能與之討論、協(xié)商以明確需求,我們的設(shè)計(jì)和開發(fā)會(huì)不會(huì)就是一場(chǎng)游戲一場(chǎng)夢(mèng)呢?如果僅僅是虛幻的南柯一夢(mèng),那么大賽是否能夠真正地考量出參賽者的架構(gòu)設(shè)計(jì)能力呢?沒有詳盡的需求,這是我們面臨最大的挑戰(zhàn)。
????????? 硬幣是兩面的,大賽也是。討論和思索中,我們發(fā)現(xiàn)了一些有價(jià)值的線索,或許這才是對(duì)大賽題目的正確解讀。
“或許你并不需要完整的需求,最起碼在開始設(shè)計(jì)的時(shí)候”。對(duì)于軟件開發(fā)來(lái)說,開發(fā)模型的選擇或許是至關(guān)重要的,是MSF,RUP還是FDD,XP。就本項(xiàng)目而言,項(xiàng)目的規(guī)模不應(yīng)該超過15人月(5名隊(duì)員,3個(gè)月),顯而易見我們應(yīng)當(dāng)選用某些輕量級(jí)的模型,例如:XP。另一面,大賽初賽要求提交的制品顯然只是設(shè)計(jì)而不包括代碼實(shí)現(xiàn),考慮到IBM主推的RUP過程,我們有理由認(rèn)為初賽、復(fù)賽就是RUP的Inception和Elaboration兩個(gè)階段,而決賽則是Construction和Transition兩個(gè)階段。對(duì)于RUP來(lái)說在Inception和Elaboration的早期我們并不需要完整的需求,更不需要Frozen Requirements。
???????“做一只騎在大象身上的猴子”,Barry Boehm的話或許是我們?cè)谶x擇本項(xiàng)目的開發(fā)模型問題上最好的指導(dǎo),我們不用純粹的RUP,也不用某一種固定的XP方法,我們將有針對(duì)的來(lái)制定本項(xiàng)目的SDP。
?????????最近,EMC的“秘書門”事件網(wǎng)上炒得沸沸揚(yáng)揚(yáng),我并無(wú)太多興趣,倒是記住了EMC的motto,“與客戶,合作伙伴和同事建立長(zhǎng)久關(guān)系的核心要求是做正確的事,永遠(yuǎn)是”。如果不希望SOA大賽對(duì)于我們只是“春夢(mèng)了無(wú)痕”,或許我們需要在這場(chǎng)游戲中從選擇正確的開發(fā)模型開始。
?????? “做正確的事,永遠(yuǎn)是”。
????????????????????????????????????????????????????????????????? 王青
??????????????????????????????????????????????????????????? 2006-4-30
??????????????????????????????????????????????????????????? 2006-4-30