對于任何産品設計來說,構建流程都是一個繞不開的環節。其奠定了後續的産品框架,是用戶體驗的基石。本文将從定義和分類出發,結合實際案例,深入淺出地闡述流程圖的作用以及畫法。
定義
流程——顧名思義:水流的路程;事物進行中的次序或順序的布置和安排。流程是自然而然就存在的,它可以不規範,可以不固定,可以充滿問題。
由兩個及以上的步驟,完成一個完整的行為的過程,可稱之為流程;注意是兩個及以上的步驟。
流程圖的核心就在于如何排布事物進行的次序,不同的順序可能造成截然不同的結果。
目的
産品經理畫流程圖的目的不外乎幾點:
- 流程圖為産品設計基石,可以保證産品的使用邏輯合理順暢
- 傳達需求,用流程圖來更好地表達産品邏輯
- 查漏補缺,檢驗是否有遺漏的分支流程
分類
流程圖以描述對象分類,包括:業務流程圖、頁面流程圖、功能流程圖、數據流程圖等。
業務流程圖(Transaction Flow Diagram, TFD)
先以宋丹丹小品中的一個腦筋急轉彎為例:把大象裝冰箱,總共分幾步?
三步:
- 第一步,把冰箱門打開;
- 第二步,把大象裝進去;
- 第三步,把冰箱門關上。
這看似是一個笑話,但其實蘊含着很強的邏輯思維。首先這裡忽略了很多現實中的限制條件。比如,以大多數冰箱的容積都不可能将大象塞進去;比如是否能把大象切成塊放進去?如果把大象塞進去,它會不會又跑出來?但抛開這些限制條件,那把大象塞冰箱的極簡流程就是三步。打開冰箱門,把大象裝進去,最後把門關上。
我們做業務流程圖,其實很多時候都需要具有把“大象塞進冰箱”的思維方式,抛開很多現有的認知局限,将具象的行為一個個抽象出來。
結合上面的例子,再來細細品味“業務流程圖”的定義:
抽象地描述事物進行的次序和順序,不涉及具體操作與執行細節。在互聯網軟件行業通常指脫離産品設計的用戶行為流程。業務流程圖是一種系統分析人員都懂的共同語言, 用來描述系統組織結構、業務流程。
不管是否理解上述定義,下面帶着抽象思維去思考購物行為的業務流程圖應該是什麼樣的?
以上的三步組成了一個最簡的一個流程,其完全涵蓋了任何購物行為的核心。無論是網購還是在實體超市,都是以這三個行為為主體,然後進行擴展的。相對于大家平時看到的複雜的網購流程圖,以上的三步流程簡直簡單的令人發指,而這恰恰是印證了大道至簡的原理。我始終堅信無論再複雜的事情都能簡化為極其簡單的事情,如果你無法将其簡化,說明隻是你沒有理解其核心。
依據上面的最小流程單元,我們下面嘗試能不能将其擴展,嘗試套用在更細節的流程圖上面。
頁面流程圖(Page Flow Diagram)
定義:指電子産品具體所呈現的頁面跳轉流程圖。其承載了業務流程圖所包含的業務流轉信息。
下圖以淘寶為例,展示出了網購的頁面流程。
由上圖紅框中的三個節點我們可以看出,頁面流程圖依然是包含在業務流程圖的。這恰恰符合定義中的要求,同時也印證了頁面流程圖的正确性。相較于一開始的極簡流程圖,現在的流程圖已經漸漸變得複雜了一些。我們将抽象的業務,映射在了具象的頁面上,用軟件的頁面承載起了業務需求。而以上就是由業務流程圖到頁面流程圖的轉化過程。
功能流程圖(Function Flow Diagram)
定義:指單頁面内或多頁面之間的功能操作流程,其包含在頁面流程中。
任何功能都是被包含在頁面内的,但一個頁面内往往不止一個功能,所以單單頁面流程圖可能無法完整表達所有流程,而這時就需要用功能流程圖來更加具體表達每個頁面内所包含的功能。
由上圖紅框中的四個節點我們可以看出,功能流程圖同樣也是由頁面流程圖拓展而來的。功能流程圖是在頁面流程圖的基礎上繼續深化,變得更加複雜。同時也漸漸變得像大家日常看到的流程圖一樣。
數據流程圖(Data Flow Diagram)
定義:特指軟件産品中,描述數據在不同節點被處理的過程所畫的圖表。主要表達計算機程序對于業務的實現原理。用戶在功能流程圖中的每一個操作,對應都會反映在數據流程圖中。同時,數據流程圖也可以叫程序流程圖(Program Flow Diagram)。
它是一種能全面地描述信息系統邏輯模型的主要工具。它可以利用少數幾種符号綜合的反映出信息在系統中的流動、處理和存儲的情況。數據流程圖具有抽象性和概括性。
可能業務流程圖、頁面流程圖和功能流程圖大家都耳熟能詳,但數據流程圖恐怕了解的就比較少了。其實,每個流程圖中都有一個核心伴随着不同操作在整個系統中不斷流轉。比如業務流程圖大多以人為核心,每個節點都是在傳遞人的不同行為。而頁面流程圖和功能流程圖也類似,都是以人的操作行為為核心,在不同頁面和功能間進行流轉。但數據流程圖不同,它是以數據為核心,展示整個系統中,數據是如何被處理的。
其更偏技術思維,更多的是展現後台程序的實現原理。所以,常常是開發人員繪制此圖,而産品經理涉及較少。但随着産品經理地不斷成長,向上提高到戰略層,而向下則會深入到實現層。理解程序的開發原理和背後的數據流轉,無疑會讓産品經理對産品設計有更加深刻的理解。
下面仍以購物流程為主題來展示數據流程圖。
相較于之前的圖表,數據流程圖增加了新的維度——程序。客戶端在展現用戶操作行為的同時,也表達了程序在用戶行為背後的動作。而往往大家說一個産品複雜的時候,可能隻注意到了它的前端交互複雜,而忽視了後端邏輯的複雜。對于一個優秀的産品經理來說,不止要關注前端的用戶體驗,更要能看清事物背後的邏輯。畢竟人人都可以對用戶體驗指手畫腳,而說到程序實現,那可就體現出産品經理的專業性來了。
小結
以上幾幅圖片分别展示了一個産品的業務流程、頁面流程、功能流程和數據流程。從中可以發現,由業務到頁面,再到功能,再到數據處理,是順序拓展的。一個産品的頁面或功能,不是憑空出現的,而是依據業務層的各個節點和流程進行設計的。這就是為什麼在做産品設計時一定要先理解業務的原因。
在初步學習畫流程圖時,盡量将業務、頁面、功能和數據區分清楚,并且逐層遞進,不要把多種類型的流程圖混雜一起。這樣反而會将思想搞得混亂。
流程圖的顆粒度
所謂流程圖的顆粒度,其實就是指流程圖的細緻程度。
我在畫流程圖時也常常會猶豫糾結,這個功能點用不用描寫得更詳細?這條分支用不用标出來?這個和服務器的交互事件用不用在流程圖體現?等等這些問題,也都是産品經理在日常畫圖時會遇到的。
依然拿購物流程為例,最簡的業務流程分為三個步驟,那如果細化一些,是否可以畫出不同的流程圖呢?
顯而易見,即便針對同一個流程,也能畫出不同的流程圖。如上圖,将挑選商品拆分為三個步驟,将結賬拆分為兩個步驟。但兩個流程圖依然表達的是一套流程。而這就是每個人對于顆粒度的把握有所不同。有很多新人總想一步到位,一次畫出完美的流程圖。但這其實是一種非常不可取的思維。任何完善的流程圖,都需要經過由簡單到複雜的過程,而不是一蹴而就。
理論上來說,流程圖的細緻程度越高,産品設計就越準确順暢。但實際情況中,過度的詳細反而是浪費時間。而對于度的把握能力,則需要經驗積累以及團隊磨合,這裡也是體現産品經理對顆粒度把握能力的地方。我們畫流程圖的最終目的是讓團隊成員理解我們的産品設計,而不是需要畫一幅非常詳細的流程圖。理想的情況應該是以最簡的形式,畫出團隊都能理解的圖表。
流程圖畫法
上面講解了流程圖的定義和分類,下面就進入具體的流程畫法講解
流程圖基本元素
以上為流程圖中最常用的幾種元素。不常用的元素就不在此展示了,大家可以在Microsoft Visio中查看。
泳道圖
泳道圖是流程圖中的一種畫法,是将流程圖中的一些流程節點按操作角色的不同而劃分。比如剛才的數據流程圖其實就采用泳道圖的畫法展示,其中頂部為兩個不同角色——用戶和服務器。同時在豎向的基礎上也可以添加橫向泳道,以不同頁面來給操作分類。
對于涉及到多角色比較複雜的流程圖來說,畫泳道流程圖會看起來更加清晰明了。
流程圖的組成部分
流程圖主要由三部分組成:
- 主幹流程
- 分支流程(異常流程屬于分支流程)
- 子流程
下圖是将之前功能流程圖的例子作為主幹流程,然後添加了分支流程。我們在畫流程圖時應該遵循先主幹後分支的順序來描繪流程圖,因為對于大多數用戶來說,主幹流程是最常用的路徑。
主幹流程和分支流程大家都好理解,那到底什麼是子流程呢?在畫流程圖的過程中,有一些流程是會經常遇到的,比如登錄流程、注冊流程、修改密碼流程。對于電商來說,可能有退貨流程、購物券使用流程等等。如果每次畫與之有關的流程圖的時候,都将其再畫一遍,那實在繁瑣。所以,子流程就是将某幾個具有邏輯關系的節點集合而成的,可以複用在各個地方。
下圖就是将登錄流程變成子流程後的流程圖。
流程圖的結構
流程圖中大緻包含四種結構:順序結構、條件結構(又稱選擇結構)、循環結構。基本上大多數流程圖都是由這三種結構組成的。
案例
上面說了那麼多理論知識和概念,那下面就開始真刀實槍地展示一個案例。本來一開始我想以電商産品作為例子,因為電商産品是需要極強邏輯思維的産品,并且比較常見。但後來發現淘寶、京東等都極為龐大和複雜,分析起來過于笨重。轉而想起共享單車是個非常不錯的教材案例。其産品極簡,但背後卻暗藏有趣的邏輯架構。尤其是市面上摩拜與ofo不同的産品解決方案,分析起來更加有對比性。
共享單車的前身
如果要追溯最早的共享單車,恐怕就是政府推出的有樁自行車。其推出目的無非就是緩解交通壓力,以及減少環境污染。而當時受限于成本、技術以及大衆人群的普遍素質,有樁自行車的解決方案是極其不方便的。想要租一輛有樁自行車,首先要憑身份證在相關單位辦理IC卡,并繳納押金和預存費用,然後租車和還車隻能在定點位置進行。先不談辦理卡片有多麻煩,租車還車有多不方便,超時扣費有多驚人,如果隻單純将其用業務流程圖展示出來,應該是什麼樣的呢?
下面依然以最簡單的業務形态來展示使用有樁單車業務流程圖:
單看有樁單車的流程圖其實沒有任何意義,真正的意義在于有樁單車和目前摩拜與ofo的橫向對比,下面看一下兩家共享單車的業務流程圖:
很明顯可以看出,無論是有樁單車、摩拜單車還是ofo單車,在業務流程圖上竟然沒有太大區别。那為什麼多年之前政府主導的有樁單車平平無奇,而2016年末出現的共享單車紅極一時?那摩拜和ofo兩款截然不同的單車,區别點到底在哪裡呢?我們需要更加深入地分析每個業務節點,剖析其功能。
因為單車的使用流程不僅是在APP上,還有一部分操作在實體自行車上,這時就不能單使用頁面流程圖,而是要直接使用功能流程圖。并且這裡的功能流程圖不局限于頁面内的功能,而是要表達用戶對單車和APP的每一步操作。
首先看ofo單車,在APP中支付押金後,接着便需要尋找自行車。而這時我們發現,雖然ofo有多種單車樣式,多種車鎖機制。但本案例着重講ofo第一代機械鎖,與第二代僞智能鎖。
這兩種鎖其實代表了兩種不同的産品解決方案,我們先讨論第一種機械鎖。(所謂機械鎖,其實類似于生活中經常見到的密碼箱。每個密碼箱有預設的固定密碼,通過撥弄表盤輸入正确密碼,即可開鎖。并且機械鎖的密碼是固定的,不會改變)。
我們從路邊找到機械鎖單車,然後打開APP,輸入車牌号或掃描二維碼,從APP中得到本車的機械鎖密碼,然後輸入密碼,打開單車車鎖。此時APP中會進行倒計時,倒計時結束則開始正式計費。最後,騎行到目的地後,需要将車鎖關閉,并且必須在APP中點擊結束騎行的按鈕,才能結算此次行程的訂單。
看完了ofo的流程,下面來對比看一下摩拜的流程。
摩拜的産品解決方案為,掃描單車的二維碼以後,摩拜單車的車鎖會自動打開,不需要像機械鎖一樣手動操作。并且在鎖車後,摩拜單車自動會結束行程,無須在APP中點擊結束。在下一次APP打開時,才會進行賬單結算。
下圖分别為ofo機械鎖單車使用流程圖和摩拜單車使用流程圖(APP标識代表用戶在APP上的操作)
我們可以清楚地看到摩拜的流程比ofo的少了兩個節點,而這就是摩拜對比ofo第一代機械鎖的優勢。當然,ofo第一代也有其他方面是優于摩拜的,比如騎車的舒适程度。但本文主要聚焦于産品流程,所以并不在單車體驗上花費太多筆墨。
縱觀ofo機械鎖和摩拜智能鎖的解決方案來看,ofo明顯是遜色很多的。機械鎖帶來的問題,不止是使用流程的複雜,還有很多是産品使用上的漏洞。比如,用戶鎖車後,必須手動将密碼撥亂,不然下個人将可以免費騎行。比如,用戶在騎行結束後,忘記在APP點擊結束,會造成更額外扣費。等等還有很多問題,就不一一列舉了。
說句題外話,這些問題ofo也都明白。機械鎖的解決方案倘若隻在封閉的校園内運行,那還差強人意。但一經投放到校外市場,那麼這種解決方案無疑會給公司帶來巨大的損失。那為什麼ofo明知問題,還要大量投放呢?原因很簡單,以摩拜拓展的速度,如果他不在當時迅速走出校園,那麼也許永遠也沒機會走出校園了。
言歸正傳。之前的讨論,一直避開了一個非常重要的節點——“找車”。抛開路邊随機看到單車不談,就拿地圖找車來說,ofo第一代機械鎖肯定是沒有GPS定位的,為什麼也能在地圖上顯示呢?
下面我們嘗試畫一下ofo對于解鎖的程序流程圖是什麼樣的。
我們從“APP掃描二維碼/輸入單車編号”此節點開始推導。我要開車牌号為XXX的單車,那麼就需要得到密碼,而所有車的密碼,都應該放在ofo的單車數據庫中。我們不論是掃描二維碼,還是輸入單車号,本質都應該是将單車編号傳輸給服務器,告訴它我要哪輛車的密碼。服務器查詢到此單車的密碼以後,就傳輸回APP,我們就看到了此單車的密碼。
因為節省車鎖電源的原因,服務器此時并沒有和單車聯系,而是靠人工輸入密碼打開車鎖。所以ofo在用戶得到密碼後,就會開始倒計時。倒計時内可以取消開鎖狀态;倒計時結束,則代表用戶默認開始騎行,計費也從此時開始。
此時如果是iPhone用戶的話,将ofoAPP最小化時,就會發現手機頂部電池電量條變成了藍色。其實,這就是ofo獲取單車行程的要點所在。既然機械鎖無法向服務器傳輸數據的話,那不如讓用戶手機代替。以獲取手機的定位來獲取單車的騎行路線。并且在停車後,點擊結束騎行時,上報位置,由此服務器來标記此單車停放的位置。而此時上報的位置其實并沒有單車。這就是ofo地圖上有很多假标記産生的原因。
ofo采用的這種标記方法其實非常的粗糙,畢竟如果用戶強制結束應用,也就獲取不到騎行路線了。而ofo針對獲取不到騎行路線的情況,也做了處理,那就是用标記起點到終點,然後根據地圖提供的路線來顯示路程。
上圖我親測的案例。紅色箭頭是我的實際騎行的路線,綠色線是ofo自帶地圖上通過起點和終點計算的路線。
下面我們繼續分析ofo機械鎖的程序流程圖
注意上圖服務内的部分,看起來步驟非常少,也非常簡單,而真實的服務器肯定有更多複雜的邏輯判斷。但對于産品經理畫的流程圖來說,不可能完完全全描繪編程中的技術細節,而且也不需要産品經理去幫技術想代碼的實現邏輯。我們要做得是,理解程序宏觀的實現邏輯。
比如,在掃描二維碼後,為什麼APP會顯示這輛車的密碼,而不是其他車輛的密碼呢?很簡單,服務器内肯定儲存了所有單車的密碼,而掃描二維碼的過程就是将此單車的ID傳送給服務器,服務器在數據庫中找到密碼後,返回給用戶手中。
服務器在此處理過程中,肯定還會有其他的判斷,比如此用戶賬号是否正常,有沒有被封号?此單車是否已被标記為故障車?等等。但大家發現,上面的流程圖内并沒有畫出這些邏輯判斷,是我忘記了嗎?其實并不是。這裡又不得不提到本文的核心概念——顆粒度。此圖想表達的是宏觀的程序實現邏輯,是為了讓讀者更聚焦于問題核心,我們隻需要着重表達主幹流程就好。如果添加更多的分支流程、異常流程,那反而會影響讀者的注意力。所以,還是老生常談的那句話:畫流程圖一定要先主幹,後分支,千萬别在一開始就盲目追求細節。
言歸正傳,ofo的第一代鎖的解決方案雖然漏洞百出,但依然用其巧妙的方式,實現了地圖上單車位置的顯示。ofo推出的第二代鎖,改進了以往機械鎖的很多問題。其中最大的效果就是車鎖的密碼不再是固定的,并且鎖車之後,不需要再點結束行程。那既然ofo的鎖已經優化了,那為什麼前文還稱他為僞智能鎖,他和真正的智能鎖差在哪裡呢?為什麼ofo的車鎖依然需要手動輸入密碼,而不是像摩拜一樣,車鎖直接彈開?為什麼常常在地圖上看到有車,而實際地點沒有車呢?
下面引入一個80、90後童年的回憶:将軍令。
“将軍令”(又名網易帳号保護器) 是廣州網易互動娛樂有限公司自主研發的、具有完全知識産權的高科技身份認證産品。它是專為保護網易通行證賬号(遊戲賬号)、直銷商帳号的密碼而出的産品,其特有的60秒密碼動态自動更新技術将盜号風險降到最低。
“将軍令”的産生伴随着當年夢幻西遊的風靡,其創新技術确實解決了大多數盜号問題。那将軍令的實現機制到底是如何呢?簡單地說明一下:首先,打開“将軍令”,它會生成一串數字,你在登陸遊戲時,輸入這些數字,系統就會允許賬号登陸。同時,“将軍令”的數字是每隔60秒動态變化的,每次登陸時,“将軍令”的驗證碼都會不一樣。其實現原理,無非是“将軍令”和服務器保持同一種算法,在同一時間,他們的計算結果是一緻的。
回來 看ofo的僞智能鎖,其實也是一樣的實現原理。每輛車鎖都有一個單獨的算法保存在服務器,車鎖每隔一段時間就會根據算法,變換一個密碼。而當你打開APP,查看此單車密碼時,服務器使用和車鎖相同的算法算一遍當前時間下的密碼,那此密碼一定是和車鎖當前算的是一緻的。
下圖為ofo僞智能鎖單車的程序流程圖
由上面的分析可知,即便是ofo第二代鎖,也并沒有和服務器通信,其單車依然沒有GPS,依然是靠用戶手機定位。
摩拜單車的智能鎖
上面分析了ofo的機械鎖和僞智能鎖以後,我們再來看看摩拜單車的智能鎖,到底智能在哪裡?
首先通過實際體驗我們知道,摩拜單車是不需要輸入密碼的。抛開藍牙本地驗證密碼的方式,那摩拜車鎖需要和服務器通信,才能實現APP掃描之後自動打開。
下面依據此原理,畫出摩拜單車的程序流程圖:
由上圖對比ofo的流程,可以看出摩拜采用的解決方案是将自行車與服務器連接。讓每一個自行車都成為一個終端,實時同步在整個地圖上面。這樣既獲得了良好的用車體驗,也收集到了用戶數據。就解決方案來看摩拜是比ofo完善很多的。
以上就是整個ofo與摩拜解決方案的對比,其中我也畫出了不同階段的流程圖。基本可以代表我分析案例的一些思路。最主要的還是讓大家能夠理解并應用流程圖到日常産品設計與分析中。我們在構建流程圖時,如果能按照本文的方法,由業務到程序,由簡單到複雜,那相信一定會讓你的思路更加清晰順暢。
總結
本文從定義、分類以及畫法,分層講解了各種流程圖的特點。嘗試以教科書的方式來闡述其原理和機制。因為目前并沒有統一的流程圖規範,所以文中難免有錯誤和理解偏差,也希望大家能指證與交流。
雖然本文的目的是介紹流程圖,但其整個思維過程才是真正我想表達的核心。任何複雜事物都可以拆解為最小單元,然後由最小單元逐漸還原複雜事物。引申下去,這種思維方式其實是一種剖析事物的思維模型,熟練掌握以後可以套用于多種分析場景,希望以後有機會單獨寫一篇文章來詳細介紹思維模型。
參考引用:
- 流程_百度百科
- 産品經理業務流程圖的繪制流程分享
- 如何繪制業務流程圖
- 談談頁面流程圖(附案例)
- 産品設計流程系列:業務流程和流程圖介紹
- 衆雲行第二彈:從BRD到頁面流程圖
- 數據流程圖_百度百科
- 解讀NB-Iot智能鎖:為何ofo和摩拜都要做NB-Iot智能鎖?
#專欄作家#
作者:臻龍,人人都是産品專欄作家,全面發展型産品經理,喜歡認知心理學與神經科學,特别鐘愛讨論抽象算法問題,歡迎撕逼交流。253884135
本文獨家發布于人人都是産品經理。未經本站許可,禁止轉載。謝謝合作。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!