關于異步任務的設計探索
在產品設計過程中,區分同步和異步任務對于提供流暢的用戶體驗至關重要。本文通過一個客戶簽約業務的案例,分析了在設計異步任務時常見的錯誤,并提出了改進方案。
這是一個客戶簽約的業務,流程如下:
- 開票員給客戶開通代收的業務,并且與客戶簽約(即簽訂代收協議);
- 主管審核客戶的簽約業務,若拒絕,則開票人需要通知客戶修改資料重新提交;
- 若同意,則簽約成功,流程結束。
一、曾犯的錯誤
自己分析了一下之前的錯誤,發現雖然分析了整體的業務流程、角色的權限與上下游,但沒有去分析這個任務是同步還是異步的,導致與開發同學也吵了很久,錯誤分析如下:
- 提交后沒有告訴發起人(即開票員)整體的流程,導致很多發起人以及客戶對后面的流程一臉懵逼(發起人對接客戶,但經辦人不會對客戶);
- 提交之后沒告訴發起人這是一個異步的問題,需要等待一段時間才會有結果;
- 實際上,在簽約審核的時候,發起人是可以幫客戶完成其它業務(如綁定銀行卡、消費等),導致發起人跟客戶傻傻地等經辦人簽約完成再去幫客戶辦理其它業務。
雖然我們有一整隊實施團隊去幫助集團中的所有使用者去了解業務,但作為一個產品,還是必須保持敬畏之心對待用戶才可以。
二、異步與同步
什么是異步呢?
對于程序來說就是一個請求發出去了,但系統不會立刻處理,而是放在隊列里,系統會按照隊列方式去處理它,或者處理的時間非常長也可以歸為異步任務。
反過來同步任務就是請求遞交,幾乎即時就有反饋。
以前我總是同步、異步的任務都用同樣的設計,單純地通過反饋彈窗告訴用戶這個任務大概需要等多久,很多用戶就傻傻在那里等著。
于是今天,我按照上邊歸類的問題,修改了原型:
為了讓發起人知道總體的流程,提交簽約之后,我們需要反饋一個結果且告訴發起人整體的流程,便于發起人與經辦人交接(由于我們接入了企業微信的通知,【催一下】可以直接在企業微信通知經辦人)。
第二個問題需要告訴發起人這個任務需要等待,這時候我們需要引入站內消息功能,并且告知用戶可在哪里看到查看審核結果的通知。
若這個任務是比較重要的,可以考慮單獨列一個任務列表,這樣任務完成時,用戶可立即知道。
最后,我們需要引導發起人先去完成其他任務,就要在結果頁中對按鈕做相關業務的跳轉,改一下:
總結了一下,異步任務的設計邏輯:
- 需要告訴用戶整體的流程以及任務的進度;
- 需要告訴用戶,這個任務需要等待,并告知用戶當有結果時,系統會進行及時的通知,讓用戶安心;
- 引導用戶去完成其它業務。
另外之前做異步任務的設計時發現一個很嚴重的問題:用戶不敢關閉當前窗口或切換到其它地方,他會很害怕任務會被中斷。
所以我們要清楚地告知用戶:“這個任務需要等待,有結果時我們會及時通知你,你可以進行其它業務的操作”
未完待續,后續文章請大家持續關注。
本文由 @蔡包 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自Unsplash,基于CC0協議
該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。
- 目前還沒評論,等你發揮!