全面解讀流程圖|附共享單車摩拜ofo案例分析
對于任何產品設計來說,構建流程都是一個繞不開的環(huán)節(jié)。其奠定了后續(xù)的產品框架,是用戶體驗的基石。本文將從定義和分類出發(fā),結合實際案例,深入淺出地闡述流程圖的作用以及畫法。
誕生之始
其實,之所以我會寫這篇文章,完全是受老曹(人人都是產品經理網——創(chuàng)始人CEO)的邀(hu)請(you)。他說,對于大多數新人產品經理來說,畫流程應該是最基本最必要的技能。但往往大多數新產品人卻對流程的概念異常模糊。如果能有一篇全面系統(tǒng)的流程圖解析,那一定會受到大家的歡迎,幫助大家快速成長。
我聽后深受老曹的感動,一個偉大的CEO就應該有這樣堅韌的品質。是什么樣環(huán)境才能造就這樣偉大的企業(yè)家?我不禁想起了馬云第一次創(chuàng)建阿里巴巴時的演講,那會場上奔跑的影子,是老曹逝去的青春。頓時,我對老曹的佩服有如滔滔江水連綿不絕地涌出,又如黃河泛濫地一發(fā)不可收拾。
老曹充滿鼓勵的眼神深情望著我,然后拿開了架在我脖子上的40米長的大砍刀。
我心里默默地回蕩著老曹的話:“好好寫,寫完讓你當人人的副總裁,我不騙你。”然后我奮筆疾書,于是有了下面的故事……
定義
流程——顧名思義:水流的路程;事物進行中的次序或順序的布置和安排。流程是自然而然就存在的,它可以不規(guī)范,可以不固定,可以充滿問題。
由兩個及以上的步驟,完成一個完整的行為的過程,可稱之為流程;注意是兩個及以上的步驟。
流程圖的核心就在于如何排布事物進行的次序,不同的順序可能造成截然不同的結果。
目的
產品經理畫流程圖的目的不外乎幾點:
- 流程圖為產品設計基石,可以保證產品的使用邏輯合理順暢
- 傳達需求,用流程圖來更好地表達產品邏輯
- 查漏補缺,檢驗是否有遺漏的分支流程
分類
流程圖以描述對象分類,包括:業(yè)務流程圖、頁面流程圖、功能流程圖、數據流程圖等。
業(yè)務流程圖(Transaction Flow Diagram, TFD)
先以宋丹丹小品中的一個腦筋急轉彎為例:把大象裝冰箱,總共分幾步?
三步:
- 第一步,把冰箱門打開;
- 第二步,把大象裝進去;
- 第三步,把冰箱門關上。
這看似是一個笑話,但其實蘊含著很強的邏輯思維。首先這里忽略了很多現實中的限制條件。比如,以大多數冰箱的容積都不可能將大象塞進去;比如是否能把大象切成塊放進去?如果把大象塞進去,它會不會又跑出來?但拋開這些限制條件,那把大象塞冰箱的極簡流程就是三步。打開冰箱門,把大象裝進去,最后把門關上。
我們做業(yè)務流程圖,其實很多時候都需要具有把“大象塞進冰箱”的思維方式,拋開很多現有的認知局限,將具象的行為一個個抽象出來。
結合上面的例子,再來細細品味“業(yè)務流程圖”的定義:
抽象地描述事物進行的次序和順序,不涉及具體操作與執(zhí)行細節(jié)。在互聯(lián)網軟件行業(yè)通常指脫離產品設計的用戶行為流程。業(yè)務流程圖是一種系統(tǒng)分析人員都懂的共同語言, 用來描述系統(tǒng)組織結構、業(yè)務流程。
不管是否理解上述定義,下面帶著抽象思維去思考購物行為的業(yè)務流程圖應該是什么樣的?
以上的三步組成了一個最簡的一個流程,其完全涵蓋了任何購物行為的核心。無論是網購還是在實體超市,都是以這三個行為為主體,然后進行擴展的。相對于大家平時看到的復雜的網購流程圖,以上的三步流程簡直簡單的令人發(fā)指,而這恰恰是印證了大道至簡的原理。我始終堅信無論再復雜的事情都能簡化為極其簡單的事情,如果你無法將其簡化,說明只是你沒有理解其核心。
依據上面的最小流程單元,我們下面嘗試能不能將其擴展,嘗試套用在更細節(jié)的流程圖上面。
頁面流程圖(Page Flow Diagram)
定義:指電子產品具體所呈現的頁面跳轉流程圖。其承載了業(yè)務流程圖所包含的業(yè)務流轉信息。
下圖以淘寶為例,展示出了網購的頁面流程。
由上圖紅框中的三個節(jié)點我們可以看出,頁面流程圖依然是包含在業(yè)務流程圖的。這恰恰符合定義中的要求,同時也印證了頁面流程圖的正確性。相較于一開始的極簡流程圖,現在的流程圖已經漸漸變得復雜了一些。我們將抽象的業(yè)務,映射在了具象的頁面上,用軟件的頁面承載起了業(yè)務需求。而以上就是由業(yè)務流程圖到頁面流程圖的轉化過程。
功能流程圖(Function Flow Diagram)
定義:指單頁面內或多頁面之間的功能操作流程,其包含在頁面流程中。
任何功能都是被包含在頁面內的,但一個頁面內往往不止一個功能,所以單單頁面流程圖可能無法完整表達所有流程,而這時就需要用功能流程圖來更加具體表達每個頁面內所包含的功能。
由上圖紅框中的四個節(jié)點我們可以看出,功能流程圖同樣也是由頁面流程圖拓展而來的。功能流程圖是在頁面流程圖的基礎上繼續(xù)深化,變得更加復雜。同時也漸漸變得像大家日??吹降牧鞒虉D一樣。
數據流程圖(Data Flow Diagram)
定義:特指軟件產品中,描述數據在不同節(jié)點被處理的過程所畫的圖表。主要表達計算機程序對于業(yè)務的實現原理。用戶在功能流程圖中的每一個操作,對應都會反映在數據流程圖中。同時,數據流程圖也可以叫程序流程圖(Program Flow Diagram)。
它是一種能全面地描述信息系統(tǒng)邏輯模型的主要工具。它可以利用少數幾種符號綜合的反映出信息在系統(tǒng)中的流動、處理和存儲的情況。數據流程圖具有抽象性和概括性。
可能業(yè)務流程圖、頁面流程圖和功能流程圖大家都耳熟能詳,但數據流程圖恐怕了解的就比較少了。其實,每個流程圖中都有一個核心伴隨著不同操作在整個系統(tǒng)中不斷流轉。比如業(yè)務流程圖大多以人為核心,每個節(jié)點都是在傳遞人的不同行為。而頁面流程圖和功能流程圖也類似,都是以人的操作行為為核心,在不同頁面和功能間進行流轉。但數據流程圖不同,它是以數據為核心,展示整個系統(tǒng)中,數據是如何被處理的。
其更偏技術思維,更多的是展現后臺程序的實現原理。所以,常常是開發(fā)人員繪制此圖,而產品經理涉及較少。但隨著產品經理地不斷成長,向上提高到戰(zhàn)略層,而向下則會深入到實現層。理解程序的開發(fā)原理和背后的數據流轉,無疑會讓產品經理對產品設計有更加深刻的理解。
下面仍以購物流程為主題來展示數據流程圖。
相較于之前的圖表,數據流程圖增加了新的維度——程序。客戶端在展現用戶操作行為的同時,也表達了程序在用戶行為背后的動作。而往往大家說一個產品復雜的時候,可能只注意到了它的前端交互復雜,而忽視了后端邏輯的復雜。對于一個優(yōu)秀的產品經理來說,不止要關注前端的用戶體驗,更要能看清事物背后的邏輯。畢竟人人都可以對用戶體驗指手畫腳,而說到程序實現,那可就體現出產品經理的專業(yè)性來了。
小結
以上幾幅圖片分別展示了一個產品的業(yè)務流程、頁面流程、功能流程和數據流程。從中可以發(fā)現,由業(yè)務到頁面,再到功能,再到數據處理,是順序拓展的。一個產品的頁面或功能,不是憑空出現的,而是依據業(yè)務層的各個節(jié)點和流程進行設計的。這就是為什么在做產品設計時一定要先理解業(yè)務的原因。
在初步學習畫流程圖時,盡量將業(yè)務、頁面、功能和數據區(qū)分清楚,并且逐層遞進,不要把多種類型的流程圖混雜一起。這樣反而會將思想搞得混亂。
流程圖的顆粒度
所謂流程圖的顆粒度,其實就是指流程圖的細致程度。
我在畫流程圖時也常常會猶豫糾結,這個功能點用不用描寫得更詳細?這條分支用不用標出來?這個和服務器的交互事件用不用在流程圖體現?等等這些問題,也都是產品經理在日常畫圖時會遇到的。
依然拿購物流程為例,最簡的業(yè)務流程分為三個步驟,那如果細化一些,是否可以畫出不同的流程圖呢?
顯而易見,即便針對同一個流程,也能畫出不同的流程圖。如上圖,將挑選商品拆分為三個步驟,將結賬拆分為兩個步驟。但兩個流程圖依然表達的是一套流程。而這就是每個人對于顆粒度的把握有所不同。有很多新人總想一步到位,一次畫出完美的流程圖。但這其實是一種非常不可取的思維。任何完善的流程圖,都需要經過由簡單到復雜的過程,而不是一蹴而就。
理論上來說,流程圖的細致程度越高,產品設計就越準確順暢。但實際情況中,過度的詳細反而是浪費時間。而對于度的把握能力,則需要經驗積累以及團隊磨合,這里也是體現產品經理對顆粒度把握能力的地方。我們畫流程圖的最終目的是讓團隊成員理解我們的產品設計,而不是需要畫一幅非常詳細的流程圖。理想的情況應該是以最簡的形式,畫出團隊都能理解的圖表。
流程圖畫法
上面講解了流程圖的定義和分類,下面就進入具體的流程畫法講解
流程圖基本元素
以上為流程圖中最常用的幾種元素。不常用的元素就不在此展示了,大家可以在Microsoft Visio中查看。
泳道圖
泳道圖是流程圖中的一種畫法,是將流程圖中的一些流程節(jié)點按操作角色的不同而劃分。比如剛才的數據流程圖其實就采用泳道圖的畫法展示,其中頂部為兩個不同角色——用戶和服務器。同時在豎向的基礎上也可以添加橫向泳道,以不同頁面來給操作分類。
對于涉及到多角色比較復雜的流程圖來說,畫泳道流程圖會看起來更加清晰明了。
流程圖的組成部分
流程圖主要由三部分組成:
- 主干流程
- 分支流程(異常流程屬于分支流程)
- 子流程
下圖是將之前功能流程圖的例子作為主干流程,然后添加了分支流程。我們在畫流程圖時應該遵循先主干后分支的順序來描繪流程圖,因為對于大多數用戶來說,主干流程是最常用的路徑。
主干流程和分支流程大家都好理解,那到底什么是子流程呢?在畫流程圖的過程中,有一些流程是會經常遇到的,比如登錄流程、注冊流程、修改密碼流程。對于電商來說,可能有退貨流程、購物券使用流程等等。如果每次畫與之有關的流程圖的時候,都將其再畫一遍,那實在繁瑣。所以,子流程就是將某幾個具有邏輯關系的節(jié)點集合而成的,可以復用在各個地方。
下圖就是將登錄流程變成子流程后的流程圖。
流程圖的結構
流程圖中大致包含三種結構:順序結構、條件結構(又稱選擇結構)、循環(huán)結構?;旧洗蠖鄶盗鞒虉D都是由這三種結構組成的。
案例
上面說了那么多理論知識和概念,那下面就開始真刀實槍地展示一個案例。本來一開始我想以電商產品作為例子,因為電商產品是需要極強邏輯思維的產品,并且比較常見。但后來發(fā)現淘寶、京東等都極為龐大和復雜,分析起來過于笨重。轉而想起共享單車是個非常不錯的教材案例。其產品極簡,但背后卻暗藏有趣的邏輯架構。尤其是市面上摩拜與ofo不同的產品解決方案,分析起來更加有對比性。
共享單車的前身
如果要追溯最早的共享單車,恐怕就是政府推出的有樁自行車。其推出目的無非就是緩解交通壓力,以及減少環(huán)境污染。而當時受限于成本、技術以及大眾人群的普遍素質,有樁自行車的解決方案是極其不方便的。想要租一輛有樁自行車,首先要憑身份證在相關單位辦理IC卡,并繳納押金和預存費用,然后租車和還車只能在定點位置進行。先不談辦理卡片有多麻煩,租車還車有多不方便,超時扣費有多驚人,如果只單純將其用業(yè)務流程圖展示出來,應該是什么樣的呢?
下面依然以最簡單的業(yè)務形態(tài)來展示使用有樁單車業(yè)務流程圖:
單看有樁單車的流程圖其實沒有任何意義,真正的意義在于有樁單車和目前摩拜與ofo的橫向對比,下面看一下兩家共享單車的業(yè)務流程圖:
很明顯可以看出,無論是有樁單車、摩拜單車還是ofo單車,在業(yè)務流程圖上竟然沒有太大區(qū)別。那為什么多年之前政府主導的有樁單車平平無奇,而2016年末出現的共享單車紅極一時?那摩拜和ofo兩款截然不同的單車,區(qū)別點到底在哪里呢?我們需要更加深入地分析每個業(yè)務節(jié)點,剖析其功能。
因為單車的使用流程不僅是在APP上,還有一部分操作在實體自行車上,這時就不能單使用頁面流程圖,而是要直接使用功能流程圖。并且這里的功能流程圖不局限于頁面內的功能,而是要表達用戶對單車和APP的每一步操作。
首先看ofo單車,在APP中支付押金后,接著便需要尋找自行車。而這時我們發(fā)現,雖然ofo有多種單車樣式,多種車鎖機制。但本案例著重講ofo第一代機械鎖,與第二代偽智能鎖。
這兩種鎖其實代表了兩種不同的產品解決方案,我們先討論第一種機械鎖。(所謂機械鎖,其實類似于生活中經常見到的密碼箱。每個密碼箱有預設的固定密碼,通過撥弄表盤輸入正確密碼,即可開鎖。并且機械鎖的密碼是固定的,不會改變)。
我們從路邊找到機械鎖單車,然后打開APP,輸入車牌號或掃描二維碼,從APP中得到本車的機械鎖密碼,然后輸入密碼,打開單車車鎖。此時APP中會進行倒計時,倒計時結束則開始正式計費。最后,騎行到目的地后,需要將車鎖關閉,并且必須在APP中點擊結束騎行的按鈕,才能結算此次行程的訂單。
看完了ofo的流程,下面來對比看一下摩拜的流程。
摩拜的產品解決方案為,掃描單車的二維碼以后,摩拜單車的車鎖會自動打開,不需要像機械鎖一樣手動操作。并且在鎖車后,摩拜單車自動會結束行程,無須在APP中點擊結束。在下一次APP打開時,才會進行賬單結算。
下圖分別為ofo機械鎖單車使用流程圖和摩拜單車使用流程圖(APP標識代表用戶在APP上的操作)
我們可以清楚地看到摩拜的流程比ofo的少了兩個節(jié)點,而這就是摩拜對比ofo第一代機械鎖的優(yōu)勢。當然,ofo第一代也有其他方面是優(yōu)于摩拜的,比如騎車的舒適程度。但本文主要聚焦于產品流程,所以并不在單車體驗上花費太多筆墨。
縱觀ofo機械鎖和摩拜智能鎖的解決方案來看,ofo明顯是遜色很多的。機械鎖帶來的問題,不止是使用流程的復雜,還有很多是產品使用上的漏洞。比如,用戶鎖車后,必須手動將密碼撥亂,不然下個人將可以免費騎行。比如,用戶在騎行結束后,忘記在APP點擊結束,會造成更額外扣費。等等還有很多問題,就不一一列舉了。
說句題外話,這些問題ofo也都明白。機械鎖的解決方案倘若只在封閉的校園內運行,那還差強人意。但一經投放到校外市場,那么這種解決方案無疑會給公司帶來巨大的損失。那為什么ofo明知問題,還要大量投放呢?原因很簡單,以摩拜拓展的速度,如果他不在當時迅速走出校園,那么也許永遠也沒機會走出校園了。
言歸正傳。之前的討論,一直避開了一個非常重要的節(jié)點——“找車”。拋開路邊隨機看到單車不談,就拿地圖找車來說,ofo第一代機械鎖肯定是沒有GPS定位的,為什么也能在地圖上顯示呢?
下面我們嘗試畫一下ofo對于解鎖的程序流程圖是什么樣的。
我們從“APP掃描二維碼/輸入單車編號”此節(jié)點開始推導。我要開車牌號為XXX的單車,那么就需要得到密碼,而所有車的密碼,都應該放在ofo的單車數據庫中。我們不論是掃描二維碼,還是輸入單車號,本質都應該是將單車編號傳輸給服務器,告訴它我要哪輛車的密碼。服務器查詢到此單車的密碼以后,就傳輸回APP,我們就看到了此單車的密碼。
因為節(jié)省車鎖電源的原因,服務器此時并沒有和單車聯(lián)系,而是靠人工輸入密碼打開車鎖。所以ofo在用戶得到密碼后,就會開始倒計時。倒計時內可以取消開鎖狀態(tài);倒計時結束,則代表用戶默認開始騎行,計費也從此時開始。
此時如果是iPhone用戶的話,將ofoAPP最小化時,就會發(fā)現手機頂部電池電量條變成了藍色。其實,這就是ofo獲取單車行程的要點所在。既然機械鎖無法向服務器傳輸數據的話,那不如讓用戶手機代替。以獲取手機的定位來獲取單車的騎行路線。并且在停車后,點擊結束騎行時,上報位置,由此服務器來標記此單車停放的位置。而此時上報的位置其實并沒有單車。這就是ofo地圖上有很多假標記產生的原因。
ofo采用的這種標記方法其實非常的粗糙,畢竟如果用戶強制結束應用,也就獲取不到騎行路線了。而ofo針對獲取不到騎行路線的情況,也做了處理,那就是用標記起點到終點,然后根據地圖提供的路線來顯示路程。
上圖我親測的案例。紅色箭頭是我的實際騎行的路線,綠色線是ofo自帶地圖上通過起點和終點計算的路線。
下面我們繼續(xù)分析ofo機械鎖的程序流程圖
注意上圖服務內的部分,看起來步驟非常少,也非常簡單,而真實的服務器肯定有更多復雜的邏輯判斷。但對于產品經理畫的流程圖來說,不可能完完全全描繪編程中的技術細節(jié),而且也不需要產品經理去幫技術想代碼的實現邏輯。我們要做得是,理解程序宏觀的實現邏輯。
比如,在掃描二維碼后,為什么APP會顯示這輛車的密碼,而不是其他車輛的密碼呢?很簡單,服務器內肯定儲存了所有單車的密碼,而掃描二維碼的過程就是將此單車的ID傳送給服務器,服務器在數據庫中找到密碼后,返回給用戶手中。
服務器在此處理過程中,肯定還會有其他的判斷,比如此用戶賬號是否正常,有沒有被封號?此單車是否已被標記為故障車?等等。但大家發(fā)現,上面的流程圖內并沒有畫出這些邏輯判斷,是我忘記了嗎?
其實并不是。這里又不得不提到本文的核心概念——顆粒度。
此圖想表達的是宏觀的程序實現邏輯,是為了讓讀者更聚焦于問題核心,我們只需要著重表達主干流程就好。如果添加更多的分支流程、異常流程,那反而會影響讀者的注意力。所以,還是老生常談的那句話:畫流程圖一定要先主干,后分支,千萬別在一開始就盲目追求細節(jié)。
言歸正傳,ofo的第一代鎖的解決方案雖然漏洞百出,但依然用其巧妙的方式,實現了地圖上單車位置的顯示。ofo推出的第二代鎖,改進了以往機械鎖的很多問題。其中最大的效果就是車鎖的密碼不再是固定的,并且鎖車之后,不需要再點結束行程。那既然ofo的鎖已經優(yōu)化了,那為什么前文還稱他為偽智能鎖,他和真正的智能鎖差在哪里呢?為什么ofo的車鎖依然需要手動輸入密碼,而不是像摩拜一樣,車鎖直接彈開?為什么常常在地圖上看到有車,而實際地點沒有車呢?
下面引入一個80、90后童年的回憶:將軍令。
摩拜單車的智能鎖
單車車鎖的藍牙解決方案
總結
附件下載
如果你想下載文中涉及的流程圖案例的源文件,請關注公眾號起點學院(ID:qidianxueyuan666)回復關鍵詞“流程圖”即可免費下載。
參考引用:
- 流程_百度百科
- 產品經理業(yè)務流程圖的繪制流程分享
- 如何繪制業(yè)務流程圖
- 談談頁面流程圖(附案例)
- 產品設計流程系列:業(yè)務流程和流程圖介紹
- 眾云行第二彈:從BRD到頁面流程圖
- 數據流程圖_百度百科
- 解讀NB-Iot智能鎖:為何ofo和摩拜都要做NB-Iot智能鎖?
#專欄作家#
臻龍,人人都是產品專欄作家,全面發(fā)展型產品經理,喜歡認知心理學與神經科學,特別鐘愛討論抽象算法問題,歡迎撕逼交流。
本文為作者獨家發(fā)布于人人都是產品經理。未經本站許可,禁止轉載。謝謝合作。
題圖來自unsplash,基于CC0協(xié)議
把復雜的東西主干抽出來了,大道至簡
棒
好清晰!!
非常感謝。
流程圖中大致包含四種結構:順序結構、條件結構(又稱選擇結構)、循環(huán)結構?;旧洗蠖鄶盗鞒虉D都是由這三種結構組成的。
如上, 寫錯了”四種結構”,實際三種。
感謝分享!
感謝大佬分享,看完這篇文章,思路清晰了好多
干貨滿滿,推薦學習~
大佬,副總裁了么?
這文章妥妥的干貨呀,太棒了
特別詳細!學習了
這篇文章講的算是非常細了,非常感謝
受教了,謝謝大佬分享
受教!感謝
牛
感謝,受教了
太優(yōu)秀了
好文
666,請問流程圖里的流程角標(APP)是怎么弄的
666。我可能還需要看幾遍。剛看了一遍就感覺邏輯很清晰。也不會像之前一頭霧水了。作者可以多發(fā)一些文章。簡直就是造福人類。
一直認為宋丹丹的那個笑話應該只有兩個步驟:既然需求是把大象裝進冰箱,第二部已經滿足了需求,第三部關不關冰箱門已經多余。
兩步確實滿足了把大象放進冰箱的需求,甚至說 如果冰箱本來就是打開的,直接把大象放進去,一步就夠了。
但是,忽略了滿足這個需求的同時會帶來的其他問題。比如,拿手機拍照,如果只是完成拍照,那拍完了就把手機扔了?或者直接關閉屏幕? 應該都不是吧,拍完照,要退出拍照界面,這是完成拍照衍生的次級需求。如果不退出拍照界面,手機就沒法做其他的事情了。
太棒了
學習學習
我們公司就缺少這種清晰的邏輯
非常全面了,工作中可借鑒,感謝分享
突然想表達,哇,怎么不早點看到這篇文章,但是想了想,沒有看到其他文章有些表述的一頭霧水,帶著那么多疑問才看到這篇文章,也就不會理解得更加深刻。
可以說是很全面了 ,最近被流程圖弄的一個頭兩個大,看完之后感覺思路也清晰了一些 ??
真的感謝作者的輸出,幫助很大,產品新人,一畫流程圖就感覺無從下手,后面跟著作者的思路做實踐,感謝!
學習到了~
核心是對要做的事很明確,把握一定的寬容度