如何進(jìn)行產(chǎn)品的功能設(shè)計(jì)?
流程圖定義
流程圖是表示流經(jīng)一個(gè)系統(tǒng)的信息流的圖形代表。
說白了就是表示先做什么后做什么,實(shí)際上就是“開始,結(jié)束,行動(dòng),狀態(tài)與判斷”的組合。
產(chǎn)品流程圖
產(chǎn)品流程圖包括業(yè)務(wù)流程、操作流程和頁面跳轉(zhuǎn)流程。
業(yè)務(wù)流程圖
作用:描述系統(tǒng)內(nèi)各角色之間的業(yè)務(wù)關(guān)系和作業(yè)順序,包括使用產(chǎn)品各種角色中的操作,是描述整個(gè)系統(tǒng)的業(yè)務(wù)走向和業(yè)務(wù)流程,以業(yè)務(wù)處理過程為中心。
通常會(huì)由幾個(gè)「角色」來組成,他會(huì)有一種流水線般的工作線,A搞定了,傳給了B,B搞定他的部分,傳給了C,C搞定后又要將結(jié)果傳給A做。
操作流程圖
作用:描述用戶為完成某個(gè)任務(wù)而對(duì)產(chǎn)品的一個(gè)操作流程
比如成功下單,比如登陸注冊(cè),比如退款等等。
頁面跳轉(zhuǎn)流程圖
作用:描述頁面之間的跳轉(zhuǎn)邏輯,主要面向表現(xiàn)層。
這里面會(huì)設(shè)計(jì)到一些邏輯上的問題,比如一個(gè)提示彈框出現(xiàn)后,如果點(diǎn)擊確定,下一步頁面去哪里?點(diǎn)擊取消呢?
例子
拿外賣點(diǎn)餐產(chǎn)品當(dāng)例子:“我要訂餐”
業(yè)務(wù)流程圖
設(shè)計(jì)產(chǎn)品的時(shí)候常常從業(yè)務(wù)流程開始。
假象一下我們的產(chǎn)品是個(gè)第三方訂餐平臺(tái),平臺(tái)上有很多餐館,用戶通過我們的平臺(tái)點(diǎn)餐付款,我們通知餐館做飯,送餐等等。我們首先要做的就是理清產(chǎn)品中有多少種角色,在腦子里想象下如果一個(gè)用戶下單,需要穿梭過多少種角色才能完成它的下單流程,然后將流程畫出。
畫業(yè)務(wù)流程通常會(huì)用到“泳道圖”這個(gè)是專門來表示多角色配合的一種流程。如下圖
角色有三,用戶,系統(tǒng)(后臺(tái)),廚房(第三方商家)。
跑一下這個(gè)短短的流程,如果「用戶」選好了今天的飯菜,提交訂單了,這時(shí)就將訂單信息推送給了「系統(tǒng)」,「系統(tǒng)」在后臺(tái)生成訂單,用戶的訂單狀態(tài)變?yōu)椤傅却犊睢埂#ㄆ鋵?shí)系統(tǒng)這部分用戶是看不到的,但是產(chǎn)品經(jīng)理需要想清楚。)用戶會(huì)來到支付頁面,這時(shí)候做一個(gè)判斷,用戶是否為這個(gè)訂單支付了費(fèi)用呢?如果是,那么「系統(tǒng)」就會(huì)受理這個(gè)訂單,將信息推送給第三方「廚房」,如果不是,那么用戶就是取消了訂單,訂單狀態(tài)變?yōu)椤赣唵问 埂?/p>
流程中總是由一個(gè)動(dòng)作展開,那么思考時(shí),我們要對(duì)每一步都帶著一個(gè)“如果……不……”會(huì)怎么樣的心態(tài),就會(huì)發(fā)現(xiàn)很多可以做判斷的地方。如果支付不成功呢?如果廚房不接單呢?如果退款不成功呢?這樣想下去你的流程細(xì)節(jié)就會(huì)越來越完善。
總結(jié)
業(yè)務(wù)流程著眼于整個(gè)系統(tǒng)的,注重主要環(huán)節(jié)。
你不只是一個(gè)用戶,因?yàn)橛脩羰遣槐刂篮笈_(tái)的一些判斷細(xì)節(jié)或是操作過程的,但如果你是產(chǎn)品經(jīng)理的話是一定要清楚的。
業(yè)務(wù)流程設(shè)計(jì)流程
設(shè)定角色→跑通流程→用“如果……不……”窮盡判斷,思考產(chǎn)品背后的判斷邏輯。
對(duì)于操作流程圖和頁面跳轉(zhuǎn)流程圖設(shè)計(jì),關(guān)鍵是要模擬用戶場(chǎng)景,則需要考慮三個(gè)場(chǎng)景
- 用戶在什么時(shí)候會(huì)使用這個(gè)功能;(如何開始)
- 用戶在使用這個(gè)功能的時(shí)候希望能提供給他們什么;(如何行進(jìn))
- 用戶在結(jié)束這個(gè)功能的時(shí)候希望是怎樣的。(如何結(jié)束)
即操作流程圖:功能層面(有什么功能,如何進(jìn)行),頁面邏輯層面(前置條件、(入口)怎么開始、怎么結(jié)束)
操作流程(功能層面,有什么功能,如何進(jìn)行)
第一步:定義這個(gè)功能的正常流程
功能的用戶操作流程,只設(shè)計(jì)最簡(jiǎn)單,最正常的流程行進(jìn)。
以下是是“用戶下單”的操作流程。
舉個(gè)栗子,假設(shè)設(shè)計(jì)一個(gè)手機(jī)號(hào)碼的注冊(cè)功能時(shí),用戶的人機(jī)交互正常流程應(yīng)該按照如下的方式行進(jìn)。
這里可看到,用戶可操作4個(gè)子功能、分別是輸入手機(jī)號(hào)碼、點(diǎn)擊獲取驗(yàn)證碼、輸入驗(yàn)證碼、確定注冊(cè)。
這樣就有了一個(gè)基本流程,這個(gè)流程只能作為一條主線,并不能直接交付開發(fā)。
第二步:模擬用戶場(chǎng)景
檢驗(yàn)流程是否滿足用戶需求:主要的原理是行進(jìn)中的流程,應(yīng)該將自己代入到用戶當(dāng)中,去感受這個(gè)功能是否讓用戶感到舒適,或者為了用戶的體驗(yàn),應(yīng)該增加哪些功能。
在這里,我將輸入驗(yàn)證碼修改成自動(dòng)讀取驗(yàn)證碼并輸入,這個(gè)可以方便用戶不用來回切換程序來進(jìn)行輸入。
第三步:極端的模擬(對(duì)功能考慮完善)
每一個(gè)環(huán)節(jié)去考慮分支及異常事項(xiàng):通過代入極端數(shù)值去驗(yàn)證流程是否具備對(duì)異常情況的應(yīng)對(duì)方案。
對(duì)于無數(shù)值輸入的功能,則按照是/否的形式去思考。
示例1:(是非判斷)
第一個(gè)環(huán)節(jié):打開頁面A提示進(jìn)入到注冊(cè)功能(不需用戶進(jìn)行任何數(shù)值輸入,我們用是、否的方式考慮)
考慮的問題:
是:什么場(chǎng)景下,打開頁面A會(huì)提示并進(jìn)入注冊(cè)功能?
否:什么場(chǎng)景下,打開頁面A不會(huì)提示并進(jìn)入注冊(cè)功能?
通過這個(gè)方法,引入用戶是否已登錄的判斷。
示例2:(當(dāng)涉及到數(shù)值輸入我們需要引入極端數(shù)值)
在輸入手機(jī)號(hào)碼的環(huán)節(jié)涉及到數(shù)據(jù)的交互,這個(gè)時(shí)候我們可以采取是否判斷+極端數(shù)值的辦法去考慮異常流程。
是:如果用戶輸入的是手機(jī)號(hào),怎么辦
否:如果用戶輸入的不是手機(jī)號(hào),怎么辦
最大數(shù)值:在輸入無限多的手機(jī)號(hào)數(shù)時(shí),怎么辦?
最小數(shù)值:在不輸入手機(jī)號(hào)碼或只輸入1個(gè)數(shù)字的時(shí)候,怎么辦?
通過這四個(gè)問題,就可以歸納出,應(yīng)該對(duì)流程做出如下限制:
用戶應(yīng)在此輸入框中,只能輸入數(shù)字
用戶應(yīng)在此輸入框中,必須輸入11位的數(shù)字
而上文所說的第二步及第三步,是一個(gè)反復(fù)思考的步驟。
我所建議的是,當(dāng)?shù)谌叫薷耐戤?,返回第二步重新考慮,然后再一次進(jìn)行第三步的修改。直至發(fā)現(xiàn)功能流程已達(dá)到改無可改的時(shí)候。
總結(jié)
相對(duì)于業(yè)務(wù)流程圖,操作流程圖更專注于某一個(gè)任務(wù)或目標(biāo),注重細(xì)節(jié);
操作流程圖是以一個(gè)用戶的操作角度來寫,并不限于所謂的消費(fèi)者用戶(后臺(tái)的操作流程也可以);
在初畫操作流程的時(shí)候,不要早早的去過分在意細(xì)節(jié)與逆流程。(逆流程便是那些需要判斷是否的那個(gè)“否”的流程),第一次用最理想的狀態(tài),將流程跑通,再去思考這里面會(huì)不會(huì)有那些“如果……不……”的細(xì)節(jié)。
頁面流程圖
主要討論的是入口問題:
模擬用戶場(chǎng)景,則需要考慮三個(gè)場(chǎng)景
用戶在什么時(shí)候會(huì)使用這個(gè)功能;(如何開始)
前置條件
用戶在結(jié)束這個(gè)功能的時(shí)候希望是怎樣的。(如何結(jié)束)
那還是按照剛才的功能流程,先考慮如何開始:
實(shí)際上,我們需要考慮的是,這個(gè)功能的入口是否合理(有些同學(xué)可能將功能設(shè)計(jì)得很好,但忘記了入口在哪里)
其次,我們?cè)倏紤]如何結(jié)束:
在流程的完結(jié),應(yīng)該考慮功能最終體現(xiàn)給用戶是什么效果,這里以注冊(cè)來做例子,則是返回到進(jìn)入前的頁面。
看下圖:
從圖中可以看出構(gòu)成:
1.界面。
一個(gè)矩形代表一個(gè)界面,這個(gè)流程中用戶走過兩個(gè)界面(登錄頁和首頁),因?yàn)楸磉_(dá)的是界面的跳轉(zhuǎn),界面是用戶實(shí)實(shí)在在接觸到的媒介,非界面的內(nèi)容,不要出現(xiàn)。
2.動(dòng)作。
矩形之間也就是界面之間加上一個(gè)觸發(fā)動(dòng)作,比如從界面A點(diǎn)擊下一步按鈕,到達(dá)界面B,“點(diǎn)擊下一步”就是連接這兩個(gè)界面的關(guān)鍵動(dòng)作,需要標(biāo)示出來,上圖例子就是“單擊提交按鈕”。
3.條件。
一個(gè)動(dòng)作之后可能有多種“是/否”的結(jié)果,則在矩形之間、動(dòng)作之后加上一個(gè)或多個(gè)判斷菱形。如上圖的檢驗(yàn)賬號(hào)密碼是否輸入正確。
注意事項(xiàng)
1.堅(jiān)持表達(dá)表現(xiàn)層。
不要一個(gè)流程圖里面,又有內(nèi)部算法邏輯,又有界面邏輯,下圖標(biāo)紅的矩形就是多余的,這個(gè)不關(guān)用戶的事情,會(huì)擾亂你的導(dǎo)航設(shè)計(jì)思路:
2.不要把步驟和界面本身都用矩形表示
比如下圖標(biāo)紅的矩形:
3.拋棄系統(tǒng)錯(cuò)誤。
什么是系統(tǒng)錯(cuò)誤呢,也就是非用戶犯的錯(cuò)誤,比如登錄的時(shí)候服務(wù)器當(dāng)了,網(wǎng)絡(luò)連接錯(cuò)誤等導(dǎo)致登錄失敗。除非你特別想強(qiáng)調(diào)系統(tǒng)錯(cuò)誤后的提示界面,否則建議不要加進(jìn)去流程圖里面,因?yàn)槊恳徊讲僮鞫伎赡苠e(cuò)誤,你的流程圖會(huì)因此變得很龐大。如下圖:
4.形式可以很靈活。
a 如果一個(gè)界面可以通往多個(gè)界面,而你又真要描述出這些跳轉(zhuǎn),那就一個(gè)矩形長(zhǎng)出多條線路,對(duì)應(yīng)標(biāo)示上對(duì)應(yīng)的動(dòng)作就ok了。如圖:
b. 如果你想把一些警告窗口等臨時(shí)窗口表達(dá)出來,也可以自定義一些圖形,比如:
總結(jié)
業(yè)務(wù)流程與操作流程都在他之上完成,當(dāng)建立起來操作流程,頁面跳轉(zhuǎn)的流程也就躍然紙上了。只是在做某些交互行為時(shí)要多加注意頁面之間的邏輯、層級(jí)關(guān)系,做到跳轉(zhuǎn)不歧義。
本文由 @Carson_ho原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理?,未經(jīng)許可,禁止轉(zhuǎn)載。
標(biāo)題是產(chǎn)品功能設(shè)計(jì),然后整篇都是流程圖
很多圖沒有啊
沒圖啊
很多圖沒有啊
文章的結(jié)構(gòu)層次不是很明顯 語句有些晦澀 閱讀成本有點(diǎn)高
?? 學(xué)習(xí)了