4 原型方法的一般過程
基于原型方法在整個(gè)需求過程中的地位,我們需要把原型法和需求處理放在一起進(jìn)行討論。
在上圖中已經(jīng)清楚地描述了原型的處理過程,值得一提的是,原型不僅用于給用戶或者最終用戶進(jìn)行評(píng)議,同時(shí)完全可以在公司內(nèi)部組織評(píng)議,看看我們周圍吧,多數(shù)程序員對(duì)技術(shù)的興趣遠(yuǎn)遠(yuǎn)高于對(duì)需求的興趣,因此其對(duì)系統(tǒng)的理解并不會(huì)比市場(chǎng)人員或者項(xiàng)目經(jīng)理理解的深多少。這里的公司內(nèi)部人員角色可以包括很多,系統(tǒng)分析員/程序員自身、項(xiàng)目經(jīng)理、部門經(jīng)理、用戶代表、領(lǐng)域?qū)<?、測(cè)試人員等等,不同的角色往往會(huì)在其不同立場(chǎng)對(duì)系統(tǒng)提出中肯的意見來。
另外值得注意的是界面設(shè)計(jì)的引入。我們認(rèn)為將界面風(fēng)格在原型階段即進(jìn)行基本確定是一種優(yōu)化的做法,因?yàn)檐浖捌趯?duì)界面的確定可以避免后期開發(fā)時(shí)對(duì)界面進(jìn)行統(tǒng)一調(diào)整所帶來的不必要的成本花費(fèi),良好的界面也可以使客戶增加對(duì)系統(tǒng)的好感,當(dāng)然,但愿用戶不要只是欣賞界面而忽略了他們對(duì)系統(tǒng)功能的思考。要知道,如果僅僅是讓用戶看到美觀的界面,那么整個(gè)原型幾乎是白做了。
5 使用原型方法的相關(guān)問題探討
5.1 為什么要采用原型法?
原型對(duì)一個(gè)項(xiàng)目取得成功具有重要的意義。俗話說:隔行如隔山,實(shí)際上軟件公司很難保證其制作的軟件正好就是用戶所需要的,用戶也很難一次性把其真實(shí)的要求完全提交,開始階段提出的往往只是對(duì)系統(tǒng)的期望,和比較模糊的設(shè)想而已。而原型系統(tǒng)為用戶提供了一個(gè)靶子,看著原型系統(tǒng),用戶往往就能進(jìn)一步提出他們的真正想法。顯然軟件公司明確用戶需求的最佳方式就是為用戶提供原型并由用戶進(jìn)行評(píng)價(jià)。
也許,跳過原型可以節(jié)省時(shí)間和前期成本,但你應(yīng)該注意到,跳過原型的話,后期變更的成本會(huì)明顯增加。
5.2 為什么在需求說明書之外需要原型?
1)眼見為實(shí),文字具有歧義性,不同的人理解都不相同;
2)最終用戶往往在看到一套可運(yùn)行的系統(tǒng)的基礎(chǔ)上,才可能提出其真實(shí)的意見,如果到最終提交時(shí)才看到這樣的系統(tǒng)就為時(shí)太晚。這也是以前無(wú)數(shù)軟件開發(fā)留下的教訓(xùn);
3)便于發(fā)現(xiàn)問題,及時(shí)糾正;
4)便于進(jìn)一步展開,并取得用戶的細(xì)節(jié)需求;
5)體現(xiàn)原型的其它功能:便于公司內(nèi)部如經(jīng)理、市場(chǎng)部等對(duì)軟件提出意見,便于開發(fā)人員對(duì)整個(gè)產(chǎn)品達(dá)成統(tǒng)一認(rèn)識(shí),等等。對(duì)內(nèi)部人員來說,同樣地,一套形象的原型也遠(yuǎn)勝過一堆專業(yè)術(shù)語(yǔ)文字;也就是說,原型對(duì)軟件公司內(nèi)部也十分重要。這些評(píng)價(jià)工作無(wú)形之中改進(jìn)了項(xiàng)目質(zhì)量。
5.3 原型方法有什么風(fēng)險(xiǎn)?
任何方法都是有利有弊,在我們可以探討一下原型方法可能存在的風(fēng)險(xiǎn)。以下是一般軟件公司所擔(dān)心的風(fēng)險(xiǎn):需要付出前期進(jìn)度和人力成本;由于程序員對(duì)問題的不了解而效率低下,受客戶牽制而在原型上反復(fù)修改;因?yàn)閭}(cāng)促設(shè)計(jì)而做不利于進(jìn)一步在其基礎(chǔ)上繼續(xù)開發(fā);由于過早展示原型給客戶,使得客戶可能提高其期望值,并提出更多離譜的要求,等等。
值得一提的是原型方法的主要價(jià)值之一就是盡早揭示軟件中可能存在的風(fēng)險(xiǎn)及不確定因素,尤其是關(guān)于用戶需求一致性方面的風(fēng)險(xiǎn)。
5.4 原型方法和其它方法或過程的關(guān)系如何,是否一致?
生命周期法中并不包括原型,或者說沒有明確提供原型的概念和定義。原型可以認(rèn)為是需求分析中的一個(gè)子部分。另外,應(yīng)該說原型方法是對(duì)生命周期法的有益補(bǔ)充和完善。
RUP中是最優(yōu)化的統(tǒng)一軟件過程,但RUP中似乎沒有提到原型,RUP的核心過程是在迭代中精化。我個(gè)人的見解是,原型非常類似于第一次迭代的過程和結(jié)果。實(shí)際上,如果把原型看作為第一輪交付的成果,那么原型的很多不利之處,諸如花費(fèi)前期成本等等,這些擔(dān)心都將變得不復(fù)存在。
XP方法對(duì)原型非常推崇,這是因?yàn)閄P方法非常強(qiáng)調(diào)需求的重要性