為什么產(chǎn)品經(jīng)理需要關(guān)注開發(fā)模式?

2 評(píng)論 12361 瀏覽 58 收藏 19 分鐘

本文旨在引導(dǎo)產(chǎn)品從業(yè)人員關(guān)注和重視開發(fā)模式問題,隱去了各模式的實(shí)施細(xì)節(jié)和管理復(fù)雜性。文章介紹了常見的5種開發(fā)模式,并對(duì)各模式進(jìn)行了分析,與大家分享。

我一個(gè)產(chǎn)品經(jīng)理(本文泛指產(chǎn)品人員)為何要關(guān)注開發(fā)模式,開發(fā)的事不是技術(shù)的事嗎?那不是技術(shù)團(tuán)隊(duì)該關(guān)心的事嗎?

一、為什么產(chǎn)品經(jīng)理需要關(guān)注開發(fā)模式?

1. 開發(fā)模式即工作模式

首先我們要達(dá)成一個(gè)共識(shí):產(chǎn)品經(jīng)理除了收集分析需求、拋出草案、定方案、輸出原型、prd、流程圖、架構(gòu)圖等專業(yè)工作之外,還需要負(fù)責(zé)協(xié)調(diào)資源、上傳下達(dá)等保障整個(gè)研發(fā)順利進(jìn)行的工作。產(chǎn)品經(jīng)理是貫穿始終從頭走到尾并對(duì)最終結(jié)果負(fù)責(zé)的人。

互聯(lián)網(wǎng)軟件研發(fā)周期中的各團(tuán)隊(duì)參與情況和當(dāng)前項(xiàng)目所處的階段,大略劃分的話可以有如下關(guān)系:

完成軟件開發(fā)所要進(jìn)行的工作和各團(tuán)隊(duì)之間大致有如下關(guān)系:

為什么有交叉?

  • 設(shè)計(jì)工作不僅僅是產(chǎn)品經(jīng)理設(shè)計(jì)產(chǎn)品方案,拿到產(chǎn)品方案后研發(fā)團(tuán)隊(duì)需要構(gòu)建同樣重要的技術(shù)方案。
  • 測(cè)試方面,測(cè)試團(tuán)隊(duì)肯定是主角,進(jìn)行項(xiàng)目質(zhì)量的整體驗(yàn)收。除了這些還有研發(fā)團(tuán)隊(duì)研發(fā)過程中的單元測(cè)試,提測(cè)前的整體自測(cè),還有產(chǎn)品同學(xué)的輔助測(cè)試和上線后回歸測(cè)試等。
  • 至于部署方面,硬件方面的事情自然運(yùn)維團(tuán)隊(duì)去處理,但設(shè)備選型則是技術(shù)方案的一部分。另外有的公司是技術(shù)團(tuán)隊(duì)負(fù)責(zé)發(fā)布代碼,有的是運(yùn)維同學(xué)進(jìn)行發(fā)布。

各團(tuán)隊(duì)之間看起來相互獨(dú)立,各司其職,實(shí)則緊密相連,不可分割。無論開發(fā)模式是不是技術(shù)團(tuán)隊(duì)該關(guān)心的事,它都不可避免地會(huì)影響整個(gè)研發(fā)過程。各團(tuán)隊(duì)為了消除這種影響,需要調(diào)整工作方式去配合,這樣才能釋放出相應(yīng)模式的優(yōu)勢(shì)力量,達(dá)到整體最佳。

2. 熟練掌握開發(fā)模式的好處

第一:加入一個(gè)新團(tuán)隊(duì),能識(shí)別出當(dāng)前團(tuán)隊(duì)正在采用的開發(fā)模式,可以快速適應(yīng)節(jié)奏展開工作,更順利更少犯錯(cuò)。試想如果人家在采用敏捷開發(fā),而你帶著瀑布開發(fā)的思維投入工作并產(chǎn)出,團(tuán)隊(duì)首秀上來就挖坑,想想都覺得可怕。

第二:清楚團(tuán)隊(duì)當(dāng)前工作模式的優(yōu)勢(shì)和局限,在局限性方面就可以提前做好準(zhǔn)備,不至于當(dāng)問題發(fā)生時(shí)措手不及,處于被動(dòng)的局面被牽制住。問題的產(chǎn)生很有可能是團(tuán)隊(duì)工作方式的弊端帶來的而非你個(gè)人能力的問題,這個(gè)鍋不能背。

第三:以第二點(diǎn)為基礎(chǔ),清楚局限可以有意識(shí)盡所能去優(yōu)化,無論對(duì)個(gè)人發(fā)展還是公司效率,都是極好的。

二、各開發(fā)模式相互對(duì)比

一款產(chǎn)品不是孤立的,它是和自身、公司、競(jìng)品、行業(yè)、用戶群等相互關(guān)聯(lián)的,共同作用下的一個(gè)結(jié)果,我們研發(fā)一款產(chǎn)品,是基于一定需求痛點(diǎn),服務(wù)于特定人群的。在信息過載、要求快速響應(yīng)的互聯(lián)網(wǎng)世界里,開發(fā)過程的靈活性和用戶參與程度被越來越多的關(guān)注和利用。

當(dāng)下公司所采用的開發(fā)方式有N多種,每一種都是特定場(chǎng)景下的特定產(chǎn)物,沒有絕對(duì)的優(yōu)劣,適合最重要。我們先從操作靈活性、用戶參與度兩個(gè)維度對(duì)當(dāng)下流行的開發(fā)模式做一下全局預(yù)覽。

三、5種常見開發(fā)模式介紹

我們選取了4種典型的開發(fā)模式進(jìn)行說明,這4種模式有的是默認(rèn)選擇的,可能你在用但是你自己沒意識(shí)到;有的是當(dāng)下熱議的;有的是用于增加項(xiàng)目透明度可以隨時(shí)引入新的變更需求的;有的是應(yīng)對(duì)老板一聲令下要求即刻上線的。

1. 瀑布式開發(fā)

各個(gè)階段從上到下,一步一步地走,是不是很像瀑布,水從上流淌而下。

瀑布模型式是最典型的預(yù)見性的方法,是開發(fā)方法論的老大哥,嚴(yán)格遵循預(yù)先計(jì)劃的需求、分析、設(shè)計(jì)、編碼、測(cè)試的步驟順序進(jìn)行。只能一個(gè)階段一個(gè)階段的執(zhí)行,不可回溯。每個(gè)階段都需要獨(dú)立評(píng)估,準(zhǔn)確無誤的輸出,完整的文檔。上一個(gè)階段結(jié)束前,下一個(gè)階段不能開始。直到最后部署交付,期間都拿不到切實(shí)可應(yīng)用的項(xiàng)目。

這是大多數(shù)團(tuán)隊(duì)默認(rèn)采用的一種模式,甚至常用到自己在用它,但是都不知道它就是瀑布式開發(fā)。采用瀑布開發(fā)方式的用戶常見于新負(fù)責(zé)的項(xiàng)目經(jīng)理因?yàn)檫@種方式對(duì)項(xiàng)目的估計(jì)非常方便。項(xiàng)目開發(fā)中涉及到的幾乎一切都預(yù)先計(jì)劃,從而便于確定預(yù)期的開發(fā)成本和開發(fā)時(shí)間,非常方便地把整個(gè)項(xiàng)目置于自己的掌握之下。

缺點(diǎn)也很明顯,任何人都不能預(yù)知未來,做出來的方案也都不是完美無瑕,計(jì)劃趕不上變化,每個(gè)階段環(huán)環(huán)相扣,任何一個(gè)階段出問題,都可能導(dǎo)致延期甚至項(xiàng)目失敗。另外對(duì)于開發(fā)人員而言就可能顯得太嚴(yán)酷了。因?yàn)闇y(cè)試過程在開發(fā)階段之后實(shí)施,子系統(tǒng)測(cè)試所暴露的問題可能需要立即修改代碼,而開發(fā)人員一般在同一階段也會(huì)從事其他的開發(fā)任務(wù),而所需要的軟件修改可能會(huì)降低開發(fā)人員的生產(chǎn)率和工作質(zhì)量,這樣就顯著增加了計(jì)劃架構(gòu)的成本。

2. 增量和迭代開發(fā)

增量和迭代其實(shí)是兩種開發(fā)方式。

增量開發(fā)是把項(xiàng)目切割成N個(gè)相對(duì)獨(dú)立的模塊。像堆積木一樣,每次迭代會(huì)增加新的軟件模塊,而在先前添加的模塊中幾乎沒有變化。開發(fā)過程可以順序進(jìn)行,也可以并行進(jìn)行,并行開發(fā)提高了交付速度。

這就要求產(chǎn)品經(jīng)理在分析設(shè)計(jì)階段,要充分考慮研發(fā)資源問題。如果研發(fā)資源有限,我們把項(xiàng)目切分成塊后勢(shì)必要按緊急、重要程度進(jìn)行排序,業(yè)務(wù)人員會(huì)牽扯進(jìn)來。如果研發(fā)資源充足,分析設(shè)計(jì)階段產(chǎn)品經(jīng)理會(huì)很忙,我們要在設(shè)計(jì)階段過后輸出的是供好幾個(gè)研發(fā)組并行開發(fā)的子模塊原型、PRD、流程圖等,當(dāng)然如果你是個(gè)產(chǎn)品leader的話,就可以授權(quán)下面人去分頭行動(dòng)了。

迭代開發(fā)和增量開發(fā)類似,也是把一個(gè)大任務(wù)切分成N個(gè)子任務(wù)。與增量模式各模塊間相對(duì)獨(dú)立不同,迭代開發(fā)的每次迭代任務(wù)都是以上一次迭代為基礎(chǔ)進(jìn)行的。由于軟件是分部分交付的,因此從項(xiàng)目開始就不需要完整的規(guī)范,并且在開發(fā)過程中可能會(huì)對(duì)需求進(jìn)行少量更改。但是,需求不能根本改變,必須在開始時(shí)就定義主要需求。

這就要求產(chǎn)品經(jīng)理每次迭代都要留下足夠清晰的文檔,供后來人能接著繼續(xù)迭代開發(fā),后來人可能是公司其他產(chǎn)品經(jīng)理,也可能是新來的產(chǎn)品經(jīng)理。如果你是一個(gè)產(chǎn)品leader,如果你們公司項(xiàng)目采用的是迭代開發(fā)模式,如果你不想因?yàn)槟硞€(gè)人的離職導(dǎo)致開發(fā)組陷入一團(tuán)糟的話,就提前要有這方面的要求和準(zhǔn)備。

如果把增量開發(fā)看作是橫向開發(fā)的話,那迭代模式就是縱向開發(fā)。增量迭代模式的優(yōu)點(diǎn)是如果失敗,影響的只是一部分而非整個(gè)項(xiàng)目,降低了損失。軟件更容易成功,通過先前的上線版本收集用戶反饋,結(jié)合反饋?zhàn)鞒鱿乱淮蔚桨?,小步快跑更容易成事。缺點(diǎn)是因?yàn)樵隽块_發(fā)是拆開成塊,如果開發(fā)過程中沒有溝通好,或者文檔不清晰,會(huì)導(dǎo)致后期合在一起的時(shí)候出問題。

3. 看板開發(fā)

大家經(jīng)常聽到敏捷開發(fā),其實(shí)敏捷開發(fā)不是一個(gè)模式,而是一組模式的統(tǒng)稱。本節(jié)講的看板開發(fā)和下節(jié)的極限編程都屬于敏捷開發(fā),除此之外還有Scrum。

如果說瀑布模式是一種自上而下的驅(qū)動(dòng)方式,那么看板模式就是一種自下而上的驅(qū)動(dòng)方式。后道工序在需要時(shí),通過看板向前道工序發(fā)出信號(hào),請(qǐng)給我需要數(shù)量的輸入。前道工序只有得到相應(yīng)看板后,才啟動(dòng)任務(wù)。用戶需求為其中的原始驅(qū)動(dòng)力。

看板模式?jīng)]有明顯的迭代過程,沒有單獨(dú)的計(jì)劃階段,可以隨時(shí)引入新的變更需求。看板上的內(nèi)容堅(jiān)持“即來即增加”和“即變即更新”的原則,團(tuán)隊(duì)中的每個(gè)人都可以根據(jù)實(shí)際情況增加或者流動(dòng)自己負(fù)責(zé)的任務(wù)??梢郧逦乜吹剿许?xiàng)目活動(dòng),任務(wù)數(shù)量,負(fù)責(zé)人和進(jìn)度。這種增加的透明度有助于更準(zhǔn)確地估計(jì)最緊要的任務(wù),項(xiàng)目組也更加趨向于自動(dòng)化。

站立會(huì)是看板開發(fā)方式的一個(gè)顯著特征,每天開發(fā)組主要成員,一人一兩分鐘,交代下自己當(dāng)前已完成的任務(wù),正在進(jìn)行的任務(wù),有沒有遇到問題。之所以采用站立的形式,是因?yàn)椴灰跁?huì)上討論復(fù)雜的問題,產(chǎn)品經(jīng)理需要把控好站立會(huì)的時(shí)間。

復(fù)雜問題如需討論,單約專項(xiàng)會(huì)議進(jìn)行。開發(fā)是環(huán)環(huán)相扣的,站立會(huì)會(huì)把問題提前拋出來,避免之前流程環(huán)節(jié)上的浪費(fèi)。能帶來一種類似“Stop and Fix”的氛圍,出現(xiàn)問題時(shí),能立刻暫停,分析根本原因,并加以解決,防止問題的再次發(fā)生。

但是這種方式,容易讓大家的注意力集中到某個(gè)點(diǎn)上而忽略其他點(diǎn),不利于思維的發(fā)散。

4. 極限編程(XP)

極限編程和傳統(tǒng)開發(fā)模式的本質(zhì)不同在于它更強(qiáng)調(diào)可適應(yīng)性以及面臨的困難,去掉了條條框框,更強(qiáng)調(diào)專注問題,快速解決。也可以理解為這是一種更“隨意”的開發(fā)方式,但是設(shè)計(jì)、編碼、測(cè)試環(huán)節(jié)依然存在,只是不拘泥于形式和流程。所以除了團(tuán)隊(duì)成員之間需要相互熟悉、默契之外,在團(tuán)隊(duì)文化方面也是有一定要求的,它的基礎(chǔ)和價(jià)值觀是交流、樸素、反饋、勇氣和尊重。適用于經(jīng)常發(fā)生變化的項(xiàng)目、緊急上線任務(wù)和封閉開發(fā)等。項(xiàng)目組人數(shù)也要進(jìn)行控制,建議在2~10人之間。

在極限編程式開發(fā)中,經(jīng)常見到結(jié)對(duì)編程,即代碼由兩個(gè)人坐在一臺(tái)電腦前一起完成。一個(gè)程序員寫代碼關(guān)注編碼細(xì)節(jié),另外一個(gè)人主要關(guān)注整體結(jié)構(gòu)性的東西,不斷地對(duì)第一個(gè)程序員寫的代碼進(jìn)行評(píng)審。團(tuán)隊(duì)成員能夠長(zhǎng)期維持努力工作的狀態(tài),他們保存精力,他們把項(xiàng)目看作是馬拉松長(zhǎng)跑,而不是全速短跑。

代碼權(quán)限集體所有,每個(gè)人都可以更改代碼的任意部分,每個(gè)人都對(duì)所有的代碼負(fù)責(zé)。在XP中,沒有那種傳統(tǒng)開發(fā)模式中一次性的、針對(duì)所有需求的總體設(shè)計(jì),設(shè)計(jì)過程幾乎一直貫穿著整個(gè)項(xiàng)目開發(fā),而且實(shí)現(xiàn)方式簡(jiǎn)單,能滿足需求、通過測(cè)試即可。

不推諉不扯皮,有話直說,對(duì)事不對(duì)人,勇于承擔(dān)任務(wù),不逃避責(zé)任。這個(gè)“極限”就體現(xiàn)在把交流、反饋、勇氣、尊重這些最樸素的東西發(fā)揮到了極致。這種模式的弊端除了挑團(tuán)隊(duì)之外,由于不拘泥形式,后期在文檔完整性上也會(huì)有所欠缺。

如果項(xiàng)目組成員有流動(dòng)也會(huì)給開發(fā)帶來很大問題。因強(qiáng)調(diào)的是簡(jiǎn)單設(shè)計(jì)簡(jiǎn)單開發(fā),更關(guān)注當(dāng)下的需求滿足情況,所以后期重構(gòu)的幾率會(huì)更大。但是這種模式所帶來的效率提升,結(jié)果導(dǎo)向性,在某些場(chǎng)景下是其他模式所不能取代的。

四、不同場(chǎng)景下的開發(fā)模式選擇

每個(gè)公司,每個(gè)團(tuán)隊(duì),每個(gè)項(xiàng)目都有自身的獨(dú)特情況,以下關(guān)系基于各開發(fā)模式本質(zhì)特征進(jìn)行推薦,實(shí)際情況需實(shí)際分析,也可以集合多種模式優(yōu)點(diǎn)組合使用。

無論使用何種開發(fā)模式,想要有效實(shí)施都依賴于對(duì)原理的理解、對(duì)原則的堅(jiān)持和實(shí)踐時(shí)的隨機(jī)應(yīng)變。

1. 瀑布開發(fā)適合場(chǎng)景

  1. 具有明確定義和不變需求的中小型項(xiàng)目,比如小型公司網(wǎng)站開發(fā)
  2. 需要嚴(yán)格控制流程,預(yù)算和時(shí)間表可預(yù)測(cè)的項(xiàng)目,比如政府類項(xiàng)目
  3. 必須遵守多個(gè)規(guī)章制度的項(xiàng)目,比如醫(yī)療軟件
  4. 使用了業(yè)內(nèi)熟悉的成熟的技術(shù)方案的項(xiàng)目

2. 增量迭代模式適合場(chǎng)景

大型關(guān)鍵企業(yè)應(yīng)用程序,最好由松散耦合的部分組成,比如微服務(wù)或web服務(wù)類

3. V模式適合場(chǎng)景

故障和停機(jī)時(shí)間不可接受的項(xiàng)目,比如醫(yī)療軟件、航空管理軟件

4. 螺旋模式適合場(chǎng)景

  1. 業(yè)務(wù)要求不明確或過于雄心勃勃地創(chuàng)新型項(xiàng)目
  2. 大型且復(fù)雜的項(xiàng)目

5. RUP適合場(chǎng)景

大型和高風(fēng)險(xiǎn)項(xiàng)目,尤其是基于用例的開發(fā)和高質(zhì)量軟件的快速開發(fā)

6. 敏捷開發(fā)適合場(chǎng)景

  1. 要求處理目標(biāo)用戶前期反饋的新項(xiàng)目
  2. 業(yè)務(wù)要求不能被清晰地轉(zhuǎn)換成產(chǎn)品需求的中型定制化項(xiàng)目

五、開發(fā)模式只是大公司大團(tuán)隊(duì)該考慮的事嗎?

各種開發(fā)模式的產(chǎn)生是因?yàn)楝F(xiàn)實(shí)開發(fā)中遇到了各種各樣的問題,一個(gè)模式對(duì)應(yīng)一類問題的解決方案。無論團(tuán)隊(duì)大小,結(jié)果導(dǎo)向,遇到問題都可以采用對(duì)應(yīng)方案。

開發(fā)模式本質(zhì)是關(guān)于工作效率、資源利用率的問題,小公司更需要關(guān)注花更少的錢辦更多的事。

內(nèi)耗導(dǎo)致的項(xiàng)目死亡。就像齒輪要克服相互之間的阻力才能對(duì)外做功,不合適的齒輪組合會(huì)帶來更大的阻力,大公司可以利用其強(qiáng)大的資金、人才去克服額外阻力,消除不良影響。小公司資金、人才方面比較弱,更應(yīng)規(guī)避內(nèi)耗問題。

寫在最后

采用什么樣的開發(fā)模式直接影響到各工種用什么樣的工作模式投入其中。小了說關(guān)乎效率問題,大了說關(guān)乎項(xiàng)目成敗。與公司大小沒有關(guān)系,結(jié)果導(dǎo)向、效率導(dǎo)向,希望大家避免無意中的自我毀滅。

最后,與大家分享一句《湮滅》中的經(jīng)典臺(tái)詞:“Almost none of us commit suicide, and almost all of us self-destruct”

 

本文由 @產(chǎn)品大蔥 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。

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

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 5種開發(fā)模式 只講了4種?

    來自北京 回復(fù)
  2. 感謝分享,受益匪淺

    回復(fù)