產品研發(fā)過程概述
我們團隊的產品研發(fā)大體分為如下幾個階段:產品立項階段血筑、需求溝通階段绘沉、項目策劃階段和產品迭代階段。產品立項階段豺总,主要是產品經理和市場人員收集用戶需求车伞,對產品進行前期構思和規(guī)劃;需求溝通階段確保團隊中的成員對產品需求達成一致园欣;項目策劃階段明確每個人的職責帖世;產品迭代階段休蟹,是產品具體的實現沸枯,可以是一個或者多個迭代過程,每個階段的詳細工作將會在下文中逐一敘述赂弓。
產品研發(fā)過程基本流程如下圖所示绑榴,每一種類型的工作由一種顏色來表示:
項目管理系統(tǒng)使用的是禪道,禪道的安裝和使用說明請查看官方文檔盈魁;持續(xù)集成使用的是jenkins翔怎,具體使用請查看jenkins的官方文檔,或者網友的簡易教程杨耙。
產品立項
在產品立項前赤套,產品經理做充分的用戶需求調研,和市場營銷的同事交流溝通珊膜,得到初始的用戶需求容握。根據原始用戶需求,產品經理規(guī)劃產品需求功能车柠,繪制原始原型圖并整理需求文檔(需求點較粗)剔氏。
產品經理進行市場可行性分析,同時提交需求文檔和原型圖給技術經理竹祷,技術經理對產品進行技術可行性分析谈跛。技術經理進行技術可行性分析時,可能會涉及到線上服務器部署相關的參數塑陵,這時需要運維人員協(xié)助進行部署可行性的分析感憾。
最后,產品立項階段產出需求文檔令花、需求原型圖吹菱、市場可行性分析報告巍虫、技術可行性分析報告,這些文檔由相關領導評審后鳍刷,進入下一個階段占遥。
需求溝通
產品經理對產品原型圖和需求文檔進行完善,形成包含功能塊的整體需求文檔输瓜,召集項目相關人員進行需求和原型的講解瓦胎。相關人員至少包括UI設計師、開發(fā)人員尤揣、測試人員(包含QA)搔啊,領導和運維人員可以選擇性參加。在需求講解會上北戏,大家可以提出自己疑問负芋,產品經理進行釋疑;大家也可以提出自己的意見建議嗜愈,供產品經理參考旧蛾。需求講解會的主要目的是讓項目成員理解產品需求,并盡可能早的發(fā)現產品需求的問題蠕嫁,并解決問題锨天。
需求講解會之后,產品經理和UI設計師溝通剃毒,根據需要設計一版或兩版的頁面風格(每版設計一到三個頁面)提供給領導審閱或審批病袄。
技術經理根據產品需求和團隊技術軟實力,進行項目的技術選型赘阀,總體設計和數據庫設計等益缠。這些設計相關的工作也可以是團隊的架構師或者資深的開發(fā)工程師,可以一個人或者多人共同完成基公。建議2到3人來做幅慌,既可以節(jié)約設計的時間,也可以給團隊成員更多的學習機會酌媒。
測試人員對需求原型和需求文檔進行詳細閱讀和學習欠痴,發(fā)現產品中的不足和風險,及時反饋給產品經理并溝通秒咨。當然喇辽,UI設計師和開發(fā)設計人員在進行設計時,如果發(fā)現問題雨席,也要及時反饋給產品經理菩咨,這個階段也是需求更改頻繁,需求不斷完善和鞏固的階段。
產品涉及的功能可能會比較多抽米,一次性開發(fā)完成和上線風險會比較大特占。產品經理、技術經理和測試經理需要一起討論商定云茸,把產品功能拆分是目,分階段開發(fā)上線,每一個階段既是一個迭代标捺,每次迭代的周期一般不超過一個月懊纳。大體確定每一個迭代要完成的產品功能,提交測試的時間點亡容,上線的時間點等嗤疯。在功能拆分的時候,如果發(fā)現需要調整的需求闺兢,也要進行適當的修改茂缚。
完成迭代周期的規(guī)劃后五鲫,產品經理在禪道中創(chuàng)建產品視圖卤橄,設定產品計劃蚕脏,禪道中的產品視圖:
項目策劃
此階段主要是開發(fā)人員的技術溝通膳算,測試人員的測試計劃和測試用例溝通,所以產品經理和UI設計師在這個階段的時間里實際上已經是在做第一個迭代周期的工作了收叶,產品經理在禪道中錄入細化需求,UI設計師開始設計頁面。
技術經理組織開發(fā)人員所意,進行項目的技術選型講解和溝通,總體設計師對項目的總體設計進行講解催首,數據庫設計師對數據庫設計進行講解扶踊。講解溝通無異議后,技術經理對每一個大的需求功能塊指定開發(fā)負責人郎任,負責人主要負責功能的模塊設計秧耗、任務分解、功能開發(fā)和提交測試的跟蹤舶治,具體的開發(fā)工作可以是負責人分井,也可以是其他人,根據具體的工作量調配霉猛。
測試經理制定測試方案尺锚,并和相關的測試人員溝通,分配測試人員具體負責哪些功能模塊的測試工作惜浅。
運維人員根據技術人員提的要求和功能需求瘫辩,對服務端部署進行設計,并把發(fā)現的問題反饋給技術經理和產品經理。
完成開發(fā)伐厌、測試的人員分工后承绸,整個項目就進入的具體的迭代開發(fā)周期。
迭代開發(fā)
在迭代開發(fā)周期中挣轨,盡量保證項目成員的工作是并行的军熏,以節(jié)約項目時間,保證項目按時完成上線卷扮。下文將會從迭代周期的時間點:完成任務分解羞迷、提交測試、部署上架画饥,以及每日晨會衔瓮、自動構建、每日構建抖甘、迭代總結會等方面對迭代開發(fā)工作進行講解介紹热鞍。
每日晨會
迭代周期開始后,每日項目組所有成員舉行站立式會議衔彻,溝通這一天的工作情況薇宠,會議要點為:
時間:每日早晨(上班后半個小時),持續(xù)15分鐘以內艰额;之前也嘗試過下班前舉行澄港,但是大家工作忙了一天,狀態(tài)都不是很好柄沮,不利于溝通回梧。
地點和形式:公司會議室或者會客室,站立式會議祖搓。
內容:每人說一下自己在該項目中狱意,昨天已經完成的主要工作,今日準備要做的工作拯欧,以及有沒有待解決的問題详囤。在會上說話時,要盡可能的面向和自己所說的工作相關的成員镐作。
主持人:每日晨會都有一名主持人藏姐,主持人負責記錄每人所說的昨日、今日工作和問題该贾,并在會后羔杨,以郵件的形式把會議內容發(fā)送給項目組所有的成員。主持人由項目組成員輪流擔當靶庙,可以按照姓氏或者座位排序问畅。由項目組成員擔當主持人娃属,可以節(jié)省專門的主持人配備,并且項目組成員對項目也更加熟悉护姆,容易理解和做會議記錄矾端。輪流擔當主持人比一個人一直擔當主持人,不至于對工作感到乏味卵皂,同時可以鍛煉每個人的組織協(xié)調能力秩铆。
需求細化、迭代創(chuàng)建
產品經理(或者SA)把本次迭代的需求錄入到禪道中灯变,每一條需求要具體細化殴玛,如下圖所示:
技術經理創(chuàng)建迭代視圖,關聯(lián)迭代需求添祸,設定團隊成員滚粟,如下圖所示:
任務分解
根據禪道中的具體需求,UI設計分解創(chuàng)建頁面設計任務刃泌,開發(fā)人員按責任人負責分解創(chuàng)建開發(fā)相關的任務凡壤,測試人員負責分解創(chuàng)建測試相關的任務。任務分解完成后耙替,即刻進入任務實施階段亚侠,UI設計師設計頁面,開發(fā)人員進行代碼編寫俗扇,測試人員編寫測試用例硝烂。
其中,UI設計工作是先導開始的铜幽,設計完成一部分頁面就提供給產品經理和測試經理審批確認滞谢,確認無誤后,開發(fā)人員就可以拿來使用了啥酱。所有的頁面設計完成后爹凹,迭代的后續(xù)階段厨诸,UI設計師主要是針對需求的變動做一些UI的細節(jié)調整和補充镶殷。
在任務分解的同時,技術經理或者其他開發(fā)環(huán)境負責人微酬,負責搭建開發(fā)環(huán)境:創(chuàng)建代碼庫绘趋、創(chuàng)建基本代碼結構、創(chuàng)建數據庫颗管、部署開發(fā)服務器站點等陷遮。
在開發(fā)階段,會遇到需求不準確或者實現難度較高等問題垦江,產品經理負責需求的溝通和變更帽馋,在禪道中變更需求,會有相應的記錄并會自動發(fā)郵件給相關的人員,如圖:
在提交測試之前绽族,運維人員負責跟蹤服務器的購買和環(huán)境準備姨涡。
自動構建
開發(fā)工作開始后,使用jenkins自動執(zhí)行代碼規(guī)范性檢查吧慢,編譯構建涛漂,單元測試,開發(fā)測試環(huán)境的更新检诗,服務端文件打包匈仗,客戶端打包等,如下圖所示:
提交測試
在提交測試之前逢慌,測試人員負責測試環(huán)境的準備悠轩,準備好測試的服務器環(huán)境(服務器環(huán)境也可以由技術人員配置)和客戶端環(huán)境。
在功能開發(fā)完成后(大部分功能完成攻泼,流程可以走通即可)哗蜈,版本提交負責人(開發(fā)人員)創(chuàng)建版本并提交測試,測試人員就可以進行測試了坠韩。
提交測試時距潘,首先在迭代視圖創(chuàng)建一個版本:
然后關聯(lián)此版本完成的需求,解決的bug只搁,并“提交測試“:
提交測試之后音比,再在迭代視圖創(chuàng)建一個新的版本,供修改bug時關聯(lián)和后續(xù)發(fā)布提交使用:
提交測試后氢惋,運維人員就可以先使用第一個版本進行線上服務端的預部署洞翩,并把部署后的相關地址反饋給開發(fā)測試人員,以供后續(xù)的每日構建使用焰望。
每日構建
每天下班前提交一個測試版本骚亿,提交測試時,需要部署好測試的服務端熊赖,并且生成測試版本的客戶端安裝包来屠,并把對應的版本文件copy到共享服務器上。每日構建的過程使用jenkins配置管理震鹉,配置如下圖所示:
測試穩(wěn)定達到上線標準的版本俱笛,可以在測試視圖的版本中進行標記,上線更新時找到對應的共享服務器文件即可传趾。
部署上架
從提交測試到部署上架前迎膜,測試人員要經過模塊測試和綜合測試。測試基本穩(wěn)定后浆兰,產品經理對產品進行功能確認磕仅,并做好上架的準備珊豹,運維人員進行線上的正式部署。
正式部署后榕订,可以邀請一些用戶進行測試平夜,測試反饋的問題再進行修改,增量更新卸亮。之后忽妒,就可以進行上架(如果有移動端)申請并發(fā)布正式版本了。
迭代總結
迭代完成兼贸,部署上線后段直,由產品經理或者項目組組長組織成員進行產品的演示和總結。對完成的產品和最初規(guī)劃的需求進行對比溶诞,總結好的經驗鸯檬,下次迭代繼續(xù)堅持執(zhí)行;發(fā)現不足和問題螺垢,在下次迭代中優(yōu)化和解決喧务。
產品升級
后續(xù)的產品升級,就是不斷的執(zhí)行上述的“產品迭代階段”的過程枉圃。如果是較大的產品升級功茴,可以創(chuàng)建產品分支,在分支中執(zhí)行整個的產品研發(fā)過程孽亲。