一個(gè)PRD的誕生 | 教新手設(shè)計(jì)一個(gè)頂級(jí)表單定制后臺(tái)PRD

21 評(píng)論 16229 瀏覽 263 收藏 42 分鐘

在我面試幾百個(gè)產(chǎn)品經(jīng)理的經(jīng)歷中,我發(fā)現(xiàn)很多產(chǎn)品新人都在學(xué)習(xí)一些質(zhì)量不高的教程。這些教程通常用前大半截的篇幅來(lái)介紹一些形而上的理論,真的到了實(shí)操階段卻草草收尾,只教你一些表面的東西,例如流程圖長(zhǎng)什么樣、動(dòng)態(tài)面板怎么畫,很少去討論在真正的工作中,一個(gè)PRD到底是怎樣誕生的。所以我想做一些教程給你們看,讓你們能夠真正掌握實(shí)操的過(guò)程。

但在我整理過(guò)去作品的這段時(shí)間里,我發(fā)現(xiàn)很少作品可以寫成圖文教程,因?yàn)槲也捎玫亩际敲嫦驅(qū)ο蟮脑O(shè)計(jì)方法,每個(gè)模塊都是靜態(tài)的,模塊之間是互相成就的,不存在一個(gè)“線性的流程”。用幾小時(shí)視頻加上我的嘴炮旁白是可以做到的,但是用圖文的形式就很難表達(dá)清楚。

每當(dāng)這種時(shí)候我都很希望能掌握電影《降臨》中外星人傳授給地球人的表意文字。一個(gè)水墨狀的圓弧上,每一個(gè)突觸都代表一個(gè)事物,突觸之間的位置關(guān)系代表了它們?cè)谶@個(gè)故事里的角色。這個(gè)故事沒(méi)有開(kāi)頭和結(jié)尾,你可以用一萬(wàn)個(gè)聲音去敘述這個(gè)故事,而故事本身卻并不復(fù)雜,因?yàn)闀r(shí)間的一維方向性在這里被打破,只有角色,和角色之間的所有的關(guān)系。

不過(guò)這個(gè)系統(tǒng)是個(gè)例外,它是我上家公司政務(wù)SAAS系統(tǒng)中的一個(gè)小功能,叫做簡(jiǎn)易表單系統(tǒng)。顧名思義,它比較簡(jiǎn)易,因此它有機(jī)會(huì)寫成圖文教程。

寫這篇教程之前,我花了半天的時(shí)間來(lái)整理它的提綱,然后花了一天半的時(shí)間從以前的文檔里慢慢找到配圖并PS。從提綱來(lái)看,雖然沒(méi)有介紹到全部的思路,但是我在敘事結(jié)構(gòu)上做了一些取舍,讓你可以更輕松地跟著我的思路走下去,所以現(xiàn)在我們進(jìn)入正題。

注:本文在第3章之前都是抽象邏輯探索,你可能會(huì)覺(jué)得枯燥而跳過(guò)。但是當(dāng)你看完后面的原型章節(jié)之后,你會(huì)發(fā)現(xiàn),你還是得返回來(lái)重看一遍。

立項(xiàng)和整理需求

我不會(huì)人五人六地告訴你我是怎么調(diào)研市場(chǎng)和研究競(jìng)品的,因?yàn)檫@個(gè)項(xiàng)目不存在。在實(shí)際的互聯(lián)網(wǎng)公司工作中,很多痛點(diǎn)是痛到不行的,但是很多時(shí)候大家對(duì)痛苦的忍受程度、愚鈍程度也是超過(guò)你想象的,越大型、人均頭發(fā)數(shù)量越少的公司越是這樣。

這種時(shí)候,產(chǎn)品經(jīng)理也很容易因?yàn)閴毫ΧS波逐流,但你的使命就是去做指路人。只要把你的方案表述出來(lái),告訴別人怎么你是怎么解決老板和大家的痛苦的,你就可以立項(xiàng)。調(diào)研報(bào)告和各種炫彩的ppt不是必須的,它們通常是因?yàn)槟愕牟邉澃覆粔蚱?,或者大家還不夠相信你。沒(méi)有什么ppt能比一個(gè)漂亮的落地計(jì)劃直接甩在大家臉上更有說(shuō)服力。

上圖是某個(gè)銀行給我們的Excel表,他們想把這套表格搬到線上來(lái),圖里只是其中一個(gè)合作銀行的一部分的表格。而且,我們當(dāng)時(shí)在做的也不光是銀行的線上表單,剛好還有某個(gè)地區(qū)政府的科創(chuàng)局也需要上線一個(gè)系統(tǒng),讓企業(yè)用在線表單填寫信息上傳上去。

當(dāng)你看到這樣的可怕的表格,不是上圖這一份,而是十幾份,你會(huì)怎樣做?

“讓我們直接一頁(yè)一頁(yè)畫成原型,然后交給程序員一個(gè)字段一個(gè)字段開(kāi)發(fā)吧!”——在我看到我的產(chǎn)品經(jīng)理莫名其妙地加班、程序員也在莫名其妙地加班之前,他們就是這樣做的。我現(xiàn)在截圖給你看,你會(huì)覺(jué)得這樣很愚蠢,然而當(dāng)你身臨其境的時(shí)候,每天被老板分配的任務(wù)壓到喘不過(guò)氣的時(shí)候,你真的會(huì)很容易失去跳出來(lái)說(shuō)皇帝沒(méi)穿衣服的勇氣。

顯然你要去制作一個(gè)通用的表單系統(tǒng),這個(gè)表單系統(tǒng)能照顧到這些不同的數(shù)據(jù)填寫需求,讓程序員開(kāi)發(fā)出來(lái),然后撒手不管,丟給客戶或者運(yùn)營(yíng)去配置具體的數(shù)據(jù)。

很多產(chǎn)品經(jīng)理不知道去分辨老板哪些指令是專業(yè)的,哪些是業(yè)余的,自己甘心做一個(gè)“需求翻譯器”,還納悶為什么自己的需求不被人好好執(zhí)行。其實(shí)你的方案能讓大家少加班,還能讓大家出品更好,你的威信就在不斷建立,大家就會(huì)把你當(dāng)做指揮官。

當(dāng)遇到客戶或者老板丟給你十幾張Excel表的時(shí)候,你首先要看這些表格是不是規(guī)范的。如果是一張大寬表,所有的數(shù)據(jù)都被整理得井井有條的,那就不需要去梳理它,可以直接走下一步。但是如果你遇到的是我這樣的,不同的幾個(gè)機(jī)構(gòu)給的不同的表格,而你想把它們都做成一個(gè)表單系統(tǒng),那你就需要先去好好梳理這些數(shù)據(jù)了。

梳理數(shù)據(jù)時(shí)不要挑軟柿子,而是要去挑那些最硬的柿子。比如有些表格要求用戶上傳各種附件,有些表格的行數(shù)是不確定的,有些表格的層級(jí)數(shù)量特別多……你并不是要把所有客戶給的數(shù)據(jù)項(xiàng)全部整理到xMind,而是把這些難點(diǎn)在梳理的過(guò)程中理順。一旦把這些都理順了,就不需要再繼續(xù)梳理下去了。

我在第二步(右圖)嘗試著把梳理出來(lái)的數(shù)據(jù)轉(zhuǎn)化成業(yè)務(wù)模型,新手不要這樣做。因?yàn)楫嬤@種模型的基礎(chǔ),是你已經(jīng)可以很嫻熟地撰寫業(yè)務(wù)邏輯文檔,從而能夠直接憑空想象這些文檔,在大腦里直接把它圖形化。這種能力對(duì)我來(lái)說(shuō),是在我寫過(guò)至少80萬(wàn)字的文檔之后才產(chǎn)生的。

撰寫后端邏輯文檔

大部分產(chǎn)品經(jīng)理不會(huì)撰寫后端邏輯文檔,而在傳統(tǒng)的游戲界,這個(gè)技能是普遍存在的。這跟互聯(lián)網(wǎng)行業(yè)資金太多,產(chǎn)品經(jīng)理門檻太低有直接關(guān)系,會(huì)用墨刀就能做PM,這是多少培訓(xùn)班的謊言。我這么說(shuō)有的人可能不服,“我明明也寫了很多文字類的文檔啊”。但是大多數(shù)這些文字類的文檔,都是對(duì)原型的補(bǔ)充說(shuō)明,是前端層面的,而不是接口層面的,更不是后端層面的。

抽象后端邏輯是我快速落地一個(gè)項(xiàng)目的法寶??紤]周全的后端邏輯直接帶來(lái)后端大佬的好心情,后端大佬的好心情直接帶來(lái)好的接口,好的接口直接帶來(lái)前端大佬的好心情,前端大佬的好心情直接帶來(lái)好的用戶體驗(yàn)。跟后端程序員開(kāi)會(huì)的時(shí)候,我大部分時(shí)間只跟他們講后端邏輯文檔,至于原型長(zhǎng)什么樣子,其實(shí)除了接口方面,后端程序員根本不關(guān)心。如果你不能把后端邏輯說(shuō)清楚,而是一味地說(shuō)“這個(gè)按鈕點(diǎn)了之后就去到哪一頁(yè)”,證明你還是在用外行人的眼光來(lái)分解一個(gè)產(chǎn)品的構(gòu)成。

在你不熟悉后端邏輯文檔的情況下,你可以把本章內(nèi)容放在原型畫完的下一步來(lái)做。當(dāng)你嫻熟掌握之后,你會(huì)發(fā)現(xiàn),先寫邏輯文檔可以省下你很多由于業(yè)務(wù)邏輯不清晰而畫出錯(cuò)誤原型的時(shí)間,對(duì)于后臺(tái)產(chǎn)品來(lái)說(shuō)尤其如此。

不管一個(gè)線上表單玩出什么花樣,最終的顆粒都是不同類型的字段,我把它們稱作“簡(jiǎn)單字段”。簡(jiǎn)單字段沒(méi)什么好探索的,無(wú)非是文字、圖片、附件、選擇題、聯(lián)動(dòng)選項(xiàng)等等一些不同類型的字段。這里的關(guān)鍵點(diǎn)是下圖所示的“復(fù)合型字段”。

為什么要設(shè)計(jì)這些復(fù)合型字段?

因?yàn)樵谇懊媸崂磉@些Excel表的時(shí)候你會(huì)發(fā)現(xiàn),很多字段之間是有內(nèi)在關(guān)聯(lián)的,而我們?cè)O(shè)計(jì)一個(gè)后臺(tái)系統(tǒng)不管它再?gòu)?fù)雜,最終也是為了讓用戶填表的時(shí)候心情更爽。

  • 聯(lián)合字段的目標(biāo):在用戶端把幾個(gè)字段連在一起,消掉它們之間的間距,讓用戶知道這幾個(gè)字段是一起的;
  • 主從字段的目標(biāo):幾個(gè)字段也是一起的,但是它們之間有從屬關(guān)系。這個(gè)時(shí)候哪個(gè)字段在最上面,就代表它是老大。例如,主字段是“2016總營(yíng)收”,而兩個(gè)從屬的字段是“其中高新科技收入”和“其中醫(yī)藥產(chǎn)品收入”;
  • 多條組的目標(biāo):我們不知道用戶要填多少項(xiàng)數(shù)據(jù),只能粗略地設(shè)定一個(gè)上限,讓用戶自由添加條目。例如我們要求用戶填寫他公司的股東信息,我們只知道用戶每個(gè)股東的信息都要填寫姓名、職位和占股比例,但是具體用戶要填多少條,是用戶自己點(diǎn)“添加”按鈕的次數(shù)來(lái)決定的;
  • 二維表的目標(biāo):有些數(shù)據(jù)是由橫縱交錯(cuò)的行和列組成的,例如財(cái)務(wù)報(bào)表,縱向是具體的財(cái)務(wù)報(bào)表數(shù)據(jù),橫向是時(shí)間軸。這種表格顯然不管是在網(wǎng)頁(yè)端還是手機(jī)端,都應(yīng)該跳轉(zhuǎn)到一個(gè)單獨(dú)的頁(yè)面來(lái)填寫。

所以這個(gè)時(shí)候就可以寫字段部分的后端邏輯文檔了。不管這些字段在手機(jī)里的交互能玩出什么花樣來(lái),我們現(xiàn)在這一步只需要關(guān)注它在后端儲(chǔ)存哪些屬性,以及管理員可以對(duì)它進(jìn)行什么操作(我在文檔里用“func_”表示)。

簡(jiǎn)單字段是字段的最小顆粒,而復(fù)合型字段是對(duì)這些簡(jiǎn)單字段的進(jìn)一步拼裝。不過(guò)上圖其實(shí)有誤,因?yàn)槲仪懊娼榻B的復(fù)合字段有4種,而上圖文檔里只有2種,因?yàn)槲以诮Y(jié)合兩三個(gè)產(chǎn)品文檔來(lái)寫這個(gè)教程,請(qǐng)大家假裝看到我寫對(duì)了吧。

下一步就是把這兩種字段封裝起來(lái),把它們統(tǒng)稱“獨(dú)立字段”。在設(shè)計(jì)后端文檔的時(shí)候,什么情況下需要封裝呢?

就是當(dāng)你搞了幾種東西,而這幾種東西有很多統(tǒng)一的屬性,或者在很多情況下需要統(tǒng)一的管理。例如,你山寨一個(gè)小微博功能,用戶分為普通、黃V、藍(lán)V,顯然你應(yīng)該在“用戶”層面封裝一層,然后把通用的功能例如關(guān)注、發(fā)推等等都放在這里來(lái)描述。

  1. 字段的基本屬性:例如一個(gè)字段的標(biāo)題叫什么,描述是什么;
  2. 字段的額外屬性:其實(shí),設(shè)計(jì)到額外屬性的時(shí)候,我才覺(jué)得有必要把簡(jiǎn)單字段和復(fù)合字段封裝起來(lái)。因?yàn)樵诮o這些字段附加一些buff的時(shí)候,不管它是什么類型的,運(yùn)營(yíng)人員都應(yīng)該直接當(dāng)做一個(gè)對(duì)象來(lái)操作。例如,運(yùn)營(yíng)人員決定把8個(gè)字段構(gòu)成的“股東信息”標(biāo)記成注冊(cè)必填,那么顯然它們要作為一個(gè)整體來(lái)對(duì)待,不準(zhǔn)運(yùn)營(yíng)人員節(jié)選其中的某些字段來(lái)標(biāo)記。否則,整個(gè)系統(tǒng)的重心會(huì)被打亂;
  3. 字段的操作:同理,一個(gè)字段也好,一串關(guān)聯(lián)的字段也好,對(duì)于操作來(lái)講都是整體的。即使復(fù)合字段內(nèi)部有另外的操作,也不影響它作為一個(gè)整體進(jìn)行操作;
  4. 字段數(shù)據(jù)的儲(chǔ)存:略。

接下來(lái)你就要考慮,剛才形成的那些一個(gè)個(gè)獨(dú)立字段,要怎樣進(jìn)一步儲(chǔ)存起來(lái)?

在剛才我們梳理數(shù)據(jù)的時(shí)候,你會(huì)發(fā)現(xiàn)這些數(shù)據(jù)是一層一層裝起來(lái)的,而且不同的甲方在歸類這些數(shù)據(jù)時(shí)的偏好也不相同。有些可能比較喜歡套娃,五六層目錄才看到數(shù)據(jù);有些數(shù)據(jù)量比較少,一兩層數(shù)據(jù)就可以搞定。所以獨(dú)立字段最外面肯定是由N層目錄包裹起來(lái)的。我們把目錄做成套娃的模樣,甲方爸爸喜歡多少層套娃,我們就給他多少層套娃。

但是,是不是用戶打開(kāi)最后一層套娃之后,就直接看到一個(gè)個(gè)字段了?

這又需要你從后臺(tái)的思維跳脫出來(lái),去考慮用戶體驗(yàn)的事情了。

之前我看到一個(gè)網(wǎng)友的提問(wèn):“HR說(shuō)我只有后臺(tái)經(jīng)驗(yàn),所以覺(jué)得我不具備用戶端方面的才能”(大意),我想說(shuō),HR這個(gè)行業(yè)的平均水平可能還不如產(chǎn)品經(jīng)理的平均水平,牛逼的后臺(tái)產(chǎn)品經(jīng)理設(shè)計(jì)任何一個(gè)后臺(tái)功能的時(shí)候,都會(huì)去想象它在前端會(huì)長(zhǎng)什么樣。后臺(tái)直接決定了一個(gè)產(chǎn)品的用戶端好不好用,而反過(guò)來(lái),如果你只設(shè)計(jì)C端,而不了解后端,那么你設(shè)計(jì)的東西可能在數(shù)據(jù)結(jié)構(gòu)上完全沒(méi)法跟服務(wù)器搭上,那么你想它怎么落地呢?

這套后臺(tái)做好之后,它所定制的表單,用戶在手機(jī)和網(wǎng)頁(yè)都可以訪問(wèn),兩個(gè)端的設(shè)計(jì)也會(huì)有不同。這個(gè)時(shí)候最好的辦法就是去思考它在手機(jī)端的效果。手機(jī)的屏幕小,對(duì)體驗(yàn)的要求更苛刻,如果你的設(shè)計(jì)在手機(jī)走得通,那么在網(wǎng)頁(yè)端只會(huì)走得更通。

在手機(jī)端YY(不一定要畫出原型來(lái))之后你會(huì)發(fā)現(xiàn),最后一層數(shù)據(jù)的體驗(yàn)是上圖這樣才會(huì)比較舒服。當(dāng)用戶進(jìn)到某個(gè)最終的目錄,他首先會(huì)看到一些入口(左圖),這些入口點(diǎn)進(jìn)去就是一個(gè)小型的表單(右圖)。這樣設(shè)計(jì)之后,用戶的填表壓力就被拆解了,同時(shí),用戶進(jìn)入一個(gè)小表單之后,上下滑動(dòng)就可以填寫所有的數(shù)據(jù),不需要再左右跳轉(zhuǎn)層級(jí)了。

所以這個(gè)小表單我把它定義為“數(shù)據(jù)體”。一堆有關(guān)聯(lián)的字段裝進(jìn)一個(gè)數(shù)據(jù)體里,然后這個(gè)數(shù)據(jù)體放在目錄里,最后形成整個(gè)業(yè)務(wù)的表單。

你可能會(huì)想,我直接讓前端把最后一層目錄自動(dòng)展示成這樣不行嗎?這樣不是更簡(jiǎn)潔嗎?為什么還要多一個(gè)“數(shù)據(jù)體”的概念?

這是因?yàn)椤?/p>

第一,數(shù)據(jù)體只能儲(chǔ)存平級(jí)字段,從邏輯上直接避免字段跟目錄混搭。這樣就能有效地保證,用戶面對(duì)的都是一整頁(yè)的字段,上下滑動(dòng)就可以填寫完畢。我們考慮重要功能的時(shí)候,一定要假設(shè)運(yùn)營(yíng)人員是懶惰的,是跟你完全對(duì)著干的,在重要的用戶體驗(yàn)上,要用邏輯的強(qiáng)制性來(lái)對(duì)抗人性的普遍弱點(diǎn)。正因?yàn)檫\(yùn)營(yíng)人員可能是懶惰的,所以當(dāng)你設(shè)計(jì)了數(shù)據(jù)體之后,他更傾向于把同類的數(shù)據(jù)全部裝進(jìn)一個(gè)數(shù)據(jù)體,而不是勤勞地創(chuàng)建多個(gè)數(shù)據(jù)體,這就保證了用戶填表的爽快感。

第二,每個(gè)數(shù)據(jù)體都是有主題的。例如,某個(gè)數(shù)據(jù)體叫做“個(gè)人信貸記錄”,里面有幾十個(gè)字段讓用戶填寫這方面的數(shù)據(jù)。那么,它需不需要整體的教程?在未來(lái)需不需要作為一個(gè)討論話題開(kāi)放給用戶社區(qū)?所以,當(dāng)你遇到這種業(yè)務(wù)上有必要?dú)w類的東西時(shí),你可以考慮它的未來(lái)場(chǎng)景。如果在未來(lái)它應(yīng)該具備一些場(chǎng)景,那么你就可以提前把它設(shè)計(jì)成一個(gè)獨(dú)立的主體。

根據(jù)上面的討論,數(shù)據(jù)體和目錄的文檔就寫出來(lái)了,整個(gè)后端邏輯文檔的主體就大概成型了。文檔寫好之后,你再設(shè)計(jì)相應(yīng)的后臺(tái)原型會(huì)發(fā)現(xiàn)真的相當(dāng)輕松,你可以開(kāi)著音樂(lè)來(lái)畫原型,因?yàn)槟阍诖蟮姆较蛏喜豢赡苡惺裁催z漏。比如有了上圖結(jié)尾的“目錄的操作”之后,當(dāng)你畫到目錄的原型時(shí),你難道會(huì)漏掉“調(diào)整排序”這個(gè)按鈕嗎?

找到原型的套路

對(duì)于一個(gè)任意復(fù)雜度的后臺(tái)系統(tǒng)來(lái)講,只要你能寫出上面的邏輯文檔來(lái),那么其實(shí)你的原型已經(jīng)可以consider it done了。只有畫出來(lái)好不好看、好不好用的區(qū)別,沒(méi)有功能實(shí)現(xiàn)上的區(qū)別。不過(guò)恰好那段時(shí)間我比較閑,所以畫了一個(gè)很規(guī)范的單頁(yè)應(yīng)用原型。也正因如此,我選了這個(gè)產(chǎn)品來(lái)寫教程。

對(duì)于一個(gè)專業(yè)寫文檔的產(chǎn)品經(jīng)理來(lái)講(不知道什么時(shí)候起,追求專業(yè)的文檔被當(dāng)做一個(gè)產(chǎn)品經(jīng)理可有可無(wú)的特性?好像還會(huì)被人當(dāng)做手作人那樣帶點(diǎn)居高臨下的味道?各種數(shù)字報(bào)表和商業(yè)計(jì)劃ppt被當(dāng)成了時(shí)代首選技能?),沒(méi)有固定的原型套路,只有最適合當(dāng)前產(chǎn)品的原型套路。如果不是以前的套路,那就去發(fā)明一種新的套路,這樣你的套路就會(huì)越來(lái)越多,所以接下來(lái)我們就看看這個(gè)產(chǎn)品適合哪種套路。

在不知道怎么動(dòng)手的時(shí)候,與其在那里不斷規(guī)劃(實(shí)際上是拖延癥),往往不如直接開(kāi)工把最硬的骨頭先啃下來(lái),對(duì)這個(gè)產(chǎn)品來(lái)講先去畫主界面就對(duì)了。上圖就是我畫的主界面。畫完之后你會(huì)發(fā)現(xiàn),整個(gè)后臺(tái)其實(shí)只有這一頁(yè)。左邊是目錄,中間是這個(gè)目錄下的數(shù)據(jù)體,而右邊是選中了一個(gè)數(shù)據(jù)體之后的具體配置。

但是這一頁(yè)是分三種狀態(tài)的,除了平時(shí)的狀態(tài)之外,還有兩種特殊的狀態(tài)。當(dāng)用戶在目錄里選擇的不是普通的目錄,而是回收站的時(shí)候,由于回收站的功能會(huì)比較受限,所以頁(yè)面的布局和元素也出現(xiàn)了閹割,從而影響了整個(gè)頁(yè)面的布局。然而這三種狀態(tài)又有很多共用的元素。如果在原型里把它們分開(kāi)去講述,顯然就是把工作量擴(kuò)大了至少三倍。

在純粹具象的原型設(shè)計(jì)思路上,這個(gè)頁(yè)面分為三種狀態(tài),意味著三份重復(fù)勞動(dòng);而從最抽象的眼光來(lái)看,這三種狀態(tài)有100%的元素都是共用的,就好像除了靈魂和記憶之外,我們可以把一個(gè)人看做等價(jià)于他身上的任意一個(gè)、沒(méi)有癌變的細(xì)胞,但是用這種眼光去欣賞你的同類又顯得有點(diǎn)乏味了。

這兩種做法都比較極端,你的目標(biāo)就是去找到其中的平衡點(diǎn),也就是我在前面提到的,去找到符合這個(gè)產(chǎn)品的套路。每個(gè)人的性格都不一樣,原型畫風(fēng)和用戶理念也不一樣,套路自然也不一樣。以我個(gè)人比較潔癖的性格為例,以下是我找到的套路。

  1. 把三種主界面的形態(tài)畫成三個(gè)頁(yè)面(使用“CASE_”前綴);
  2. 把頁(yè)面的共同元素抽離出來(lái),作為一個(gè)單獨(dú)的對(duì)象(使用“#obj_”前綴,其中井號(hào)在我的原型中的意義是:它并不代表一個(gè)真實(shí)的頁(yè)面,只是某個(gè)頁(yè)面中的一個(gè)提取出來(lái)的東西,例如對(duì)象、彈窗或流程)來(lái)描述;
  3. 把這個(gè)對(duì)象做成超鏈接小方塊,扔進(jìn)使用這個(gè)對(duì)象的頁(yè)面里。一個(gè)對(duì)象在多少個(gè)頁(yè)面出現(xiàn),你就扔多少個(gè)小方塊在這些頁(yè)面,而具體這個(gè)對(duì)象的文檔,你只需要維護(hù)一頁(yè);
  4. 在原型的第一頁(yè)寫上閱讀說(shuō)明。上圖的閱讀說(shuō)明是我從其它原型里翻出來(lái)的,所以有些東西對(duì)不上號(hào),請(qǐng)大家假裝看到了正確的閱讀說(shuō)明。

我這樣說(shuō)比較抽象,下面先舉一個(gè)簡(jiǎn)單的例子——

如上圖所示,主界面的兩個(gè)狀態(tài)都出現(xiàn)了數(shù)據(jù)體列表,所以我把鏈接到數(shù)據(jù)體列表的小方塊扔進(jìn)了這兩頁(yè)中。程序員不管在其中那一頁(yè),只要他說(shuō)“這個(gè)列表是怎么展示的?哦,下面有個(gè)小方塊,我點(diǎn)進(jìn)去看一下”,他都會(huì)進(jìn)到下面這個(gè)文檔里。

我做原型基本上都是用這些小方塊來(lái)跳轉(zhuǎn)的,除非是用來(lái)給客戶演示的原型,否則我很少在頁(yè)面元素本身做交互。都是把所有跳轉(zhuǎn)的按鈕放在小方塊里,然后單獨(dú)擺在頁(yè)面上。頁(yè)面是頁(yè)面,方塊是方塊。為什么這樣?因?yàn)榈臅r(shí)候太舒服了,我從來(lái)不用去尋找動(dòng)態(tài)面板里面的動(dòng)態(tài)面板里面的交互,所有的鏈接都是平鋪出來(lái)的,所見(jiàn)即可拖。

有的人就要說(shuō)了,“Axure不是這樣用的,你得做交互!”——我為什么要做交互?

我們不妨深入想一想這個(gè)問(wèn)題,就是我們?yōu)槭裁匆鼜腁xure設(shè)計(jì)思維的問(wèn)題。Axure并不是一個(gè)純粹的原型設(shè)計(jì)軟件。從使用體驗(yàn)上,他要照顧新手,所以搞了很多所見(jiàn)即所得的效果,但是它的這些效果實(shí)際上是高不成低不就的。

設(shè)計(jì)動(dòng)態(tài)交互上,為什么不去畫時(shí)間軸或者直接用AE呢?幾個(gè)吭哧吭哧的動(dòng)畫,幾個(gè)動(dòng)態(tài)面板的特效,就能代表所有瀏覽器和移動(dòng)設(shè)備的交互效果嗎?

從用戶群上,他更不是針對(duì)產(chǎn)品經(jīng)理的,而是針對(duì)那些要看原型的外行老板們。老板們不會(huì)裝專用客戶端,所以Axure最終輸出的是網(wǎng)頁(yè),因此它的所有交互事件也都建立在瀏覽器事件上,同時(shí)它還只是瀏覽器的閹割版,不論是事件的傳遞、一個(gè)前端對(duì)象的狀態(tài)切換,還是頁(yè)面元素之間的布局關(guān)系,全都不如直接寫代碼來(lái)的簡(jiǎn)單。

例如在iOS開(kāi)發(fā)App時(shí),想要讓一個(gè)按鈕左右離屏幕20pt,自動(dòng)拉伸,并且懸浮在頁(yè)面底部100pt處,你只需要填幾個(gè)數(shù)字就行了,而在Axure里你反而要寫很多的邏輯才能實(shí)現(xiàn)。

就是這樣的繞路實(shí)現(xiàn),還被很多人當(dāng)成技術(shù)的炫耀,我覺(jué)得跟整天探索“茴”字有幾種寫法是沒(méi)有任何區(qū)別的。更不用提Axure那種故作高級(jí)的態(tài)度了,例如把回收站功能和圖片壓縮選項(xiàng)都取消掉,好像這樣顯得比較“簡(jiǎn)潔”。

Axure它只是一個(gè)工具,同時(shí)很不幸的是,目前(我拿到投資之前),我們基本只有這個(gè)工具能用。但這并不影響工具的使用者不是去服務(wù)工具,而是讓工具服務(wù)使用者。

話說(shuō)回我怎樣讓Axure服務(wù)于我,我們接著看我的原型。

有堅(jiān)不摧的對(duì)象繼承鏈條

如果一個(gè)產(chǎn)品上線之后不需要迭代,畫原型只需要一個(gè)版本就結(jié)束工作,那么我接下來(lái)說(shuō)的全都是廢話。所以我在下文展示原型圖的時(shí)候會(huì)重點(diǎn)告訴你:為什么對(duì)于產(chǎn)品迭代來(lái)講,我需要這樣的設(shè)計(jì)。

接下來(lái)就承接上一章的設(shè)計(jì)套路,為你展現(xiàn)原型里最重要的“數(shù)據(jù)體”模塊的“對(duì)象繼承鏈條”。你現(xiàn)在不需要知道這個(gè)鏈條具體的概念,只需要打起精神來(lái),跟著我的7個(gè)連環(huán)鏈條(倒敘)走下去,不要中途走神。

鏈條第7環(huán):數(shù)據(jù)體

數(shù)據(jù)體就是前文提過(guò)的,主界面中最主要的一個(gè)模塊,用來(lái)配置一個(gè)具體的數(shù)據(jù)體。還記得數(shù)據(jù)體在后端邏輯文檔里面的規(guī)劃嗎?

沒(méi)錯(cuò),數(shù)據(jù)體就是用來(lái)直接裝載字段的東西。所以數(shù)據(jù)體在原型里,除了自身頭部信息之外,主要就是用來(lái)裝載具體的字段了。另外,上圖中所有的菜單功能,你如果翻回前面的后端邏輯文檔,你會(huì)發(fā)現(xiàn)我早就已經(jīng)用“func_”把它們都規(guī)劃完了。這就是我說(shuō)的,后端邏輯文檔寫完之后,你可以聽(tīng)著音樂(lè)畫原型。

鏈條第6環(huán):獨(dú)立字段

從剛才標(biāo)注了獨(dú)立字段的鏈接,就可以進(jìn)入獨(dú)立字段的說(shuō)明頁(yè)?;貞浺幌潞蠖诉壿嬑臋n,獨(dú)立字段是什么?

沒(méi)錯(cuò),獨(dú)立字段是我們提前規(guī)劃好的,對(duì)兩種字段的封裝,這兩種字段分別是“簡(jiǎn)單字段”和“復(fù)合型字段”。所以,必然地,獨(dú)立字段的具體展示也要分兩種情況來(lái)介紹給前端程序員了。

你問(wèn)后端程序員去哪了?

后端程序員看完我的邏輯文檔早就開(kāi)發(fā)完了,正在催著前端程序員趕緊聯(lián)調(diào)。如果前端程序員在這一頁(yè)粗心大意,沒(méi)有按照我的設(shè)計(jì)把獨(dú)立字段的具體展示分成兩種,我根本不用去管,后端接口的報(bào)錯(cuò)已經(jīng)用滿屏的紅色閃現(xiàn)在前端程序員的屏幕上了。

鏈條第5環(huán):添加或修改字段中轉(zhuǎn)頁(yè)

在前面兩個(gè)環(huán)節(jié),你看到了數(shù)據(jù)體,也看到了數(shù)據(jù)體下面的獨(dú)立字段。這兩個(gè)環(huán)節(jié)不是平級(jí)的,但是它倆都具備添加或修改字段的功能。

為什么會(huì)這樣?因?yàn)閿?shù)據(jù)體本身肯定可以添加字段,而數(shù)據(jù)體下面的具體字段,你得提供再次修改這些字段的功能啊,你不能讓運(yùn)營(yíng)的人每次錄入都簽字無(wú)悔啊。

但是,問(wèn)題在于,“添加修改簡(jiǎn)單字段”和“添加修改復(fù)合型字段”我是分成兩個(gè)具體頁(yè)面來(lái)畫原型的。從數(shù)據(jù)體的菜單添加一個(gè)字段的時(shí)候,用戶在菜單里直接就選擇了一個(gè)字段類型,所以是直接前往具體的原型頁(yè)面。而修改一個(gè)獨(dú)立字段的時(shí)候,由于我已經(jīng)抽象了兩種字段的菜單,所以我是不知道你到底要去哪個(gè)具體原型頁(yè)面的。

這個(gè)時(shí)候,只要加多一個(gè)上級(jí)的中轉(zhuǎn)頁(yè)面,然后把這兩頁(yè)具體文檔變成它的子頁(yè)面就行了。然后,你在中轉(zhuǎn)頁(yè)面里把這兩頁(yè)的鏈接放進(jìn)去。使用這個(gè)功能時(shí),當(dāng)邏輯不確定的時(shí)候,你就鏈接中轉(zhuǎn)頁(yè);邏輯很確定的時(shí)候,你就鏈接具體的文檔。你可能要問(wèn)了,我為什么要搞這么麻煩呢?因?yàn)檫@個(gè)中轉(zhuǎn)頁(yè)對(duì)以后的迭代是有重大意義的。

在以后迭代的時(shí)候,如果字段的復(fù)合類型變多了,那么添加修改字段的文檔也就不止兩頁(yè)了,可能有十頁(yè)。到了那個(gè)時(shí)候,如果你要增加第11種文檔,你要把整個(gè)原型所有用到添加修改字段功能的頁(yè)面全部更新一遍。

而我這樣做就不需要了,因?yàn)槠渌?yè)面只是指向這個(gè)中轉(zhuǎn)頁(yè),你每次在中轉(zhuǎn)頁(yè)下面增加一個(gè)頁(yè)面,就記得把它的鏈接也放進(jìn)中轉(zhuǎn)頁(yè),這不就不用整個(gè)原型改一遍嗎?

鏈條第4環(huán):修改復(fù)合型字段

從剛才所說(shuō)的中轉(zhuǎn)頁(yè)或者具體的鏈接,我們就進(jìn)入了“添加或修改一個(gè)復(fù)合型字段”的頁(yè)面。復(fù)合型字段除了本身的字段描述信息之外,主要就是由簡(jiǎn)單字段構(gòu)成的了。所以這個(gè)模塊主要的功能自然就是去添加、修改和刪除這些簡(jiǎn)單字段。

再次重申,由于復(fù)合字段中可以對(duì)簡(jiǎn)單字段進(jìn)行哪些操作,我們?cè)缇驮诤蠖诉壿嬑臋n里用“func_”整理完畢了,所以這里你可以完全放空大腦就能無(wú)遺漏地把這些功能菜單設(shè)計(jì)齊全,根本輪不到別人挑你的BUG。

我的記憶力極差,初中的時(shí)候背一首唐詩(shī)背到放學(xué)一小時(shí)老師還不準(zhǔn)我回家,到現(xiàn)在我女朋友還整天說(shuō)我是花生仁那么大的腦袋。但是我發(fā)原型文檔給程序員時(shí),每次都說(shuō)“一個(gè)設(shè)計(jì)BUG請(qǐng)吃飯一次”,然而最近兩三年基本沒(méi)人吃到我的謝罪大餐,靠的就是先寫邏輯文檔。

鏈條第3環(huán):修改簡(jiǎn)單字段

在前面一個(gè)環(huán)節(jié)里,你會(huì)發(fā)現(xiàn)復(fù)合型字段是由簡(jiǎn)單字段構(gòu)成的,所以,雖然在文檔中,修改簡(jiǎn)單字段和修改復(fù)合字段是平級(jí)的。但是用戶在復(fù)合型字段中修改或者添加一個(gè)簡(jiǎn)單字段的時(shí)候,實(shí)際調(diào)用的是修改簡(jiǎn)單字段的功能。所以,除了第5環(huán)節(jié)的中轉(zhuǎn)頁(yè)之外,復(fù)合型字段也可以調(diào)用這個(gè)修改簡(jiǎn)單字段的功能。

修改簡(jiǎn)單字段的功能,就是終于接觸到最終的實(shí)際字段了。但是我在上圖里為什么只畫了“選擇題”這一種情況呢?其它類型的字段我為什么沒(méi)畫在這里,而是又鏈接到其它頁(yè)面呢?難道我就這么喜歡套娃?

鏈條第2環(huán):字段表傳送門

不是我喜歡套娃,而是“簡(jiǎn)單字段的配置與展示”出現(xiàn)的地方飄忽不定。所以我必須到處安插傳送門,至于這個(gè)傳送門通向什么領(lǐng)域,你馬上就會(huì)知道。

鏈條第1環(huán):字段表

所有的傳送門都通向這張字段表。我們?cè)谶@里把所有類型字段的展示、配置都放進(jìn)來(lái),然后好好維護(hù)它。

為什么要這樣做?

想必你也知道了——這畢竟是一個(gè)表單系統(tǒng),表單系統(tǒng)的基石就是字段,字段在未來(lái)的擴(kuò)充肯定是相當(dāng)頻繁的。

這張表看起來(lái)現(xiàn)在還沒(méi)什么,但是如果不去這樣設(shè)計(jì)它,那么你每一次迭代這個(gè)系統(tǒng),都要花一半的時(shí)間去修改每個(gè)具體頁(yè)面所展現(xiàn)的字段。真要這樣頭鐵,那么恭喜你,你離人類的本質(zhì)越走越近了。

你說(shuō),你沒(méi)有我這么多的后臺(tái)設(shè)計(jì)經(jīng)驗(yàn),不知道字段表需要拆出來(lái)單獨(dú)維護(hù),不知道要把頻繁更新的功能放進(jìn)中轉(zhuǎn)頁(yè),也不知道不同層級(jí)的模塊要怎么拆分、怎么互相連接?再看一眼這一章的標(biāo)題:“有堅(jiān)不摧”的對(duì)象繼承鏈條。

沒(méi)有任何文檔撰寫套路是無(wú)堅(jiān)不摧的。如果有一篇文章在你的feed里冒出來(lái),告訴你“掌握這20個(gè)技巧,就能讓你設(shè)計(jì)一個(gè)專業(yè)的XXXX原型”,那么你應(yīng)該趕緊點(diǎn)進(jìn)去屏蔽這個(gè)人,然后再舉報(bào)這篇文章,然后再返回你的feed點(diǎn)擊“我不感興趣”。

你唯一能做的,就是每次反省自己原型設(shè)計(jì)的問(wèn)題,每次迭代的時(shí)候看一看自己做了多少無(wú)用功,把每個(gè)周末的時(shí)間都花在完善自己的文檔上,力圖讓它達(dá)到你現(xiàn)在的100分。然后等下一次迭代的時(shí)候,輕蔑地看它一眼,說(shuō)一聲“垃圾原型,50分鑒定完畢”,存?zhèn)€版本,然后開(kāi)一個(gè)新的文檔,把有用的東西復(fù)制進(jìn)來(lái),把沒(méi)用的結(jié)構(gòu)打散扔掉,然后再力圖把它變成新的100分……

結(jié)語(yǔ)

在結(jié)語(yǔ)部分,我們先用一張關(guān)系圖來(lái)回顧一下,前兩章我花了那么大的篇幅來(lái)講原型的繪制,我到底講了什么。

是的,我檢查了很多遍,我仔細(xì)檢查了右圖的每個(gè)方塊、每條連線,最后我才說(shuō)服自己相信,這張關(guān)系圖已經(jīng)完整、沒(méi)有遺漏地,表達(dá)了我在前面兩個(gè)章節(jié)煞費(fèi)口舌地描述的所有模塊之間的關(guān)系。

我統(tǒng)計(jì)了一下,那兩個(gè)章節(jié)我寫了大概4400字,其中用來(lái)表述模塊之間的關(guān)聯(lián)關(guān)系的,我們算它有3000字。而圖表里面的漢字是128字。圖表里除了漢字之外,就只剩下方塊、位置、線條這些圖形關(guān)系了。所以,圖形帶來(lái)的文字表達(dá)效率之比是24比1。

——你需要注意的是,我畫的是關(guān)系圖,而不是流程圖。流程圖是具有方向性的,本質(zhì)上只是更簡(jiǎn)潔的文字。而關(guān)系圖是沒(méi)有方向性的(這就是為什么我的連線沒(méi)有箭頭),從任何一個(gè)局部都可以順著線條向外推導(dǎo),推導(dǎo)出任何你想講述的故事。

關(guān)系圖是簡(jiǎn)潔、低調(diào)和安靜的,但正如老劉說(shuō)的:“記得大三的一次信息課中,教授掛出了兩幅大圖片,一幅是畫面龐雜精細(xì)的《清明上河圖》,另一幅是一張空曠的天空照片,空蕩蕩的藍(lán)天上只有一縷似有似無(wú)的白云。教授問(wèn)這兩幅畫中哪一幅所包含的信息量更大,答案是后者要比前者大一至兩個(gè)數(shù)量級(jí)”。

這就是我在文章開(kāi)頭提到的,我多么希望我能掌握《降臨》里外星人使用的表意文字。為了講清楚我的產(chǎn)品設(shè)計(jì)思路,我講了很多的話,你花了很久的功夫來(lái)閱讀。但是實(shí)際上,我真正希望你掌握的,是這門安靜的語(yǔ)言,是純粹圖形化的思維。我指的不光是前面的原型繪制部分,其實(shí)更包括后端邏輯文檔的部分,它們都可以被圖形化。

事實(shí)上,在我寫完這篇教程之前,我根本不知道原來(lái)我要講這么多的話。整個(gè)產(chǎn)品的設(shè)計(jì)過(guò)程里,我的腦子里基本是不存在語(yǔ)言的,只有一個(gè)個(gè)的形狀像狄拉克海那樣,從虛空里不斷潮起潮落。你把它們摘下來(lái),不斷地重組它們,當(dāng)你把它們捏成一團(tuán)一團(tuán)之后,你會(huì)發(fā)現(xiàn),你已經(jīng)完成了對(duì)一個(gè)產(chǎn)品的整個(gè)設(shè)計(jì)過(guò)程。

當(dāng)你越來(lái)越適應(yīng)這種圖形化思維之后,你會(huì)發(fā)現(xiàn),你能比別人快很多倍地構(gòu)思一個(gè)復(fù)雜的系統(tǒng)出來(lái)。唯一的缺點(diǎn)是,你的圖形思維模塊會(huì)侵占你的語(yǔ)言中樞——你更說(shuō)不過(guò)那些喜歡講ppt的人了。

 

作者:黃聯(lián)樵,微信:arubagod

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

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

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. “大多數(shù)這些文字類的文檔,都是對(duì)原型的補(bǔ)充說(shuō)明,是前端層面的,而不是接口層面的,更不是后端層面的。”小白落淚

    回復(fù)
  2. 加好友吧!

    來(lái)自香港 回復(fù)
  3. 看不懂。。。

    來(lái)自浙江 回復(fù)
  4. 值得好好細(xì)品?。?/p>

    回復(fù)
  5. 求解二維表格該如何配置呢

    來(lái)自浙江 回復(fù)
  6. 新手產(chǎn)品,求解prd文檔怎么寫才好,最好那位大佬給個(gè)樣本感激不盡??! ??

    來(lái)自重慶 回復(fù)
  7. 新手產(chǎn)品,求解prd文檔怎么寫才好,最好那位大佬給個(gè)樣本 ??

    來(lái)自重慶 回復(fù)
  8. 辛苦了。。。。支持一下無(wú)私分享。實(shí)際上我想說(shuō)的是,如果從傳統(tǒng)軟件工程的角度去認(rèn)識(shí),沒(méi)必要這么復(fù)雜的自己造輪子摸索。關(guān)系型數(shù)據(jù)庫(kù),ER圖,這就是面向后端的開(kāi)發(fā)需求描述方式。。難嗎?不難,只不過(guò)C端產(chǎn)品這波潮流導(dǎo)致很多人太忽視了傳統(tǒng)軟件工程的方法論

    來(lái)自廣東 回復(fù)
    1. ER圖或者直接表達(dá)數(shù)據(jù)庫(kù)的圖形,以前我走過(guò)這個(gè)彎路,那個(gè)會(huì)導(dǎo)致外行管理內(nèi)行,插手開(kāi)發(fā)。所以后來(lái)我的業(yè)務(wù)模型僅限于我要表達(dá)的核心業(yè)務(wù),盡量去掉任何對(duì)開(kāi)發(fā)人員實(shí)現(xiàn)的干擾。

      來(lái)自廣東 回復(fù)
    2. (接上條評(píng)論)另外我還走過(guò)一個(gè)彎路,就是過(guò)分在意開(kāi)發(fā)實(shí)現(xiàn)。所以后來(lái)邏輯文檔只注重我自己對(duì)業(yè)務(wù)的歸納,等于當(dāng)做一個(gè)腦圖一樣的東西來(lái)用,方便展現(xiàn)業(yè)務(wù)邏輯就行了。

      來(lái)自廣東 回復(fù)
  9. 滿滿干貨?。。?!最近在用墨刀的「PRD模式」可以邊畫原型,邊寫PRD 真的爽,不過(guò)知其然也需要知其所以然,框架梳理等,感謝分享!

    回復(fù)
    1. 感謝支持!

      來(lái)自廣東 回復(fù)
  10. 初看晦澀難懂,再看驚為天作!

    來(lái)自四川 回復(fù)
    1. 感謝支持!

      來(lái)自廣東 回復(fù)
  11. 這是我在本網(wǎng)站看過(guò)質(zhì)量最高的文章。感謝作者的分享。

    來(lái)自北京 回復(fù)
    1. 過(guò)獎(jiǎng)了啊,感謝!

      來(lái)自廣東 回復(fù)
  12. 打擾了,大佬

    來(lái)自四川 回復(fù)
  13. 在分享干貨的同時(shí),無(wú)情的抨擊了人人都是產(chǎn)品經(jīng)理這個(gè)行業(yè)亂象。

    還有就是同行襯托問(wèn)題
    尤其是PRD怎么寫,就是看是什么樣的產(chǎn)品和什么樣的團(tuán)隊(duì)。
    PRD本身也是產(chǎn)品經(jīng)理輸出的產(chǎn)品,如果一味追求好看、頁(yè)數(shù)、文字量,那最多讓外行人覺(jué)得豐富。
    本來(lái)是人就能看得懂的功能,硬是要編輯成長(zhǎng)篇大論,注釋都可以幾百字,技術(shù)開(kāi)發(fā)團(tuán)隊(duì)看了直接搖頭。

    也再次打擊到了我這種純前端的產(chǎn)品經(jīng)理,我完全不懂技術(shù)原理的那種。
    感覺(jué)自己很不值錢,很快會(huì)被淘汰。
    因?yàn)楦笈_(tái)比起來(lái),摸著良心說(shuō)。前端產(chǎn)品真的是初中生學(xué)個(gè)把月就能做的東西,哎。

    來(lái)自上海 回復(fù)
    1. 前端產(chǎn)品經(jīng)理更多是對(duì)用戶需求的拿捏與把握,跟功能實(shí)現(xiàn)邏輯無(wú)關(guān)。前后端產(chǎn)品經(jīng)理本身的側(cè)重點(diǎn)就不一樣。人人都能去買中藥,但是能配出方子的只有醫(yī)生。

      來(lái)自廣東 回復(fù)
    2. 我個(gè)人前臺(tái)和后臺(tái)都做,還是更喜歡設(shè)計(jì)一些好的用戶體驗(yàn),比如工具類的東西。個(gè)人前端跟后臺(tái)是一樣的,不管從用戶角度還是從文檔角度,都有無(wú)限追求的空間。

      來(lái)自廣東 回復(fù)
    3. 我正好是做工具類的產(chǎn)品,所以思維上很偏C。
      一開(kāi)始都是從抄開(kāi)始的,這也就是我說(shuō)的初中生的部分。
      但隨后衍生出的一些設(shè)計(jì)我感覺(jué)都是通過(guò)長(zhǎng)期和用戶、場(chǎng)景及行業(yè)接觸,就會(huì)有屬于自己的新想法。
      后臺(tái)這塊我覺(jué)得相對(duì)來(lái)說(shuō),我最常見(jiàn)的場(chǎng)景是因?yàn)椴欢夹g(shù),無(wú)法真正的站在程序員角度換位思考。
      尤其是跑一些敏捷開(kāi)發(fā)的時(shí)候,都需要和程序員商量哪套方案性價(jià)比更高。
      總得來(lái)說(shuō)感謝2位回復(fù),與大神共勉。

      來(lái)自上海 回復(fù)