產品經理應該如何描述需求?

2020-12-12 人人都是產品經理

編輯導語:產品經理的日常,往往與需求離不開,其中很關鍵的一步就是描述需求。需求的描述需要一定的技巧,優秀的產品經理不僅可以清晰地描述自己的需求,還能讓他人聽懂並且知道接下來該如何進行。在本篇文章中,作者為我們分享的是規範產品體系中與需求描述技巧相關的內容。

一、開場白

「小美, 咱們到會議室去開個會,討論下這個版本的新需求」

開發、測試、美工濟濟一堂, 產品經理把這個版本的需求概要地「說」了一遍,然後就打開小美設計好的「產品原型」講了起來。

產品原型是個好東西, 非常直觀, 一看就知道到底要做成什麼樣子, 頁面之間的跳轉關係也一目了然。

工程師一邊聽,一邊心裡琢磨著更細節的內容。資料庫表該怎麼設計, 表該怎麼改,怎麼做數據遷移,界面的流程該怎麼跳轉, 後臺需要提供什麼樣的服務…

大家嘰嘰喳喳的討論了一個下午,終於安靜了。

看到大家的理解基本一致了, 經理開始做最後的總結陳述: 「怎麼樣? 還有問題嗎? 沒有問題的話小美按今天討論的結果,把界面修改一下, 大家估算一下自己的工作量,下班之間報到我這裡。」

工程師心想,估算也沒啥用, 反正上線日期都確定了。

就這樣,越來越多更加細節的深層邏輯僅僅進入了工程師的腦海, 而沒有形成文檔,存在嚴重的項目「信息失真」隱患。

二、大背景

IBM Developer 的目的就是將程式設計師集結在一起,形成一個社區,進而挖掘我們的集體創新能力。換言之,我們有機會分享自己的一些訣竅,並學習到產品研發管理類的高效方法論。

IBM社區的工程師Donald Bell分享到:「序列圖非常有效」。

對於研發人員,序列圖能澄清業務在未來系統中如何體現;對於非研發人員(產品經理、架構師、業務人員),序列圖能澄清未來系統中,不同對象間的交互,從而進一步傳達清楚整個系統設計方案。

研發人員一般認為序列圖僅對他們有意義,然而,深入了解過序列圖之後,非研發人員(產品經理、架構師、業務人員)也會發現,序列圖顯示不同的業務對象如何交互,對於交流當前業務如何進行很有用。

除記錄組織的當前事件外,一個業務級的序列圖能被當作一個需求文件使用,為實現一個未來系統傳遞需求。在項目的需求階段,產品經理能通過提供一個更加正式層次的表達,把用例帶入下一層次。

那種情況下,用例常常被細化為一個或者更多的序列圖。

序列圖除了在設計新系統方面的用途外,它們還能用來記錄一個存在系統(稱它為「遺產」)的對象現在如何交互。當把這個系統移交給另一個人或組織時,這個文檔很有用。

三、序列圖

1. 概念

序列圖(Sequence Diagram),亦稱為循序圖,是一種UML行為圖。有的人翻譯為時序圖,實際上是不準確的,sequence這個單詞並無」時間」的意思,只有序列,順序等意思。

根據UML規範中對Sequence Diagram的描述:

A sequence diagram describes an Interaction by focusing on the sequence of Messages that are exchanged, along with their corresponding Occurrence Specifications on the Lifelines.

它描述了消息在生命線上按照約定順序執行一種交互行為。它可以表示用例的行為順序,當執行一個用例行為時,序列圖中的每條消息對應了一個類操作或狀態機中引起轉換的觸發事件。

2. 構成

序列圖是由5種元素構成:對象(Object)、生命線(LifeLine)、激活(Activation)、消息(Message)和「組合片段」。其中前4種是常用且重要的元素,剩餘的一種「組合片段」元素不是很常用,但是比較複雜。

我們先介紹前4種元素,再單獨介紹「組合片段」元素。

1)對象(Object)

對象位於序列圖的頂部,以一個矩形表示,對象的命名方式一般有三種:

  1. 顯示「對象名」 + 「類名」,例如:手機 – 華為手機;
  2. 顯示「類名」,不顯示「對象」,例如:手機;
  3. 顯示「對象名」,不顯示「類名」,例如:華為手機。

2)生命線(LifeLine)

生命線是一條垂直的虛線,每個對象底部中心都有。對象與生命線結合在一起就是對象的生命線,其長度取決於交互的時間。

3)激活(Activation)

激活代表時序圖中在對象時間線上某段時期執行的操作,以一個很窄的矩形表示:

4)消息(Message)

消息是對象和對象之間,在發生「交互」和「協作」時,用於交換信息的媒介。可以根據是否並發,簡單的分為兩類:

  1. 同步消息(Synchronous Message):消息的發送者把控制傳遞給消息的接收者,然後停止活動,等待消息的接收者放棄或者返回控制。用來表示同步的意義。
  2. 異步消息(Asynchronous Message):消息發送者通過消息把信號傳遞給消息的接收者,然後繼續自己的活動,不等待接受者返回消息或者控制。異步消息的接收者和發送者是並發工作的。

5)組合片段

組合片段用來解決交互執行的條件和方式,它允許在序列圖中直接表示邏輯組件,用於通過指定條件或子進程的應用區域,為任何生命線的任何部分定義特殊條件和子進程。組合片段共有13種,名稱及含義如下:

抉擇(Alt):抉擇在任何場合下只發生一個序列。

可以在每個片段中設置一個臨界來指示該片段可以運行的條件。else 的臨界指示其他任何臨界都不為 True 時應運行的片段。如果所有臨界都為 False 並且沒有 else,則不執行任何片段,Alt片段組合可以理解為if..else if…else條件語句。

我們還拿微信支付的時序圖舉例,如果7.3向商家匯款的成功或失敗流程需要在時序圖中體現出來,可以這麼使用Alt片段組合。

引用(InteractionUse):表示引用的意思,某部分交互被定義在另一個圖中。可將一個規模較大的圖劃分為若干個規模較小的圖,方便圖的管理和復用,ref不用要填寫參數。

選項(Option):表示當警戒值為真(符合條件)的情況下進行執行處理的意思,opt需要填寫參數。

循環(Loop):表示循環執行的意思,當條件為真的時候執行循環。也可以寫成loop(n)來表示循環n次,與java或者C#等中的for循環比較相似,loop需填寫參數。

中斷(Break):表示中斷處理,跳轉的意思,類似java代碼中break語句,break需填寫參數。

3. 竅門

1)工具

工欲善其事,必先利其器。推薦使用微軟旗下的 Visio。

2)步驟

劃清邊界,識別交互語境:所謂劃清邊界是是指要確定好繪製序列圖的範圍。在微信支付例子中省略列商家打開微信、輸入收款金額等交互消息,這些不是我們需要體現的,我們主要體現的是用戶的掃碼支付流程。

所謂識別交互語境就是要知道自己繪製時序圖的前提和背景,在微信支付的例子中用戶登錄了微信、開通了支付功能是前提,背景是用戶需要掃描付款買東西。

梳理時序圖中的角色和對象都有哪些:微信支付的例子中角色只有一個,即用戶。對象有華為手機:手機、微信、商家。

對象之間有哪些交互消息:對象之間交互的消息詳見以上序列圖。

3)技巧

從初始消息開始畫,依次畫出隨後消息,並給每個消息分配序號,方便理解;

角色和對象用名詞,消息用動詞;

角色放在序列圖的開始位置,對象重要程度或使用頻率從左到右排列。這就要根據時間的流程考慮了,是一個比較主觀的事情;

控制焦點兩端要以消息元素封頂,控制焦點不要超過消息元素。

參考資料:

  • https://developer.ibm.com/zh/
  • https://baike.baidu.com/item/%E5%BA%8F%E5%88%97%E5%9B%BE/1943112?fr=aladdin
  • https://book.51cto.com/art/201003/190167.htm

四、結束語

產品經理的前進道路,不應該是一場孤獨求索的旅行 。沿途那些美好的風景,有趣的人文,我願意沉澱下來,分享與同行的你,或者是在路上的他。

 

作者:木小深;公眾號:木小深

本文由@木小深 原創發布於人人都是產品經理。未經許可,禁止轉載。

題圖來自Unsplash,基於CC0協議

相關焦點

  • 產品經理如何處理定製需求?
    編輯導讀:產品經理每天需要面對各種各樣的需求,其中包括來自客戶的定製需求。產品經理應該如何處理定製需求呢?本文將從四個方面進行分析,希望對你有幫助。因為一開始是把多種對接方式作為可復用的產品邏輯的,而且有常規對接方式以外的要求時,需要產品經理重新溝通、規劃。因為這裡的定製需求是為了滿足合作方,所以也歸類為2B。2. 定製需求狹義上的定義定製需求≈外包產品。
  • 業務部門應該如何向產品經理提需求?
    常常會聽見業務部門抱怨,自己提的需求沒有被產品經理重視,而後者也常常抱怨業務部門。本文作者將從業務部門的角度出發,談談如何向產品經理提需求,以此來促進產品更好地發展。
  • 運營人如何解析需求,準確反饋給產品經理?
    運營人工作中的一部分就是將需求反饋給產品經理,並確保需求能夠解決當前問題。那麼如何讓產品經理正確理解我們要的需求是什麼樣的、達到什麼效果呢?筆者有兩個思路——準確理解需求&準確表達需求。由於目前自己主要從事供給運營方面的工作,主要是配合地麵團隊,協助商戶,共同賦能我們的核心業務。
  • 需求是一棵樹,產品經理如何「種」? - 人人都是產品經理
    需求是一切創造活動的源泉,主體是人的心理需要。如何把需求比作一棵大樹的話,那麼樹根是用戶需要、樹幹是用戶需求、樹枝是市場需求、果實則是產品需求。需求是一個老話題,卻又是一個新話題。之所以說是老話題,因為在網際網路將產品經理這個崗位推向頂峰之前,需求在市場導向型產品經理或者叫做營銷型產品經理領域中就廣泛的提及應用。而說是一個新話題,因為從網際網路產品經理開始關於需求的討論和普及話題如滔滔江水,綿延不絕。那麼到底我們討論的「需求」是什麼呢?
  • 需求分析師和產品經理有什麼區別?
    需求分析大量混跡於五百強企業,比如銀行、航空公司、快遞公司、保險公司等。2. 產品經理產品經理就是在網際網路中專門負責產品管理的人員,產品經理主要負責用戶調查,行業數據分析,再根據用戶的需求,確定開發何種產品,選擇哪種商業模式等,並推動相應產品的開發組織。
  • 在日常工作當中,產品經理應該如何給工程師講需求?
    產品經理在日常的工作當中,除了要撰寫很多的需求文檔以外,產品經理還有一項很重要的工作就是給開發工程師講需求。產品經理給工程師講需求的過程,其實就是產品經理將自己的想法和一些產品設計的方案,通過工程師能夠理解的語言表達給他們,所以產品經理給開發工程師講解需求的過程當中,就對產品經理的語言表達能力和換位思考能力提出了很高的要求。
  • 需求文檔撰寫與合格交付原則 - 人人都是產品經理
    目前也已經成功投入使用,它不僅僅能告訴你如何寫一份需求文檔,也能告訴你文檔在進入設計、開發流程前你需要做哪些準備工作,衷心的希望這篇原則能給讀者們以啟迪!一、文檔交付流程文檔從最開始的需求分析到真正以文本格式投入使用往往需要經歷以下幾個階段——即:需求分析→原型設計→文檔撰寫→內部評審→外部評審。
  • 產品經理必備之如何進行需求分析?
    如今產品經理逐漸發展出諸如數據產品經理、電商產品經理、金融產品經理、C端產品經理等細分類型,雖然不同細分類型在某些素質和能力方面有差異,但是需求分析一直都是所有產品經理的核心能力之一不管是使用一對一還是一對多的形式,產品經理都要注意做相應的記錄,記錄每一個需求,以方便為後面的需求分析提供依據。使用焦點小組進行用戶需求調研時產品經理要注意減少過多的主觀幹預,讓用戶自然、真實的進行表述和吐露真實想法,從而能夠有效的獲得需求。
  • 產品經理如何合理評估開發的工作量?
    產品經理是否該確認開發人員提供的工作量?又該如何去評估呢?眾所周知,完美的團隊構成裡有產品經理,也有項目經理,產品經理和項目經理可以各司其職,開發Leader具備很強的產品意識,整個團隊很凝聚。但現實往往是,產品經理需要兼做項目經理的工作,開發Leader也只關注開發團隊的工作內容和產品質量。
  • 產品經理|需求文檔怎麼寫?(1.0)
    今天內容如題,來分享下產品經理需要產出的需求文檔(PRD)該怎麼寫呢?(1.0版本說明是第一版,意思就是內容正確性我不能保證,因為我也是初學者,等之後會更新2.0甚至3.0……)首先先說說什麼是需求文檔需求文檔——完整描述產品需求,向研發部門明確產品的功能和性能。
  • 頂尖技術團隊是如何定義「產品經理」的?
    編者按:產品經理這個職位最近很火。但產品經理是幹什麼的?需要承擔哪些責任?要具備什麼樣的技能?對於這些問題似乎缺乏統一的意見。為此,Producthabits研究了從Uber到Amazon等51家頂級公司對產品經理的崗位描述,總結了9條洞察,可供想找PM和想當PM的人參考。
  • 寫給產品新人:如何直觀認識產品經理職位?
    不論是寫方案、寫需求還是做交互,產品經理的腦子裡,總是在構思自己產品的業務場景是如何運轉的。在許多實際生產的場景中,用戶往往面臨的是傳統模式中複雜、成本高、不能有效運轉的問題,那麼能否夠通過一款產品來構建一個快捷、有效的流程,幫助用戶更好地完成生產呢?就像一些人使用kindle進行閱讀,使用在線系統代替人工審批一樣。
  • 項目中遇到問題,產品經理如何解決?
    在評審前,產品經理應該把PRD提前把PRD發出來,讓開發和測試有時間對PRD進行研讀和分析,這樣在評審時,就能將一些重要問題提前暴露出來。在項目經理組織的評審會議完成後,產品經理應該找到對應模塊的開發、測試人員,牽頭組織一次小型會議,向開發、測試更詳細地講解PRD上的功能以及業務邏輯。
  • PRD——產品需求文檔應該怎麼寫?
    PRD是產品經理在工作中最常寫到的文檔,那到底該怎麼寫呢?產品需求文檔是不是可以有一個模板呢?一個好的需求文檔的模板應該是什麼樣的呢?
  • 來聊聊職業產品經理的如何正確「翻譯用戶需求」?
    我們有一句話,產品經理要保護技術,不能讓技術直面需求的「迫害」,所以需要產品經理在其中作為一個「過濾器」。如果說獲取用戶需求是產品經理的第一個素質,那麼翻譯需求的能力就是產品經理第二個重要素質。這個素質,包括講故事的能力、抽象能力、邏輯能力和文檔寫作能力。(1)講故事的能力。
  • 一套適合To B產品經理使用的工作方法 | 人人都是產品經理
    在《乾貨提煉:一名To C的產品經理,教你如何做好To B的產品》一文中,我們曾提到,做To C類產品,其核心是:創造需求場景 → 引導用戶 →  建立使用習慣。而做To B類產品,由於產品經理很難創造需求,因此產品經理首先要能適配現有業務,才能再針對業務中的痛點逐步優化。
  • 產品經理如何基於需求迭代產品(下篇3):產品的整體設計之邏輯層和...
    產品的整體設計包括業務層、系統層、邏輯層和交互層等四個層面。上一篇《產品經理如何基於需求迭代產品(下篇2):產品的整體設計之業務層和系統層》講了前兩個,本文主要是講述整體設計中的邏輯層和交互層,以及局部設計。
  • 產品經理與程式設計師之間如何破局?
    華為雲DevCloud資深產品經理受邀分享主題"如何讓團隊在高度共識中完成需求與設計溝通",介紹針對項目需求設計中經常出現的項目團隊需求理解不一致、需求共識不到位,從而導致需求返工、項目延期、團隊成員積極性不高等問題的應對方案。在日常項目管理的需求設計中,相信大家都會遇到許多的為什麼:1.為什麼需求不合乎用戶的想法啊?
  • 不同階段的產品經理面試時,如何做自我介紹?
    為了讓產品經理們少走些彎路,今天來聊一聊產品經理面試時應該如何做自我介紹。那產品經理如何做自我介紹?作為產品經理要把面試過程當做一款產品來設計,面試官就是你的用戶,了解他的需求,滿足他、徵服他。二、站在產品定位層面自我介紹應該強調哪些?在了解用戶需求之後我們來看看按目前你所擁有的資源應該做怎樣的產品定位,也就是說根據你的產品經驗水平應該如何構建你的自我介紹內容。
  • 產品經理如何做產品架構設計
    編輯導語:對於產品經理來說,發展到一定階段後,日常的工作內容往往離不開產品架構設計。這是一個極其細緻的活,需要產品經理有很強的架構能力。那麼,產品經理如何才能摸清產品的底層邏輯、提升對產品的認知,做好產品架構呢?傑夫貝佐斯曾經在一次演講中提到「人們經常問我:未來10年什麼會被改變?