產品學院 第12節: 概要設計與研發流程

前言

首先介紹一下產品項目的大致流程(以網站產品為例)。

產品學院 第12節:  概要設計與研發流程

圖1 項目開發流程圖

概要設計

在PRD完成後,產品經理就要與研發一起確定產品的細節,進行產品的概要設計。概要設計由研發經理及主要研發人員完成,PM的主要任務是檢查與需求對應功能是否都被包含在概要設計內。

1.概要設計階段

在這個階段,設計者會大致考慮各模塊的內部實現,主要集中於劃分模塊、分配任務、定義調用關係。

模塊間的接口與傳參在這個階段要定得十分細緻明確,應編寫嚴謹的數據字典,避免後續設計產生不解或誤解。

在概要設計階段,應最大限度地提取可以重用的模塊,建立合理的結構體系,節省後續環節的工作量。

概要設計文檔最重要的部分是分層數據流圖、結構圖、數據字典以及相應的文字説明等。

2.參加概要設計評審

當產品需求提到技術層面時,一般技術人員會對需求進行概要設計、評審、詳細設計及評審、開發實施等環節。當然產品經理一般不會在技術層面介入太深,但為了儘量使需求不偏離目標,就要參加技術層面的概要設計評審。參加概要設計評審可以瞭解需求在啟動技術設計時,涉及到的相關系統、干係人、內外部團隊等,大致瞭解技術實施層面的困難、瓶頸和資源需求,評估項目時間排期及執行中的困難,以減少用户類型、路徑等環節的偏差。

研發的流程

在這一階段PM的主要工作是跟進研發進度,保證項目的正常進行。

其有以下四個方面:

產品學院 第12節:  概要設計與研發流程

1.主要流程

產品學院 第12節:  概要設計與研發流程

(1)編碼:編碼之前,程序員已經進行了概要設計、數據庫設計,並進行內部討論和評審。程序員對文檔有疑問或不理解,需與PM行溝通,瞭解其真實涵義,不得以任何理由私自更改已確定的PRD、GUI方案。確有功能需做調整,程序員需與PM需求方共同協商完成。

(2)最初測試:在開發小組內部進行,測試的方法也較多,黑盒、白盒、壓力、應力等。此階段應完成80%以上的需求開發,測試以PRD為準。測試完成後,收集反饋,修復BUG,優化流程。

(3)二次測試:有選擇地請一些最終用户實際使用,將發現的問題反饋,開發者對系統進行最後的修改,之後準備發佈最終產品。

(4)產品發佈:β測試後,PM驗產品。如產品與策劃方案相差較大,有權不接受產品,責任由開發部門負責。將產品發佈日設為里程碑,以此考核整個項目的運作效率。

2.研發流程中的管理方法

關於管理的方法,PM需要掌握的有很多,比如甘特圖、basecamp團隊協作等,這裏主要介紹敏捷開發,其他部分希望大家自行學習掌握。

敏捷開發是以用户的需求進化為核心,採用迭代、循序漸進的方法進行軟件開發。在敏捷開發中,軟件項目在構建初期被切分成多個子項目,各個子項目的成果都經過測試,具備可視、可集成和可運行的特徵。

敏捷開發的具體流程可歸納如下:

(1)梳理產品需求(Product Backlog)

定義 Product Backlog 時,需要遵循 INVEST 原則,即:

Independent(獨立的)、Negotiable(便於溝通的)、Valuable(有價值的)、Estimable(可預估的)、Small(短小)、Testable(可測試的)。同時還需要定義需求的優先級,方便後期對需求的刪減。

(2)制定迭代計劃

在迭代開始之前,需要召開迭代計劃會制定這一個迭代的計劃,把 Product Backlog 按照優先級排序,瞭解具體每一個需求,團隊成員根據需求的複雜程度評估每個任務的工作量,確定迭代任務,在敏捷中稱之為 Sprint Backlog。

產品學院 第12節:  概要設計與研發流程

圖4 迭代任務白板示例

(3)迭代執行

在迭代進行期間,由大家認領上圖白板上的 Backlog,每天早上要開一個每日站會,時間在 10 分鐘以內,由大家依次報告3個問題:我昨天做了什麼、今天計劃要做什麼、遇到了哪些問題。

(4)迭代總結

迭代的最後一天要做:成果展示和團隊的內部總結。