作為剛剛開始接觸產(chǎn)品經(jīng)理的人较幌,都知道PRD揍瑟。而要寫好PRD需要不斷的打磨與鍛煉。目前剛起步乍炉,主要做了執(zhí)行的工作绢片,查閱了一些前人的分享,現(xiàn)結(jié)合自己的經(jīng)驗整理出來岛琼,一方面底循,以自己輸出的方式,加強(qiáng)自己對需求文檔的理解槐瑞,一方面與需要的人分享交流熙涤。
寫需求文檔,就像拍照一樣困檩,需要找好角度祠挫。目前大部分的PRD都是從戰(zhàn)略和戰(zhàn)術(shù)的角度去分析。
戰(zhàn)略悼沿,是我們?yōu)槭裁匆鲞@個需求等舔,我們滿足的痛點(diǎn)是什么。他的市場規(guī)模有多大糟趾。戰(zhàn)略決定了我們到底做不做這個需求慌植。他的面向?qū)ο笫枪芾砣藛T和高層。
戰(zhàn)術(shù)拉讯,則是怎么實(shí)現(xiàn)需求涤浇。我們到底怎么做,做什么魔慷,才能實(shí)現(xiàn)這個需求只锭,重點(diǎn)在執(zhí)行。面向?qū)ο笫窃O(shè)計師院尔、前端蜻展、后端喉誊、測試以及運(yùn)維等。作為新人纵顾,我先從戰(zhàn)術(shù)的角度伍茄,講幾點(diǎn)方法論。從結(jié)構(gòu)上到細(xì)節(jié)的分析一下需求文檔要怎么寫施逾。
1敷矫、確定需求受眾
寫文檔,就像做產(chǎn)品需求分析一樣汉额,我們一樣要先了解我們的目標(biāo)用戶曹仗,他們在意的是什么,就給他們什么蠕搜。需求的受眾主要是技術(shù)相關(guān)人員怎茫,包括UI設(shè)計、前端妓灌、后端開發(fā)轨蛤、測試、運(yùn)營維護(hù)人員等虫埂。
-設(shè)計祥山,指UI與UE設(shè)計,包括視覺設(shè)計與交互設(shè)計掉伏。設(shè)計需要知道業(yè)務(wù)流程枪蘑,及前端的基本規(guī)則,便于將每個頁面更user friendly的可視化岖免。
-前端岳颇,指使用CSS和Html等語言實(shí)現(xiàn)頁面的展示,靜態(tài)的頁面颅湘。設(shè)計需要知道業(yè)務(wù)流程话侧、包括在所有的情況下的界面展示,及交互效果闯参,以便他們實(shí)現(xiàn)靜態(tài)頁面瞻鹏。
-后端,指實(shí)現(xiàn)前端數(shù)據(jù)的動態(tài)展現(xiàn)鹿寨,進(jìn)行業(yè)務(wù)邏輯的判斷新博。后端需要知道數(shù)據(jù)從哪里獲取,從接口調(diào)取還是同步到本地再進(jìn)行展示脚草。數(shù)據(jù)的出參入?yún)⒑涨模瑯I(yè)務(wù)邏輯的判斷。
-后臺,指數(shù)據(jù)庫的管理以及接口的封裝等埂淮。需要知道數(shù)據(jù)庫的字段需求姑隅,便于數(shù)據(jù)字段的增減以及封裝接口。
-運(yùn)維倔撞,包括數(shù)據(jù)的埋點(diǎn)讲仰,為后續(xù)改善,獲取數(shù)據(jù)支持痪蝇。
不同的公司對于技術(shù)人員的劃分以及定義可能也是不同的鄙陡,此處僅僅是根據(jù)目前我工作中的總結(jié)得出的受眾劃分。
2躏啰、明確業(yè)務(wù)邏輯
按照工作的分工柔吼,可以判斷不同職位的人關(guān)注的重點(diǎn)不同。但是有一點(diǎn)相同的是丙唧,業(yè)務(wù)的整體流程和結(jié)構(gòu)是所有人都必須了解的。因此觅玻,在需求的開頭想际,一定要寫清楚整體的結(jié)構(gòu)以及流程。產(chǎn)品的結(jié)構(gòu)可以使用mind manager等工具溪厘,制作思維導(dǎo)圖完成胡本。業(yè)務(wù)的流程主要是從業(yè)務(wù)開始到結(jié)束的步驟概述。對于多個角色或者多個系統(tǒng)的畸悬,可以使用泳道圖[1]侧甫,對于單個角色可以直接使用流程圖,活動圖[2]蹋宦。同時可以配合使用狀態(tài)圖[3]和順序圖[4]披粟。這里強(qiáng)調(diào)一點(diǎn)很多新人容易犯的錯誤,對于這么多工具常常不知道使用哪個比較好冷冗,其實(shí)只要明確我們的目的是讓所有涉及項目的成員了解業(yè)務(wù)邏輯守屉,而所有類型的圖表主要是為了說明產(chǎn)品邏輯和業(yè)務(wù)流程,只要說明清楚蒿辙,形式不是重點(diǎn)拇泛。
3、用例描述
用例描述是從人和系統(tǒng)的旁觀者來描思灌。此處詳述一下用例描述俺叭。要具體的對每一個功能,每一步流程具體的說明使用場景泰偿、前后置條件熄守、界面數(shù)據(jù)規(guī)則、狀態(tài)邏輯、交互規(guī)則柠横。使用場景窃款、前后置條件和數(shù)據(jù)規(guī)則、交互規(guī)則是一定需要的牍氛,對于簡單的頁面晨继,可能不會有狀態(tài)變化。
1)使用場景是幫助所有人理解此頁面到底在什么地方出現(xiàn)搬俊,用戶進(jìn)入此頁面的目的紊扬,我們設(shè)計此頁面的目的,我們是否希望用戶長時間留在此頁面唉擂。
2)前置規(guī)則主要是針對同一個頁面餐屎,可能會有不同的渠道進(jìn)入,不同渠道進(jìn)入可能可以展現(xiàn)的是不同的玩祟。需要明確進(jìn)入頁面的渠道腹缩、用戶的身份權(quán)限。后置規(guī)則是在正常流程下空扎,執(zhí)行完此流程后的結(jié)果藏鹊。比如,購買流程完成转锈,結(jié)果是產(chǎn)品購買成功提示盘寡,訂單生成。
3)界面數(shù)據(jù)規(guī)則主要是指數(shù)據(jù)的顯示規(guī)則撮慨。a.不同角色竿痰、不同狀態(tài)下,顯示規(guī)則不同砌溺。比如登錄與未登錄情況影涉。需要明確各個角色的權(quán)限下數(shù)據(jù)的顯示規(guī)則。b.默認(rèn)數(shù)據(jù)规伐。同一個要素常潮,可能有多個數(shù)據(jù)對應(yīng)時,要寫明默認(rèn)狀態(tài)下楷力,數(shù)據(jù)的顯示規(guī)則喊式。比如默認(rèn)價格的顯示。還有可能網(wǎng)絡(luò)狀況不好萧朝,向后臺請求不到數(shù)據(jù)岔留,也要將默認(rèn)圖片打包進(jìn)入安裝包,顯示默認(rèn)框架與默認(rèn)圖片检柬。c.排序機(jī)制献联。對于列表竖配、排行版等需要排序的數(shù)據(jù),確定排序規(guī)則里逆。d.刷新機(jī)制进胯。下拉,消息刷新原押,刷新多少胁镐。刷新不出來有什么提示。當(dāng)狀態(tài)發(fā)生了改變诸衔,數(shù)據(jù)顯示也自動改變盯漂。此處的需求主要給前端展示以及后端數(shù)據(jù)提供。需要考慮數(shù)據(jù)落地本地笨农,還是調(diào)用接口的實(shí)現(xiàn)方式就缆。確定需要的字段,后臺數(shù)據(jù)庫需要增加字段谒亦,封裝接口竭宰,前臺調(diào)用接口在對應(yīng)位置顯示。需要確定前臺與后臺或者其他系統(tǒng)之間的數(shù)據(jù)傳輸份招,尤其當(dāng)設(shè)計到多可系統(tǒng)時切揭,此部分會較復(fù)雜。
4)狀態(tài)邏輯是指的一個元素或者控件脾还,在不同的情況下,可能會有不同的狀態(tài)入愧。元素是指概念上的鄙漏,比如訂單狀態(tài)」字耄控件是指物理上怔蚌,通常是行動鍵的交互,比如按鈕旁赊,選擇框等桦踊。從元素的角度來說,需要確定有幾種狀態(tài)终畅,對具體的狀態(tài)進(jìn)行定義籍胯,說明是什么動作觸發(fā)了狀態(tài)的變化,變化成什么樣离福。比如訂單狀態(tài)杖狼,已支付、待支付妖爷、交易失效等蝶涩。待支付的訂單,點(diǎn)擊取消,狀態(tài)就變成交易失效绿聘。從控件的角度來說嗽上,需要確定該控件所有可操作的方式,每種操作對應(yīng)的結(jié)果熄攘,包括提示等兽愤。此處的需求主要給設(shè)計、前端鲜屏、后端以及后臺查看烹看。設(shè)計會根據(jù)不同狀態(tài)設(shè)計出多個狀態(tài)下的頁面,前端則實(shí)現(xiàn)所有的靜態(tài)頁面洛史,后端與后臺配合實(shí)現(xiàn)數(shù)據(jù)的傳輸惯殊,界面數(shù)據(jù)的展示,業(yè)務(wù)邏輯的判斷等也殖。
5)交互規(guī)則是指頁面與用戶之間的互動反映土思,是UI設(shè)計和前端展示關(guān)注的重點(diǎn)。交互設(shè)計針對移動端有手勢的動作忆嗜,以及動作按鈕等產(chǎn)生的交互效果己儒。動作手勢包括在左右劃通常可以返回主界面;比如頂部有切換Tab捆毫,是采用左右劃切換還是點(diǎn)擊切換;還比如有些應(yīng)用雙擊可放大頁面闪湾,兩個手指按住并同時向中間滑動,表示縮小頁面绩卤,比如長按可能會彈出復(fù)制及粘貼的選擇框途样。向下拉自動刷新。針對PC端主要是動作按鈕濒憋,鼠標(biāo)浮動產(chǎn)生的交互效果何暇。比如鏈接、按鈕的具體交互規(guī)則及異常處理凛驮。另外裆站,整個場景由于網(wǎng)絡(luò)問題、系統(tǒng)問題導(dǎo)致的異常也需要說明黔夭。
4宏胯、其他非功能性需求
1)緩存機(jī)制:每一步操作、每一個頁面切換之后本姥,都要想得到的數(shù)據(jù)需要緩存嗎胳嘲?緩存到哪里?清理緩存的實(shí)際是什么扣草?
2)網(wǎng)絡(luò)判斷:一般涉及到下載或其他很耗費(fèi)流量的操作時了牛,會進(jìn)行2/3G網(wǎng)絡(luò)還是wifi網(wǎng)絡(luò)的判斷颜屠,當(dāng)判斷出是非wifi狀態(tài)時,會進(jìn)行提醒鹰祸。其他需要向后臺請求數(shù)據(jù)時甫窟,只進(jìn)行簡單的網(wǎng)絡(luò)狀況是否良好的判斷,當(dāng)網(wǎng)絡(luò)狀況不良時進(jìn)行提示蛙婴。
3)中斷機(jī)制:除退出登錄外粗井,要考慮出現(xiàn)什么情況會導(dǎo)致用戶中斷操作。中斷操作會有什么影響街图,比如是否要保存操作進(jìn)度等等浇衬。常見的情況如:點(diǎn)擊home鍵退到后臺運(yùn)行,按返回鍵餐济,頁面上有暫停使用的功能如倒計時音頻播放過程中的暫停按鈕耘擂。
4)運(yùn)維需求:數(shù)據(jù)埋點(diǎn),確定埋點(diǎn)的目標(biāo)絮姆,再確定埋點(diǎn)的位置醉冤。為后續(xù)數(shù)據(jù)獲取與分析奠定基礎(chǔ)。
5)適配需求:相同后臺篙悯,不同終端的展示蚁阳,屏幕適配效果如何。確定app要適配的屏幕大小鸽照,iOS支持到什么版本螺捐,安卓要適配的分辨率是多少。然后要形成自己的直覺矮燎,適配的最小分辨率的屏幕最多能放多少按鈕定血,現(xiàn)在的設(shè)計方案放在要適配的最小屏幕上,會不會太擠漏峰。當(dāng)某一行字?jǐn)?shù)太多時糠悼,一定要想這么多字放不放的下届榄,放在一起好不好看浅乔。
5、同類控件的統(tǒng)一需求
若一個大的項目中铝条,有一些相同的控件多次出現(xiàn)靖苇,比如分享、點(diǎn)贊班缰、評論等功能贤壁,可以統(tǒng)一一個標(biāo)準(zhǔn),將這類控件需求標(biāo)準(zhǔn)化埠忘,減少由于信息不對稱的重復(fù)性工作以及不一致性脾拆。
6馒索、需求文檔的維護(hù)
寫需求文檔,很重要的一點(diǎn)是自己對于產(chǎn)品的邏輯有一個宏觀方向的把控名船,微觀細(xì)節(jié)的斟酌绰上。作為一個新人,很多時候都是邊做邊學(xué)渠驼,需求文檔看似好上手蜈块,有模板就可以照葫蘆畫瓢,可是細(xì)細(xì)研究就會發(fā)現(xiàn)無論從業(yè)務(wù)需求的角度迷扇,用戶體驗的角度百揭,還是技術(shù)人員的角度,此文檔都是可以深挖的蜓席。稍有疏忽器一,就會在后續(xù)評估以及與技術(shù)人員溝通的過程中產(chǎn)生新的模糊點(diǎn),需要厘清邏輯瓮床,對文檔縫縫補(bǔ)補(bǔ)盹舞。不得不承認(rèn),在整個項目的開始隘庄,即時文檔已經(jīng)達(dá)到團(tuán)隊成員的共識踢步,在實(shí)施的階段,也一樣會發(fā)現(xiàn)各種問題丑掺,進(jìn)行文檔的調(diào)整获印。所以對于需求文檔后期的維護(hù)也是非常重要,版本變更街州,需求變更都需要及時的更新兼丰。可能只有在產(chǎn)品完成的時候,需求文檔才算是定稿唆缴。
聲明:本文并非完全原創(chuàng)鳍征,以上總結(jié)是參考前人的分享以及自己在工作中總結(jié)的經(jīng)驗得出,所有引用的參考資料如下列出面徽,不涉及版權(quán)問題艳丛。歡迎各位指正糾錯。
參考資料:
http://www.woshipm.com/pmd/195719.html
http://www.woshipm.com/pmd/213894.html
《啟示錄》趟紊,[美] Marty Cagan
注:
[1]泳道圖在縱向上是部門職能氮双,橫向是崗位(有時候橫向上不區(qū)分崗位)。繪圖元素與傳統(tǒng)流程圖類似霎匈,但在業(yè)務(wù)流程主體上戴差,通過泳道(縱向條)區(qū)分出執(zhí)行主體,即部門和崗位來铛嘱。
[2]活動圖(activity diagram暖释,動態(tài)圖)是闡明了業(yè)務(wù)用例實(shí)現(xiàn)的工作流程袭厂。業(yè)務(wù)工作流程說明了業(yè)務(wù)為向所服務(wù)的業(yè)務(wù)主角提供其所需的價值而必須完成的工作。業(yè)務(wù)用例由一系列活動組成球匕,它們共同為業(yè)務(wù)主角生成某些工件嵌器。工作流程通常包括一個基本工作流程和一個或多個備選工作流程。工作流程的結(jié)構(gòu)使用活動圖來進(jìn)行說明谐丢。
[3]狀態(tài)圖(Statechart Diagram)是描述一個實(shí)體基于事件反應(yīng)的動態(tài)行為爽航,顯示了該實(shí)體如何根據(jù)當(dāng)前所處的狀態(tài)對不同的事件做出反應(yīng)的。
[4]順序圖是將交互關(guān)系表示為一個二維圖乾忱〖フ洌縱向是時間軸,時間沿豎線向下延伸窄瘟。橫向軸代表了在協(xié)作中各獨(dú)立對象的類元角色练对。類元角色用生命線表示隘擎。當(dāng)對象存在時试幽,角色用一條虛線表示究西,當(dāng)對象的過程處于激活狀態(tài)時,生命線是一個雙道線