建立原型的主要原因是為了解決在產(chǎn)品開發(fā)的早期階段不確定的問題,利用這些不確定性來判斷系統(tǒng)中哪一部分需要建立原型和希望從用戶對原型的評價(jià)中獲得什么。原型可以使他們的想象更具體化,有助于說明和糾正這些不確定性,總的來說通過原型法可以很好的減少項(xiàng)目風(fēng)險(xiǎn)。
我們和業(yè)務(wù)人員經(jīng)常談到的是水平原型,水平原型也叫做“行為原型” (behavioral prototype)。探索預(yù)期系統(tǒng)的一些特定行為,并達(dá)到細(xì)化需求的目的。當(dāng)用戶在考慮原型中所提出的功能可否使他們完成各自的業(yè)務(wù)任務(wù)時(shí),原型使用戶所探討的問題更加具體化。它更多從業(yè)務(wù)需求著手,應(yīng)用在需求階段。
垂直原型(vertical prototype),也叫做結(jié)構(gòu)化原型或概念的證明,實(shí)現(xiàn)了一部分應(yīng)用功能。當(dāng)預(yù)期實(shí)現(xiàn)階段可能存在技術(shù)風(fēng)險(xiǎn)時(shí),可以開發(fā)一個(gè)垂直原型。垂直原型通常用在生產(chǎn)運(yùn)行環(huán)境中的生產(chǎn)工具構(gòu)造,使其結(jié)果一目了然(更有意義)。比起在軟件的需求開發(fā)階段,垂直原型更常用于軟件的設(shè)計(jì)階段以減少風(fēng)險(xiǎn)。
從原型存在生命時(shí)機(jī)考慮分為拋棄型原型和進(jìn)行型原型,拋棄型原型不作為最終產(chǎn)品的一部分,只是作為探索性的回答一些需求問題,細(xì)化需求并提高需求質(zhì)量。由于在開發(fā)階段最終將拋棄這些原型,因此不需要花太大力氣去建立該原型。
進(jìn)化型原型是在已經(jīng)清楚地定義了需求的情況下,為開發(fā)漸進(jìn)式產(chǎn)品提供了堅(jiān)實(shí)的開發(fā)基礎(chǔ),作為產(chǎn)品的部分實(shí)現(xiàn)。與拋棄型原型的快速、粗略的特點(diǎn)相比,進(jìn)化式模型一開始就必須具有健壯性和產(chǎn)品質(zhì)量級的代碼。因此,對于描述相同的功能,建立進(jìn)化型原型比建立拋棄型原型所花的時(shí)間要多。一個(gè)進(jìn)化型原型必須設(shè)計(jì)為易于升級和優(yōu)化的,因此,你必須重視軟件系統(tǒng)性和完整性的設(shè)計(jì)原則。要達(dá)到進(jìn)化型原型的質(zhì)量要求并沒有捷徑。進(jìn)化型原型一般在處理架構(gòu)時(shí)會采用。
原型分低保真原型和高保真原型,低保真原型目標(biāo)在于表達(dá)工作主要內(nèi)容,體現(xiàn)靜態(tài)的元素,不需要動態(tài)交互。高保真原型目標(biāo)是作出一個(gè)和實(shí)際上線后的產(chǎn) 品差不多的樣子,不僅包括靜態(tài)的界面,還包括交互,甚至有的還把數(shù)據(jù)保存、邏輯驗(yàn)證等都包含在內(nèi)。如果客戶要求開發(fā)之前必須看到和實(shí)際產(chǎn)品一樣的原型時(shí), 這時(shí)就需要做高保真原型,如果對于小型項(xiàng)目,或者只是用來做交流主要需求用時(shí),就可以做低保真原型。
需求在產(chǎn)品開發(fā)中的重要性已經(jīng)是不需爭議的事實(shí),現(xiàn)在需求方法有很多, 業(yè)界最常用的一種辦法就是通過原型展現(xiàn)需求,通過用例表達(dá)需求。業(yè)務(wù)人員掌握制作原型能夠更快更清楚的表達(dá)業(yè)務(wù),同客戶和開發(fā)可以進(jìn)行更直觀的溝通,使得大家在理解上容易更一致。然而原型工具有非常多,比如大多數(shù)人用過的Excel、Access、Delphi、PowerPoint、Axure、Balsamiq Mockups、ForeUI、iRise、Lucid Spec、Mockup Screens、Pencil、Serena等,甚至開發(fā)工具雅奇等也可以用來做原型。工欲善其事,必先利其器,對于剛剛使用原型方法的業(yè)務(wù)人員來說,如何選擇適合自己的原型工具呢?這就需要首先根據(jù)原型的目的明確做原型的粒度。
在限定時(shí)間內(nèi)能夠?qū)⑿枨蟊磉_(dá)更清晰需要一個(gè)合適的工具。業(yè)務(wù)人員一般都不會有什么編程經(jīng)驗(yàn),我們怎么能夠做出表達(dá)靜態(tài)元素界面,又能加入動態(tài)交互功能的原型呢?為了能在需求階段都能夠更好的采用原型開發(fā)方法,我搜集并使用過多種原型工具,希望找打一款比較使用簡單,但又能實(shí)現(xiàn)一般的交互功能,最好是業(yè)務(wù)人員學(xué)個(gè)一個(gè)小時(shí)就可以完全自己動手使用了。我用過一個(gè)原型工具 GUI Design Studio ,它的主要特點(diǎn)就是操作簡單,不需要開發(fā)人員幫助,通過半個(gè)小時(shí)的學(xué)習(xí)后你將可以自己開始做原型了。《原型工具GUI Design Studio》對這個(gè)工具的使用進(jìn)行可簡單介紹。
我們可以通過原型來引導(dǎo)用戶來使用系統(tǒng)解決問題,但原型不僅僅是需求,它還是設(shè)計(jì)、開發(fā)工具,所以作原型時(shí)不僅需要客戶的參與,也需要技術(shù)人員的參與,但應(yīng)該盡量由業(yè)務(wù)人員而非開發(fā)人員來實(shí)現(xiàn)原型的需求部分。 下面是在UCD社區(qū)里面看到的一張圖,原型最主要功能是表現(xiàn)界面,但要做好界面其實(shí)不容易,山下面還有很多東西需要 考慮才能支撐界面,其實(shí)做原型的過程就是設(shè)計(jì)系統(tǒng)的過程。我們都希望盡量把開發(fā)工作前移,需求能做的工作就不留到開發(fā)環(huán)節(jié)做。如果軟件模式一定,那么框架 做得好的話就一定可以讓業(yè)務(wù)人員來做一部分現(xiàn)在屬于開發(fā)人員的工作(注:這部分工作其實(shí)本就該屬于業(yè)務(wù)人員),那時(shí)大家就能體會到開發(fā)軟件就如同做原型一 樣的樂趣了!
細(xì)心的讀者在《OpenExpressApp架構(gòu)-信息系統(tǒng)開發(fā)平臺》中的Roadmap圖中能看到右邊的OpenTool中包括對原型的支持。OEA關(guān)注點(diǎn)更多的是從軟件工程向業(yè)務(wù)工程的轉(zhuǎn)移,所以和業(yè)務(wù)相關(guān)的原型會作為一個(gè)重點(diǎn)工具來考慮。
OEA的原型工具將會考慮集成需求工具、設(shè)計(jì)工具和開發(fā)工具與一體,由業(yè)務(wù)需求人員、設(shè)計(jì)師和開發(fā)人員在OpenExpressApp平臺下進(jìn)行連貫的開發(fā),它做的是水平、進(jìn)化型、高保真原型。