
前陣子,一直想寫需求分析的文章,就是平時(shí)收集到的小場景業(yè)務(wù)的那種。這種需求最多,也瑣碎。正好抽象思維在需求分析應(yīng)用得的多,就結(jié)合一起講了。
看個(gè)例子。
小明在京東網(wǎng)領(lǐng)了一張滿100減10塊的優(yōu)惠券,然后買了價(jià)值400元的移動硬盤,用掉了那張優(yōu)惠券,并收到了新訂單通知。
流程不復(fù)雜,路徑清晰。按照一般的方法來做需求分析,先一步步分解業(yè)務(wù)操作,理清主干,再畫出流程圖。

上面的流程盡可能照顧了每一個(gè)業(yè)務(wù)細(xì)節(jié),這也符合完整流程設(shè)計(jì)要求,看起來讓人放心,沒有遺漏?,F(xiàn)在要隱藏業(yè)務(wù)細(xì)節(jié),僅保留關(guān)鍵業(yè)務(wù)對象信息,將上面的流程簡化成下面的模型:

這個(gè)流程模型看上起來粗糙,沒有安全感,不能幫助正常的流程梳理。實(shí)際,上面的流程圖并不是對第一次的隨意簡化,而是作了刻意處理:
- 隱藏業(yè)務(wù)操作細(xì)節(jié),保留業(yè)務(wù)對象。比如登錄網(wǎng)站,準(zhǔn)備結(jié)算。
- 將提取的業(yè)務(wù)對象抽象化。比如把優(yōu)惠券抽象為卡券。
同上個(gè)流程相比,這個(gè)模型簡單,不能直接輔助產(chǎn)品人做流程設(shè)計(jì),但給了產(chǎn)品設(shè)計(jì)者絕佳視角。因?yàn)橹挥嘘P(guān)鍵的業(yè)務(wù)對象和業(yè)務(wù)操作,我們可以把注意力放在產(chǎn)品結(jié)構(gòu)上,來簡化流程設(shè)計(jì)。
上面模型里,有4個(gè)清晰的業(yè)務(wù)對象:用戶,卡券,商品,賣場(網(wǎng)站)。這個(gè)流程圖反映的是不同業(yè)務(wù)對象之間的事件流轉(zhuǎn),正是因?yàn)椴煌膶ο笾g的業(yè)務(wù)關(guān)聯(lián)操作形成了事件流,然后就有了流程。想像下面場景,一個(gè)叫小明的顧客走進(jìn)了賣場,進(jìn)門時(shí)領(lǐng)了優(yōu)惠券,然后使用了優(yōu)惠券買到了個(gè)想要的東西。在這一刻,小明是個(gè)具體的普通顧客角色,但來賣場買東西不一定都普通顧客,還有大買家。設(shè)計(jì)角色的時(shí)候自然要考慮這種情況,跳出具體對象。
先以用戶對象為例分析,上述兩種不同角色的屬性和業(yè)務(wù)操作不一樣,普通顧客只會發(fā)生一般性購買業(yè)務(wù),價(jià)格是固定的。而大買家是批量采購,他會希望以優(yōu)惠的價(jià)格購買某一商品,另外要享受企業(yè)級的售后服務(wù)?;谶@兩種角色來抽象設(shè)計(jì)業(yè)務(wù)對象時(shí),要模糊兩者之間差異細(xì)節(jié),讓這個(gè)對象具有更強(qiáng)適用性,既能代表小明那樣的普通客戶群,也能代表大買家的客戶群。
對優(yōu)惠券來說是一樣。在上面的流程里,優(yōu)惠券被抽象為卡券。為什么啊,現(xiàn)在是一張明確的滿100-10的優(yōu)惠券,但以后有活動推廣需要,還會做2折折扣券,代金券等等。但系統(tǒng)不可能為每一種券都重新設(shè)計(jì)一次程序。就像富士康,它的生產(chǎn)線,肯定不會是只能加工生產(chǎn)iPhone外殼,而生產(chǎn)不了其它電子設(shè)備外殼。不然的話,你需要為一種外殼做特定的生產(chǎn)設(shè)備,顯然是巨大的浪費(fèi)。所以在做產(chǎn)品時(shí),設(shè)計(jì)好合適的業(yè)務(wù)對象,能節(jié)省成本。出于產(chǎn)品結(jié)構(gòu)設(shè)計(jì)考慮,你還需要將這些需求告訴研發(fā)團(tuán)隊(duì),不然等到后期需要快速迭代時(shí),你可能會被告知『你以為直接拿過來就可以我復(fù)用啊,前期也沒需求說要考慮這些東西』。
再復(fù)雜的業(yè)務(wù)流程,分離業(yè)務(wù)對象之后,再根據(jù)事件把業(yè)務(wù)對象連接起來,業(yè)務(wù)操作作按業(yè)務(wù)對象作好相應(yīng)的歸屬,整個(gè)流程看起來就清晰得多。不是像剛?cè)胄凶隽鞒淘O(shè)計(jì),僅僅把實(shí)際操作步驟以流程的形式畫出來,業(yè)務(wù)操作與業(yè)務(wù)對象混在一起,沒有做任何的解構(gòu)和分享,業(yè)務(wù)流程圖看起來跟實(shí)際操作流程圖好像沒有任何區(qū)別。
這樣設(shè)計(jì)的好處是,前期,產(chǎn)品可以做得足夠簡單,也能滿足用戶需求。后期呢,產(chǎn)品保持足夠穩(wěn)定性,還能適應(yīng)產(chǎn)品快速迭代需要。
2B的產(chǎn)品工作中,一般接到的需求和業(yè)務(wù)場景都是明確的,需求方甚至?xí)f,我需要你如何如何做,來幫我達(dá)到怎樣的目的。我的做法是:
- 從業(yè)務(wù)流程出發(fā),提取主要業(yè)務(wù)對象,再對其進(jìn)行抽象化。
- 將抽象化的業(yè)務(wù)對象代入到產(chǎn)品結(jié)構(gòu)中。
- 然后再從業(yè)務(wù)對象出發(fā),看業(yè)務(wù)對象的變化在系統(tǒng)中會引起哪些影響,需要考慮哪些內(nèi)容。
- 將業(yè)務(wù)對象重新代入業(yè)務(wù)流程中,將流程轉(zhuǎn)化為不同業(yè)務(wù)對象之間的數(shù)值傳遞。
知乎上,看有人說抽象是不斷去除不重要的東西,提取本質(zhì),去偽存真的過程。這個(gè)觀點(diǎn),我不認(rèn)同。抽象化是為了獲取主干信息,降低復(fù)雜度。抽象過程好比爬梯子,一端指向抽象化,另一端指向具象化,我們總是需要在梯子反復(fù)地爬上爬下,就像PS畫圖,有時(shí)要縮小,俯瞰全貌看看整體效果是不是在控制之中。有時(shí)要放大,深入局部看細(xì)節(jié)有沒有畫到位。幫我們實(shí)現(xiàn):站在高處,把控和規(guī)劃好產(chǎn)品的發(fā)展。落在實(shí)處,能夠設(shè)計(jì)易用的功能和優(yōu)秀的交互體驗(yàn)。