以釘釘為例,拆解權(quán)限系統(tǒng)和工作流

0 評論 12884 瀏覽 114 收藏 17 分鐘

編輯導(dǎo)讀:權(quán)限系統(tǒng)可以從字面上理解,賦予不同用戶不同的權(quán)限,比如管理員可以增刪賬戶,普通員工只能讀寫數(shù)據(jù)。本文作者以釘釘為例,拆解權(quán)限系統(tǒng)和工作流,希望對你有幫助。

在B端產(chǎn)品從0到1設(shè)計(jì)的過程中,有一些基礎(chǔ)內(nèi)容是繞不開的,比如人員系統(tǒng)、賬號(hào)系統(tǒng)、權(quán)限系統(tǒng)、工作流系統(tǒng)等等。但是這些系統(tǒng)也相對成熟,可以玩出花的地方也不多,對于這部分我們倒可以占據(jù)后發(fā)優(yōu)勢,去學(xué)習(xí)行業(yè)內(nèi)的產(chǎn)品是怎么做的。

這里給大家提供一個(gè)思路,SaaS的產(chǎn)品經(jīng)理可以試著從非競品找到設(shè)計(jì)靈感。我們這篇文章主要聊一下權(quán)限系統(tǒng)和工作流,單從這兩個(gè)通用模塊來看,感覺OA系統(tǒng)有比較不錯(cuò)的心得。我們以釘釘為例做一個(gè)權(quán)限系統(tǒng)和工作流部分的拆解,也算對平時(shí)工作的一個(gè)總結(jié)。

01?權(quán)限系統(tǒng),RBAC(Role-Based Access Control)

權(quán)限系統(tǒng)可以從字面上理解,賦予不同用戶不同的權(quán)限,比如管理員可以增刪賬戶,普通員工只能讀寫數(shù)據(jù)。常規(guī)權(quán)限系統(tǒng)設(shè)計(jì)會(huì)用到RBAC模型,基于角色的訪問控制模型。在沒用到這個(gè)RBAC模型的情況下,用戶會(huì)和權(quán)限直接綁定。

(用戶-權(quán)限)

這個(gè)對于簡單系統(tǒng)是非常易懂的,對于人員變動(dòng)不大的系統(tǒng)也是可以直接上手使用的。但是當(dāng)有人員變動(dòng)或者權(quán)限變動(dòng)的時(shí)候,問題就出來了。以上圖為例,小路離職,索大升職,享有小路的全部權(quán)利,這個(gè)時(shí)候會(huì)產(chǎn)生比較大的變動(dòng)。而根據(jù)RBAC,那么就會(huì)有三層結(jié)構(gòu),用戶-角色-權(quán)限。通過升維解決低維靈活度不夠的問題。RBAC會(huì)是下面這個(gè)樣子。

(用戶-角色-權(quán)限)

小路可以是管理員,也可以是組長,然后小路具有管理員和組長的所有權(quán)限。如果小路離職了的話,索大可以和管理員進(jìn)行綁定,再和組長綁定。這時(shí)候角色和權(quán)限的關(guān)系是不需要改變的。

RBAC還有很多的變體,比如互斥角色、比如角色具有上下級關(guān)系,可以參考《RBAC權(quán)限系統(tǒng)分析、設(shè)計(jì)與實(shí)現(xiàn)》這個(gè)博客。

我們看看釘釘?shù)膶?shí)現(xiàn)方式。

(釘釘子管理員列表頁面)

(釘釘子管理員編輯頁面)

(釘釘子管理員添加人員頁面)

這是釘釘后臺(tái)的管理系統(tǒng),在子管理員頁面里會(huì)有添加管理組,添加管理組人員,設(shè)定管理組的管理員,設(shè)置權(quán)限等。管理組會(huì)有一些默認(rèn)的管理組,也可以由用戶新增。操作順序可以是:

(釘釘子管理員頁面流程)

釘釘產(chǎn)品已經(jīng)非常龐大了,作為一個(gè)平臺(tái)產(chǎn)品,這邊的權(quán)限主要是針對不同應(yīng)用的訪問和使用。釘釘?shù)墓芾斫M就像一個(gè)角色,而成員就代表著用戶,最后為角色配置權(quán)限。引入角色對用戶和權(quán)限進(jìn)行解耦的好處是,任何員工的離職入職,都不會(huì)影響到角色和權(quán)限直接的關(guān)系。而管理要做的,只是把人丟到對應(yīng)的管理組即可。

釘釘對于這部分的管理是一步到位的,完成了用戶-角色-權(quán)限的配置。如果想要條理更清晰一些,可以先完成角色和權(quán)限的映射配置,再往角色里添加人員就可以了。

除了用戶- 角色- 權(quán)限這種形式,還可能出現(xiàn)更為復(fù)雜的問題。

比如權(quán)限的沖突,小路有兩個(gè)角色,一個(gè)角色是管理員,一個(gè)角色是組長,組長有開除員工的權(quán)限,管理員沒有開除員工的權(quán)限,那么小路最后應(yīng)不應(yīng)該有開除員工的權(quán)限?

這里可以考慮給角色加上優(yōu)先級,出現(xiàn)沖突了以優(yōu)先級高的角色所對應(yīng)的權(quán)限為主。

再比如,角色組的問題。一個(gè)角色可以對應(yīng)分配權(quán)限,而由角色構(gòu)成的集合應(yīng)該也可以被分配權(quán)限。如下圖:

(用戶-角色-權(quán)限,用戶-角色組-權(quán)限)

舉個(gè)例子:

  • 用戶:小路、小山、索大
  • 角色:項(xiàng)目經(jīng)理、前端工程師、產(chǎn)品經(jīng)理
  • 角色組:釘釘項(xiàng)目組
  • 權(quán)限:項(xiàng)目進(jìn)度管理、項(xiàng)目組聊天窗、產(chǎn)品原型設(shè)計(jì)、產(chǎn)品開發(fā)

釘釘項(xiàng)目組作為角色組,可以由項(xiàng)目經(jīng)理、前端工程師、產(chǎn)品經(jīng)理這幾個(gè)角色組成,角色組有自己的權(quán)限,角色也有自己的權(quán)限,用戶還是和角色綁定,用在角色組里會(huì)有角色組的對應(yīng)的權(quán)限,也會(huì)有角色對應(yīng)的權(quán)限。

這里基于用戶-角色-權(quán)限這個(gè)父類可以派生出很多子類。這部分角色沒有處理好的話,很可能會(huì)影響到第二部分說的工作流,釘釘在這里設(shè)計(jì)的相對完善。

02?工作流,BPM(Business Process Management)

工作流也可以劃分為五個(gè)階段,分別是:

  • 業(yè)務(wù)流程發(fā)掘(Business Process Discovery)
  • 業(yè)務(wù)流程設(shè)計(jì)(Business Process Design)
  • 業(yè)務(wù)流程執(zhí)行(Business Process Execution)
  • 業(yè)務(wù)流程管理維護(hù)(Business Process Administration)
  • 業(yè)務(wù)流程最優(yōu)化(Business Process Optimization)

我們產(chǎn)品里常用到的是申請和審批,屬于業(yè)務(wù)流程的設(shè)計(jì)。

工作流里所涉及到的角色有:申請發(fā)起人、審批人、抄送人、執(zhí)行人。

根據(jù)業(yè)務(wù)情況還會(huì)涉及到條件分支,比如報(bào)銷金額超過100W,需要總經(jīng)理批,低于1000元,上級領(lǐng)導(dǎo)批就可以;請假時(shí)間超過30天需要人力主管批,低于3天直線主管批就可以等等。

我們看一下釘釘?shù)墓ぷ髁鳌a斸數(shù)墓ぷ髁魇峭ㄟ^可視化編程做的,其實(shí)和之前說的低代碼屬于同一類產(chǎn)品,釘釘?shù)墓ぷ髁髟O(shè)計(jì)和低代碼平臺(tái)氚云、明道云等等非常像。對于釘釘布局低代碼也可以從這看到必然。

(釘釘工作流頁面)

(釘釘工作流添加節(jié)點(diǎn)頁面)

我們以釘釘?shù)恼埣賹徟鸀槔梢钥吹结斸數(shù)恼埣俟ぷ髁魇前种Ч?jié)點(diǎn)的,能夠進(jìn)行申請條件的判斷。這個(gè)流程應(yīng)該是基于activity的框架進(jìn)行完善的。這里面會(huì)有一張請假表單按照設(shè)定好的工作流進(jìn)行流轉(zhuǎn),涉及到表單引擎部分的內(nèi)容我們這邊不拓展。我們重點(diǎn)關(guān)注流程設(shè)計(jì)。

釘釘?shù)脑O(shè)計(jì),是可以動(dòng)態(tài)添加審批、抄送、執(zhí)行、分支節(jié)點(diǎn)的。這個(gè)按字面意思大家應(yīng)該能理解。其實(shí)我想說的是,在設(shè)計(jì)流程的時(shí)候有一個(gè)非常重要的原則。就是流程的復(fù)用性。

來看一個(gè)問題。

比如,小路是研發(fā)部一部的員工,小山是研發(fā)部二部的員工,索大是研發(fā)部三部的員工,三個(gè)部門是平行部門,他們各自領(lǐng)導(dǎo)不一樣。那么小路,小山,索大三個(gè)人的請假流程應(yīng)該怎么設(shè)計(jì)?

這里會(huì)用到我們說的流程復(fù)用性的原則,三個(gè)人部門平行,即使三個(gè)人領(lǐng)導(dǎo)不同,審批他們的人不同,但是三個(gè)人應(yīng)該是共享一套流程的??赡苁牵喊l(fā)起人—>直線領(lǐng)導(dǎo)—>HR—>結(jié)束。所以在流程設(shè)計(jì)的時(shí)候要想實(shí)現(xiàn)流程的復(fù)用,其實(shí)并不是一件簡單的事情。

釘釘給出的設(shè)計(jì)思路其實(shí)是比較接地氣也能解決問題的,大家也可以對比看看企業(yè)微信,兩家產(chǎn)品在審批人選擇這部分交互是比較類似。我們具體來看一下。

  • 指定人員:指定具體的人,釘釘限制了20個(gè)人。這部分要慎用,一旦流程指定到具體的人,一個(gè)是復(fù)用性變差,第二是一旦有人離職,容易造成流程的崩潰。
  • 發(fā)起人自選:在發(fā)起人提交申請時(shí),自行選擇一個(gè)人批復(fù)。這種情況很適用于請假半天,需要有人知道就好的情況,不是很重要的申請可以這么設(shè)計(jì)。
  • 連續(xù)多級主管:這個(gè)功能比較好用,也可以直觀理解。小路是一個(gè)研發(fā)工程師,小山是下路領(lǐng)導(dǎo),索大是小山領(lǐng)導(dǎo)。當(dāng)選擇多級主管的時(shí)候,級數(shù)選擇2,那么下路的申請會(huì)順著report line一直到索大那邊。
  • 部門主管:指定某個(gè)部門的領(lǐng)導(dǎo),比如請假要指定到HR主管,報(bào)銷要指定到財(cái)務(wù)主管。
  • 直屬主管:指定到個(gè)人的直接上級。
  • 表單內(nèi)部門控件對應(yīng)主管,表單內(nèi)部門控件對應(yīng)角色:這里我放在一起說,這部分功能是比較處理復(fù)雜情況的時(shí)候需要用的,比如表單內(nèi)部門控件對應(yīng)角色,小路是研發(fā)部一部的部長,小山是研發(fā)部的前端工程師,索大是研發(fā)部產(chǎn)品經(jīng)理。但是部門有一個(gè)助理角色,幫助部長處理事務(wù)的,這個(gè)助理不是崗位,是角色。索大是研發(fā)部一部的助理。所以當(dāng)要指定到角色的時(shí)候,就可以通過表單內(nèi)部門空間對應(yīng)角色指定到一個(gè)虛擬的角色,而不是實(shí)際的崗位。這邊比較繞,而且沒有特別好的描述。所以我說釘釘這塊比較接地氣,但是很能解決一些實(shí)際需求。
  • 角色:虛擬設(shè)置的角色,供指定,指定角色的好處,和前文說的RBCA是一樣的,角色是一個(gè)抽象,可以帶來更好的拓展性和靈活性。
  • 發(fā)起人自己:這個(gè)沒什么好說的,可能表單流轉(zhuǎn)過程會(huì)有某個(gè)時(shí)刻需要流回自己手里。
  • 表單內(nèi)的聯(lián)系人:這個(gè)也是一個(gè)靈活性比較高的功能,是指表單內(nèi)有控件出現(xiàn)了聯(lián)系人,在這個(gè)位置可以選為當(dāng)前節(jié)點(diǎn)的執(zhí)行人。

這一塊對比下來,釘釘思考的情況比較全面,所以這部分內(nèi)容對于需要設(shè)計(jì)流程的B端產(chǎn)品來說,是非常好的學(xué)習(xí)案例。

自己做了一些流程的工作,這里說說感受。

因?yàn)橐讯x流程的工作交給用戶,那么用戶可能會(huì)設(shè)計(jì)出現(xiàn)各種奇奇怪怪的業(yè)務(wù)流程,而B端產(chǎn)品要能支持這些流程,一定是要有非常高的靈活度和非常極致的抽象。

所以這部分內(nèi)容其實(shí)考驗(yàn)產(chǎn)品經(jīng)理的三個(gè)能力:對于業(yè)務(wù)需求的抽象能力、對于產(chǎn)品落地交互的具象能力,以及咨詢里說的MECE熟練度。而市面上做的好的產(chǎn)品是提供了落地實(shí)現(xiàn)的,這也是能節(jié)約我們大量時(shí)間的環(huán)節(jié)。

啰嗦一句,就是借鑒的過程,需要弄清原產(chǎn)品背后的邏輯。比如釘釘里的選擇人員,為什么要給這么多選項(xiàng),我們自己的產(chǎn)品需不需要這么多選項(xiàng)?這些都是要自己思考清楚的。

03?權(quán)限系統(tǒng)和工作流存在要素重疊

把權(quán)限系統(tǒng)和工作流放在一起寫,是因?yàn)槎邥?huì)有一些重疊關(guān)系。認(rèn)真看文章的小伙伴應(yīng)該發(fā)現(xiàn)了,角色這個(gè)詞是貫穿這兩部分的。我們看看如果一個(gè)B端產(chǎn)品,需要從0到1設(shè)計(jì)這兩部分會(huì)是怎樣?

(權(quán)限系統(tǒng)-工作流的設(shè)計(jì)流程)

我們創(chuàng)建的角色,可以作為權(quán)限系統(tǒng)里去分配權(quán)限,也可以在工作流里作為審批的執(zhí)行人。角色本質(zhì)是一層抽象,抽象的好處就在于能夠解耦用戶和權(quán)限,解耦用戶和審批人。抽象會(huì)帶來更多的復(fù)用性。

04?最后

B端產(chǎn)品在設(shè)計(jì)權(quán)限和工作流的時(shí)候,非常建議大家去看看釘釘、企微這些OA系統(tǒng)。審視OA產(chǎn)品,會(huì)發(fā)現(xiàn)OA系統(tǒng)對于權(quán)限,角色,工作流,玩的很明白,是非常好的學(xué)習(xí)方向。

飛書的審批功能目前看起來比企微和釘釘?shù)膶徟趸恍@和產(chǎn)品定位也有一些關(guān)系,飛書強(qiáng)在效率提升,釘釘強(qiáng)在辦公管理,企微強(qiáng)在關(guān)系鏈接,產(chǎn)品的基因會(huì)決定產(chǎn)品功能。

但是相信有釘釘、企微的先行探索,飛書也是能快速趕上的,畢竟存在后發(fā)優(yōu)勢。

現(xiàn)在SaaS是一個(gè)很火的領(lǐng)域,C端產(chǎn)品從0到1的設(shè)計(jì)產(chǎn)品的機(jī)會(huì)越來越稀少,SaaS的產(chǎn)品經(jīng)理會(huì)有更多機(jī)會(huì)能夠從0到1設(shè)計(jì)產(chǎn)品。在這個(gè)過程中,工作流和權(quán)限系統(tǒng)幾乎不可或缺。

大家之后工作中,可以借鑒這些做的比較成功的產(chǎn)品,看看這些甚至連間接競品都算不上的產(chǎn)品,學(xué)習(xí)他們的強(qiáng)勢,發(fā)揮自己的后發(fā)優(yōu)勢,節(jié)約時(shí)間去更快的迭代產(chǎn)品。

#專欄作家#

忙里偷賢,公眾號(hào):忙里偷賢,人人都是產(chǎn)品經(jīng)理專欄作家。B端產(chǎn)品,低代碼玩家,工具類產(chǎn)品思考者。熱愛分享,務(wù)實(shí)的理想主義者。

本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自 Unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!