梳理業務邏輯以及產品需求文檔

理清業務邏輯是交互設計的第一步,你必須得擁有非常清晰的邏輯思維,因為某些產品往往伴隨着海量的功能、大量的模塊、錯綜複雜的交互流程以及難以理解的業務技術背景,這些都是對設計師邏輯思維的一個挑戰。如果你沒有清晰的清晰的邏輯思維,那可能就不適合做交互設計了。

一些快速梳理業務邏輯和功能文檔的心得:

  1. 當我們拿到PRD時先快速閱讀一遍,快速閱讀的目的是讓你大概了解客戶的需求和業務邏輯,在你心中形成一個模糊的需求模型,這樣會提高你的效率。
  2. 準備一張紙和一支筆,把客戶的業務流程一步一步地畫下來,在畫業務流程的時候多問產品和自己幾個為什麼,為什麼客戶會有這樣的需求?產生需求的場景是什麼?為什麼會出現這樣的問題?問題的概率大嗎?等等(上訴問題如果有條件的話可以專門做一次客戶調研)。問題弄明白后,把問題和問題的答案一併記錄到對應的流程節點上。當你認認真真地畫完一遍后整個業務邏輯也就差不多弄懂了。接下來再把整個流程看一遍,然後閉上眼去回憶和思考整個流程。如你當你閉上眼能夠順利地理清整個流程,那麼你也就弄懂了整個業務邏輯了。
  3. 冥想,把自己想成一個真實的用戶,帶着需求和場景繼續去回憶整個業務流程。

確定核心任務並確定任務優先級

在講核心任務前,我想先用一張圖來闡述用戶需求的實現過程(如下圖)。

如上圖,任務是由設計師為了滿足用戶需求所設計出來的,用戶要想實現他的需求就得去完成產品為他所設計的任務,這就好比在遊戲中做任務一樣,你只有完成了遊戲任務你才能得到遊戲的獎勵和升級。對於某項任務來講又需要具體的行為去完成它,這就形成了任務的操作流程。需求、任務、行為這三者之間就形成了行為驅動任務,多項任務去實現用戶需求的關係。

那麼什麼又是核心任務呢?於一個產品來說,大量最終用戶希望通過這個產品去完成的任務被稱為核心任務;對於一個功能模塊來講,大量用戶會經常使用某些功能去完成的任務稱為核心任務。

為什麼需要確定核心任務?核心任務是大部分用戶大部分時間使用產品完成的任務,這正是為用戶帶來驚喜,為他們創建良好體驗的絕佳機會,用戶在使用產品的過程中對核心任務的期望會越來越高。通過了解用戶的核心任務,你會更容易地去改進產品,對所需資源按優先度排序,把資源和時間投到核心任務上去,而不是花大量時間去改進那些用戶不經常使用的功能。前段時間寫過一篇文章《任務優先級的重要性》,實例講解了核心任務的重要性。

如何確定核心任務?由於核心任務會隨着用戶需求的改變而改變,而用戶需求又會隨着目標用戶的變化而變化,所以說你首先得弄明白自己產品最終用戶群體的類型。在確定了目標用戶群體后,接下來就是確定他們的需求(這一步梳理功能需求文檔的時候就完成了),確定用戶需求后你就很清楚這個功能模塊中用戶經常使用的功能是什麼,他們在使用這些功能時的痛點是什麼。如果你是在改進一款現有的產品,不要坐着去YY用戶的需求,站起來找幾個實際使用的用戶做個簡單的調研,這樣很快就可以確定用戶的實際需求所在。接下來就是根據需求去確定核心任務,要永遠記住任務是為了完成用戶的需求,它看起來很像在描述一個產品的功能。舉一個簡單的例子,用戶的需求是希望能和好友一起聽歌,我們設計出來的任務可能就是“分享一首歌給好友並同步播放”、“查看好友的歌單並一起聽歌”

設計任務流程圖

任務流程圖是由用戶目標作為導向來設計的,它描述的是用戶實現某一目標所需要完成的任務,這些任務彼此間按照先後順序和條件連成一條線,這樣就形成了任務流程圖。舉一個最簡單的購物流程,我的目標是購買一件男士羽絨服,我需要完成的任務如下:登陸網站—尋找男士羽絨服—確定購買對象—選擇物品參數—加入購物車—結算—付款。設計任務流程時要不斷思考和嘗試如何讓用戶完成更少的任務去實現它的需求。在實際工作中,這部分工作通常由產品經理完成,或者是交互設計師配合產品經理完成。

設計行為流程圖

行為流程圖是完成某項任務所需要進行的具體操作。上面的的購物流程中每項任務都對應着具體的行為流程,拿結算來講,用戶會經過如下的這些操作:

和同行交流中發現很多人並沒有任務流程和行為流程的概念,會把他們混為一談一起去設計,個人認為這樣是不好的,因為對於架構非常複雜的產品來講,一起設計會使你的思維在整體流程與具體行為之間不斷地跳躍,思路會變得很亂,設計出來的流程可能會是相當複雜的。

交互邏輯的完善

在用戶完成某項任務的時候,不同場景下不同的選擇或操作會帶來不同的交互反饋和結果,這個過程中,我們就需要去完善這些交互邏輯。以下是我在完善交互邏輯時經常考慮的方面:

1.是非條件的判斷:

是非條件是交互流程中最常見的一種條件判定,大家應該都懂的,還是舉京東付款的例子,點擊結算了會判斷你是否有默認的收貨地址,如果沒有就得添加,如果有就默認選擇。

2.網絡信號

大家可能會認為網絡信號不就是在沒有網絡的時候給用戶一個提示嘛,沒有什麼好注意和設計的。非也,在沒網時一個好的處理方式會給用戶帶來意想不到的驚喜,在這個設計上被微信感動過,微信在沒有網絡時依然能發朋友圈,而且會記住你發布的時間,在有網絡時系統自動幫你按照之前的時間戳發布出去。想想,如果這裏我們只是做簡單的處理,沒有網絡時就不能發朋友圈,用戶會有什麼樣的感受呢?還有,對於工具型產品,斷網情況下的處理方式是非常重要的。比如說你正在填寫一個表單,這個時候網絡斷了,該怎麼辦呢?

3.任務中斷

這種情況是經常會遇見的交互場景,上面說的網絡中斷也可能導致任務中斷的發生。任務中斷可能由外部不可抗力因素或者自身需求改變等引起,在任務中斷時我們需要去判斷中斷任務的原因並給出相應的反饋,舉一個點外賣的例子,在餓了么點外賣時我到付款這一步時突然覺得菜點錯了想重新選擇一下,於是我放棄了付款,然後返回到了訂單詳情頁面,再次點擊返回就回到了首頁,這時我會很迷茫,為啥就回到首頁了呢,我又得重新去尋找一遍餐廳,同樣的情況,百度和美團取消付款后在訂單頁面點擊返回時則是回到了之前所選的店家頁面。

4.需求改變

在用戶執行任務的時候需求可能會發生改變,這種情況在工具型產品中很常見,舉個例子,下面為某BI工具的數據配置界面,我本來想做一個多種線型的組合圖(數據配置界面如圖2),做着做着我想切換成餅圖(數據配置界面如圖3),最後我又想再切換為組合圖。餅圖和組合圖的數據配置方式是有一些區別的,在它們之間相互切換時,數據的放置會發生怎樣的變化呢,再切換回來的時候是否與之前的保持一致?

圖一