身為產(chǎn)品經(jīng)理,你懂開發(fā)團(tuán)隊(duì)的交付過程嗎?

7 評論 18827 瀏覽 85 收藏 10 分鐘
B端产品经理要负责对目标行业和市场进行深入的分析和调研,了解客户的需求、痛点、期望和行为,找到产品的价值主张 🔗

持續(xù)交付是一種軟件工程手法,讓軟件產(chǎn)品的產(chǎn)出過程在一個短周期內(nèi)完成,以保證軟件可以穩(wěn)定、持續(xù)的保持在隨時可以釋出的狀況。本文作者僅希望通過通俗的語言,來分享自己一點(diǎn)關(guān)于“持續(xù)交付”的認(rèn)識。

我們都知道,產(chǎn)品交付,是需求實(shí)現(xiàn)的“最后一公里”路,但交付不僅僅只是“將代碼部署到測試環(huán)境,測試通過后,即可上線”一句話這么簡單,交付過程涉及到復(fù)雜的流程、團(tuán)隊(duì)協(xié)作和交付工具等等,任何一點(diǎn)都會影響到產(chǎn)品的整個生命周期。

一般來說,產(chǎn)品經(jīng)理極少會參與到最后代碼交付過程中去,因?yàn)榻桓吨饕怯裳邪l(fā)、測試和運(yùn)維等角色在負(fù)責(zé),產(chǎn)品經(jīng)理最多參與進(jìn)測試階段。

事實(shí)上,所有的產(chǎn)品團(tuán)隊(duì)成員,都應(yīng)該對我們的產(chǎn)品目標(biāo)負(fù)責(zé)。一名合格的產(chǎn)品經(jīng)理,切勿從心理上,就將產(chǎn)品、測試甚至是研發(fā)、運(yùn)維的職責(zé)都完全割離開來,從需求的誕生到實(shí)現(xiàn),產(chǎn)品經(jīng)理應(yīng)該盡可能的了解和知悉每一個過程,才能讓需求實(shí)現(xiàn)更加的順暢,促使自己能夠換位思考,掌握全局。

本文主要來討論一個概念——持續(xù)交付,我并非技術(shù)出身的產(chǎn)品經(jīng)理,僅希望通過通俗的語言來分享自己一點(diǎn)關(guān)于“持續(xù)交付”的認(rèn)識。

持續(xù)交付是什么?

百度百科上的定義:持續(xù)交付是一種軟件工程手法,讓軟件產(chǎn)品的產(chǎn)出過程在一個短周期內(nèi)完成,以保證軟件可以穩(wěn)定、持續(xù)的保持在隨時可以釋出的狀況。

光看這句話是不是一臉懵逼?

關(guān)于持續(xù)交付的定義,其實(shí)早有前人給出了很通俗的解釋:

持續(xù)交付是軟件研發(fā)人員,如何將一個好點(diǎn)子,以最快的速度交付給用戶的方法。

感覺還是有點(diǎn)抽象?

沒關(guān)系,我們來解讀一下這句話:上句中、好點(diǎn)子,就是需求;交付給用戶,就是需求上線,這是一個眾所周知的過程。其實(shí)這句話強(qiáng)調(diào)的是:最快的速度,也就是說交付過程的重點(diǎn)是效率。

這和敏捷開發(fā)的概念是不是有點(diǎn)類似?

什么是敏捷開發(fā)呢?

提到敏捷開發(fā),不得不提到與之相對的一種開發(fā)流程:瀑布流開發(fā)——即嚴(yán)格地將開發(fā)分隔成各個階段:需求分析、要件定義、基本設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、單體測試、結(jié)合測試、系統(tǒng)測試等。有點(diǎn)像工廠流水線,前一階段的完成才能開始下一個階段的工作,意味著沒有回頭路,返工代價很大,用戶對需求無法反饋,十分不適應(yīng)。

這樣的開發(fā)方式已經(jīng)無法適應(yīng)當(dāng)前的易變、模糊、不確定的互聯(lián)網(wǎng)環(huán)境了

就像斯賓塞·約翰遜說過的:

唯一不變的,就是變化本身。

所以敏捷開發(fā)方法像凈化空氣的春雨般出現(xiàn)了,敏捷開發(fā)方法的核心是迭代,也就是通過2-4周的迭代時間,不斷的交付客戶的需求。每一次迭代都包含需求分析、設(shè)計(jì)、實(shí)現(xiàn)和測試等多個環(huán)節(jié),每一次迭代都可以生成一個穩(wěn)定和被驗(yàn)證過的軟件版本。

敏捷開發(fā)是強(qiáng)調(diào)敏捷的軟件開發(fā)項(xiàng)目管理方式,而持續(xù)交付是強(qiáng)調(diào)效率和靈活的一種軟件工程手法,持續(xù)交付就可以定義為敏捷開發(fā)管理的一個子集。

怎么看待持續(xù)交付?

經(jīng)過了以上定義,大部分人對持續(xù)交付究竟是做什么的,還很茫然。接下來將結(jié)合其他概念,讓大家更深入理解持續(xù)交付。

提到持續(xù)交付,不得不提到持續(xù)集成、持續(xù)部署,也就是我們常說的CI/CD。

  • 持續(xù)集成:我所理解的持續(xù)集成是,在進(jìn)入開發(fā)階段前,會將研發(fā)工作進(jìn)行拆解,可能是拆分成不同的功能模塊,也可能是拆分成若干個任務(wù)由不同人員來進(jìn)行開發(fā)。拆分之后,就一定需要將代碼合并起來,形成完整、有效、正常運(yùn)行的代碼,這個過程叫做集成,反復(fù)持續(xù),就叫持續(xù)集成。
  • 持續(xù)部署:持續(xù)部署是持續(xù)交付的最高階段,代碼在經(jīng)過自動化測試、單元測試或者評審后,自動的部署到正式(目標(biāo))環(huán)境中,快速安全的交付給用戶使用。

持續(xù)交付則是一個承上啟下的過程,它是在持續(xù)集成后,通過測試、產(chǎn)品的使用和驗(yàn)證和反饋后,不斷地對產(chǎn)品進(jìn)行優(yōu)化。

我們再回顧前面提到的定義:

持續(xù)交付是軟件研發(fā)人員,如何將一個好點(diǎn)子,以最快的速度交付給用戶的方法。

產(chǎn)品、測試就是所謂的第一個用戶,所以這個定義還是很貼切易懂的。

持續(xù)交付,從業(yè)務(wù)層面來說,其實(shí)是存在著決策的過程的,因?yàn)樗窃诓渴鸬秸江h(huán)境之前,產(chǎn)品經(jīng)理或領(lǐng)導(dǎo)者需要做業(yè)務(wù)判斷,判斷代碼是否可正常交付?是否解決業(yè)務(wù)問題?是否滿足業(yè)務(wù)需求等等?

那么持續(xù)交付從技術(shù)層面,是怎么實(shí)現(xiàn)呢?

持續(xù)交付的實(shí)現(xiàn)方向

持續(xù)交付的具體實(shí)現(xiàn)方式要從配置管理、環(huán)境管理、構(gòu)建集成和測試管理等幾個方面入手,僅僅通過一篇文章是無法講述清楚的,并且更適合由研發(fā)人員去研究和實(shí)踐,感興趣的話可以閱讀《持續(xù)交付-發(fā)布可靠軟件的系統(tǒng)方法》這本專業(yè)書籍來具體學(xué)習(xí)。

這里我僅僅從宏觀的產(chǎn)品角度,來總結(jié)持續(xù)交付的實(shí)現(xiàn)方向:

為令人痛苦的手動步驟,建立起可重復(fù)、可靠的自動化過程。每一次的修改都能夠經(jīng)過一次構(gòu)建、測試、部署、發(fā)布完整高效的自動化驗(yàn)證過程,實(shí)現(xiàn)高速頻繁驗(yàn)證,快速解決問題的閉環(huán)。

最后的結(jié)果就是:小批量/小粒度頻繁的進(jìn)行持續(xù)部署或發(fā)布,從而得以實(shí)現(xiàn)持續(xù)交付。

當(dāng)然,在前往這個方向的道路上, 一定要有猛藥去疴的決心,如:

(1)技術(shù)層面

  1. 改變dev/ops團(tuán)隊(duì)在PaaS層面所使用的工具和應(yīng)用方式;
  2. 改變系統(tǒng)架構(gòu)、部署架構(gòu)等。

(2)組織層面

  1. 優(yōu)化調(diào)整人員結(jié)構(gòu);
  2. 打破耗時、完全人工的流程束縛;
  3. ……

產(chǎn)品經(jīng)理能享受持續(xù)交付帶來的好處嗎?

持續(xù)交付所帶來的收益和價值是能覆蓋整個產(chǎn)品團(tuán)隊(duì),而不僅僅是開發(fā)人員。

  1. 產(chǎn)品的靈活交付、發(fā)布可控,隨時有一個穩(wěn)定可發(fā)布的版本,產(chǎn)品人員身為產(chǎn)品前進(jìn)方向上的主導(dǎo)者,可以有效把控版本發(fā)布節(jié)奏。而且,計(jì)劃是趕不上變化的,代碼交付、功能點(diǎn)部署,是可以根據(jù)業(yè)務(wù)要求可靈活變換的。
  2. 產(chǎn)品人員是曝光在大眾、用戶目光底下的人,是出現(xiàn)問題故障,要首當(dāng)其沖化解內(nèi)外矛盾的人,產(chǎn)品人員對整個產(chǎn)品上線能否正常運(yùn)行負(fù)有重要責(zé)任。同時,產(chǎn)品人員還是“產(chǎn)品的第一個用戶”,我們可以享有持續(xù)交付的保護(hù),因?yàn)槌掷m(xù)交付可以保證在迭代中的每個階段或需求變化時,都能夠及時測試驗(yàn)證,獲得問題反饋。
  3. 因?yàn)槌掷m(xù)交付,需要持續(xù)構(gòu)建和集成代碼,并且及時部署到測試環(huán)境去驗(yàn)證,產(chǎn)品經(jīng)理以此可知悉當(dāng)前開發(fā)的進(jìn)度和質(zhì)量,及時決策或調(diào)整,避免開發(fā)人員無故拖延工期所導(dǎo)致的扯皮現(xiàn)象。
  4. 在實(shí)施持續(xù)交付后,可以做到在保證交付質(zhì)量的前提下,加快交付速度,從而更快地得到市場的反饋,產(chǎn)品經(jīng)理就可以盡快做出判斷,更好的引領(lǐng)產(chǎn)品的方向,最終達(dá)到擴(kuò)大收益、提高價值的終極目的。

 

本文由 @有餡兒的丸子 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

題圖來自 Pexels,基于 CC0 協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 瀑布流開發(fā)或者說螺旋開發(fā) 都是可以經(jīng)過【需求分析、要件定義、基本設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、單體測試、結(jié)合測試、系統(tǒng)測試 的】持續(xù)迭代。
    敏捷開發(fā)核心并不是【迭代,也就是通過2-4周的迭代時間,不斷的交付客戶的需求。每一次迭代都包含需求分析、設(shè)計(jì)、實(shí)現(xiàn)和測試等多個環(huán)節(jié),每一次迭代都可以生成一個穩(wěn)定和被驗(yàn)證過的軟件版本】。敏捷開發(fā)重點(diǎn)是在于業(yè)務(wù)人員和技術(shù)人員的相互信任,省去復(fù)雜計(jì)劃和成熟設(shè)計(jì)(比如只勾勒草圖),減少書面文字通過直接人與人溝通來節(jié)省文檔時間和成本,不斷的通過測試和試錯來迭代版本。

    來自浙江 回復(fù)
    1. 您所說的減少書面文字的溝通時間和成本我贊同,但也只是敏捷開發(fā)的理念之一,當(dāng)然我所說的也不是全部。另外,我對瀑布流開發(fā)在文中的解釋也不是局限在您上面復(fù)制的那句話里。我個人認(rèn)為,隨著時間推移,技術(shù)、方式上的進(jìn)步,以及團(tuán)隊(duì)工作的側(cè)重點(diǎn)不同,對這些項(xiàng)目管理方式都會得出不同的見解和感受,不是你我三言兩語能說清的。文章篇幅有限,重點(diǎn)不能偏倚,所以不能做太多持續(xù)交付概念外的解釋。謝謝您對我文章的閱讀,還提出了不同意見,互相學(xué)習(xí) ??

      來自福建 回復(fù)
    2. 謝謝回復(fù)。我只是描述我參與過的多個項(xiàng)目開發(fā)模式下自己的理解??赡芘c你想法會不一樣。多多見諒。

      來自浙江 回復(fù)
    3. 木有木有,應(yīng)該有不同想法的碰撞,何來見諒一說 ??

      來自福建 回復(fù)
  2. silvia931031 互相學(xué)習(xí) ??

    來自福建 回復(fù)
  3. 收藏了

    回復(fù)
专题
19331人已学习13篇文章
画像标签是由数据标签经过分析、加工处理,形成的更加抽象、易于理解的复合标签。本专题的文章分享了如何设计用户标签体系。
专题
15141人已学习12篇文章
用户体验五要素包括战略层、范围层、框架层、结构层、表现层五个方面,本专题的文章分享了用户体验五要素的看法。
专题
14278人已学习13篇文章
如果做小红书运营?本专题的文章分享了小红书流量密码。
专题
18013人已学习15篇文章
签到功能是培养用户习惯的好办法。本专题的文章提供了签到功能的设计指南。
专题
53503人已学习19篇文章
让我们来看一下Axure的高端操作:用Axure实现游戏功能
专题
18449人已学习15篇文章
库存管理是管理商品和数量之间的关系。本专题的文章提供了库存管理设计指南。