時序圖(Sequence Diagram),又名序列圖、循序圖,是一種UML交互圖。它通過描述對象之間發送消息的時間順序顯示多個對象之間的動態協作。——更詳細的說明,百度一下即可。
服務端同學在設計系統邏輯的時候,常常使用這張圖進行技術方案討論。
大多數產品經理經常接觸流程圖,很少接觸時序圖。在我看來,流程圖屬於宏觀的描述一個需求的處理邏輯(側重於需求表述)。而時序圖則描述的是一個請求的處理流程(側重於系統研發方案)。在很多公司裡,產品經理給出流程圖以後,就由服務端同學製作時序圖,用於研發部門研發方案討論時使用(大多數創業公司,連討論這步也都省了)。
絕大多數產品經理只關注需求文檔中的流程圖是否描述準確,只關注需求最終實現結果。對於研發團隊給出的「系統研發方案」 並不關心。當需求方提出迭代功能升級需求時,產品經理根本無法評估需求會影響那些系統流程?需求實施複雜度如何?只能將需求直接轉達給研發團隊。研發同學一看需求,腦袋就炸裂,好多系統流程要修改,工作量巨大。於是就抱怨產品經理成天需求變來變去,累死研發人員。產品經理就只會動嘴巴皮子,一味地討好需求方。從而激化了產品經理和研發團隊之間的矛盾。
那麼時序圖到底是什麼?對撰寫需求文檔有什麼好處?
產品經理可以將時序圖理解為:描述一個操作請求,如何在系統不同功能模塊之間進行處理的的流程說明。通過在需求文檔中製作時序圖,有助於產品經理自我檢驗設計的產品架構是否合理。同時,十分有助於服務端同學理解產品經理的想法,一起確認系統流程。當需求方疊加需求的時候,產品經理能夠第一時間了解,實現需求需要修改哪些系統流程。並可以根據現有的系統流程,引導需求方合理的調整需求,最終降低研發成本。
以下就是一張系統中支付操作時的時序圖。
支付流程的時序圖
從產品經理角度理解時序圖符號——產品經理不需要像研發人員那樣清楚理解每個圖形的準確含義
1、在上圖中「下方跟著一條線的矩形」我們可以理解為是一個功能模塊,一個前端頁面或者一個接口。
2、每個功能模塊線上的豎形矩形,可以理解為這個環節運行的時間。
3、有方向的連線,可以理解為從某個模塊提交給另一個模塊的操作。線中的文字描述具體操作。