PM硬技能篇:從底層看需求分析
大家都知道,有一個Idea之后,一般就要進行需求分析和拆解來落地,每個公司每個人可能都會有不同的拆解方法論,本文主要從底層來系統跟大家聊下為什么要做,如何做需求分析。
先統一下大家對詞匯的認知,對于需求分析,有很多不同叫法:需求分析、需求分解、需求拆解、User Case分解、User Story分解等等,本質說的都是一個事,就是對需求進行進一步詳細分析,來確保整個團隊正確理解。
本文的思路是:
- 需求分析的本質是什么?為什么要做需求分析?(Why)
- 目前常見的需求分析的方法論有哪些?(How)
- 如何更系統高效的分析需求?(How)
- 給大家一些啟發來串聯本文的知識。
一、為什么要做需求分析?
一個產品從0到1,一般的必經流程是:
- 產品戰略(到底要解決什么問題);
- 需求分析,輸出Roadmap、需求文檔PRD或User Story等;
- 設計團隊:硬件、軟件的UX和UI設計;
- 開發、QA、TA、運維團隊:開發,測試,上線;
- 迭代。
我們今天要探討的是上面的#2,那么我們來思考下,很多人可能立刻就想到思維導圖工具、麥肯斯MECE分解法則等,我想跟大家一起思考的是Why,就是分析需求的目的和原因,下面四點逐層深入:
- 理清具體有哪些需求和它們的優先級(考慮的是一個點:需求);
- 讓團隊能具體執行下去,團隊包含設計、開發、QA、TA、運維等(考慮到的是一個線的局部:整個團隊);
- 團隊一起給客戶高效地、持續地交付有價值的服務(考慮到的是一個完整的線:考慮到了外部的客戶);
- 團隊一起實現自我價值,獲得成就感和物質獎勵,內心充實(思考回歸到人和自己)。
二、目前常見的需求分析的方法論有哪些?
國內開始出現PM這個職位還要感謝喬布斯、BAT的引領,大概是在2010年左右,近3到5年是PM從業的高潮期,所以國內PM的發展歷史大概也不到10年,加上每個公司的情況不同職責就不同。
所以也一直沒有特別萬能的套路給PM們使用,只有一些high-level的Guideline,比如:
- 以用戶為核心;
- 角色場景任務三要素。
基于此,常見的幾類需求分析的框架輸出有:
- 基于界面:每個界面是一個獨立的case,然后基于此再拓展出頁面上的button、邏輯等;比如:App分析,下面的四五個Tab就是四五個主case。
- 基于功能模塊:每個產品功能模塊就是一個主case。
- 基于用戶流程:用戶使用一個功能的流程,比如:微信,簡單的核心主case可分解為注冊登錄、加好友、跟好友聊天等等。
下圖就是網上看到的一個1和2的混合版:
以上三個分解方法理論來說,是不斷有改進的,他們的好處是:模塊清晰了、case遍歷窮舉了、也有條理了。但是他們都有一個明顯的缺陷:各個分支case是孤立的,你看不到全局這個大系統,看不到各個分支之間的相互關系。
三、如何更系統高效的分析需求?
如何解決這個缺陷呢?
此時要引入敏捷理念下的一個方法:User Story Mapping(用戶故事地圖)
這個地圖的層級也有很多不同的形式,我個人經過實踐輸出了一個感覺比較好落地和理解的形式,舉一個實際的例子Task,也就是大家在用的to-do任務管理工具的功能:
從上圖例子中大家可以看到,其思路是:
- 先列出所有跟這個服務相關的用戶角色(Persona),如果是從0到1的產品強烈建議列出自己公司的不同團隊、合作伙伴、客戶的不同角色等,要全面,因為漏掉一個角色可能會導致你的業務跑不通或者不順暢。
- 再列出你這個需求的目標,讓你思考過程有個原則,不至于YY到跑偏。
- General Activity,我解讀為High level的端到端任務流程。
- Epic:就是模塊化需求。
- User Story:就是每一個子case。
另外,值得一提的是這個方法可以跟“服務設計”以及騰訊內部據說不提“產品”只提“服務”是完美匹配的,這也就再次驗證了此方法的科學性。
這樣做的好處是:
- 你看到并看清了整個系統;
- 利用Persona連接了各個孤立的分支;
- 優先級通過任務流程更容易看清晰,更容易找出MVP;
- 不同意遺漏重要的User Case。
四、給大家一些啟發來串聯本文的知識
首先我想讓大家思考2個問題:
1. 需求的詳細分析分解一定要PM來承擔嗎?
之前看到了一篇關于硅谷和中國的PM與工程師之間的差異的文章,本人剛好在兩類公司都工作過,我對那篇文章說的有深刻體會:
硅谷有工程師文化,工程師懂技術也懂產品,PM懂產品也懂技術,目前我們公司當提出一個需求的時候,PM會思考需求并且會考慮技術實現,然后你要自己去Drive不同開發團隊的人來組隊來實現你的需求,如果你不懂技術基本就無法完成工作(PM和開發配合很順暢)。
而國內的PM是承包了所有產品需求的部分,不怎么考慮開發的實現,開發只考慮實現不去深入理解或思考需求,這就導致了PM越來越不懂技術,開發越來越不關系需求的價值,也就導致了雙方經常相愛相殺(配合不太順暢)。
2. 是否要按照開發喜歡或者某個固定的模式去拆分呢?
啟發:敏捷理念有一個3C原則(Card一句話的卡片式需求、Communications密切雙向溝通、Confirmation確認達成共識),這個我覺得特別適合PM與Team之間的合作分工。
簡單概括來說,可以講目前是同步串聯模式(PM交付需求給設計,設計畫UX和UI給開發和QA,開發和QA實現給運維),完全可以革新轉換為異步并行模式(PM、開發、QA、TA、Ops打破各自邊界,前期一起來介入需求的分析,避免了后期反復的溝通,也提升了團隊對目標的一致性認可,自然可達到齊心協力的效果)。
除了硅谷的合作模式的思考外,還有倆個新的理念也非常值得學習,它們也驗證了上面說的配合模式是值得學習和探索的。
- 一個是設計界的設計沖刺:強調PM、設計和開發一起集中幾天來快速完成設計定稿,規避反復冗長的溝通確認;
- 一個是敏捷界的持續交付:持續交付的核心是一開始團隊就要思考完整的服務流程,而不是各自思考自己的單點功能,而后期集成測試的時候,發現很多接口都缺失或對接不上。
感謝你讀完此篇,希望對你有所啟發,本人會持續分享此類思考的結果。
本文由 @小麥 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自Unsplash,基于CC0協議
作者分享的很多文章,都干貨滿滿,訂閱率也都挺高的,后續不再發布了么?期待繼續更新
以往是在文檔寫下用戶畫像、背景目的、業務形態到主線業務邏輯,在業務支點向下發展子功能,你的分享用戶故事地圖一下把所有內容很好的打包起來確實方便介紹,也更容易理解和接受,文章很有啟發,感謝分享 ??
敏捷開發中3C原則非常重要 ??
看來是敏捷大神:)
?
兄弟,有建議么?可以說出來交流。