編輯導讀:本文對基於CMMI、 基於IPD和基於敏捷模式這三種不同的研發體系進行了梳理介紹,並分析了產品研發的流程以及每一個流程中的要點,與大家分享。
縱觀各類科技企業,由於自身所處環境不同,因此其軟件研發管理模式也不盡相同,這其中有基於CMMI能力成熟度模型指導下構建的研發管理體系,也有基於IPD集成產品研發框架指導下構建的研發管理體系,當然也有一些目前不少小企業、互聯網企業推崇的敏捷研發管理體系。
01 基於CMMI的研發體系CMMI能力成熟度模型相信大家都不陌生,從一級到五級,覆蓋了22個過程域,一般能達到CMMI3級別的基本上可以理解為各類流程、過程規則等已經達到一個較好的水平。
當然,這裏主要是指企業能夠確實按照CMMI模型去實踐,這種實踐其實更適合於以瀑布式開發為主導的項目開發及產品研發模式。
雖然老譚所在的公司通過了CMMI5的級別,但是實際執行的過程中,我們並不會完全按照CMMI5進行,需要根據實際情況進行裁剪,相比於它對實際研發過程的指導作用,我感覺CMMI認證更多的為公司增加一種重要資質,以期在招投標中獲得更好的加分。
對於互聯網企業,特別是To C的互聯網企業,CMMI認證的意義並不是特別大,因為在C端你無需依賴這些資質證明能力,而是以產品制勝。
02 基於IPD的研發體系IPD的核心內容是以市場為導向的產品開發,關注客户需求,將產品開發看成一項投資(商業價值),通過CBB—公共基礎模塊和跨部門的團隊準確、快速、低成本、高質量地推出產品(各評審點的多團隊參與和決策、通過各種技術改進提升產品開發效率和降低浪費、持續交付)。
去年開始負責研發時,我在公司更傾向採用IPD的模式構建研發體系,把技術團隊和產品開發團隊做了分離,也融合了近幾年比較火的中台思想,其目的是將過去分散式的研發體系做適度的統一和整合,加強技術能力建設。
但經過這段時間的運行來看,其實也出現了水土不服的現象,其根本原因是IPD是是一個相對重量級的體系,要落地執行往往需要從整個公司層面去整體考慮和推動,而不僅僅是研發團隊內部的變革,需要高密度的跨部門協作,所以對於中小企業來説,IPD也並不一定適用,因為:
IPD需要對產品拆分為技術開發、平台開發和產品開發,一般中小公司沒有這麼複雜和巨大的產品;
- IPD的流程繁瑣複雜,雖然可以裁剪,但也很多,針對眾多研發項目,需要方方面面考慮周到,對中小公司來説管理成本太高;
- IPD的關鍵要素,無論是跨部門團隊、管道管理,還是優化投資組合等都是針對市場,一般中小公司的市場驅動較弱。
在這個快魚吃慢魚的互聯網時代,對用户和環境越來越要求要快速響應。
敏捷研發是當前不少互聯網企業、中小企業推行的研發管理體系,主要理念就是敏捷迭代、小步快跑,快速改進、擁抱變化,用户參與等等。
敏捷開發(Agile Development)是一種以人為核心、迭代、循序漸進的開發方法。
首先,我們要理解它不是一門技術,它是一種開發方法,也就是一種軟件開發的流程,它會指導我們用規定的環節去一步一步完成項目的開發,而不是一次性完成項目的交付;而這種開發方式的主要驅動核心是人;它採用的是迭代式開發或者可以理解為小步快跑的開發模式,一次只交付客户一部分的特性或功能,如下圖:
傳統的外部客户的項目如果更適合CMMI管理的話,那麼對於產品研發,不論是互聯網產品研發還是To B的軟件產品研發,敏捷模式都是更加適合的。
敏捷的交付是持續的一個過程,軟件更像一個活着的植物,軟件開發是自底向上逐步有序的生長過程,類似於植物自然生長;敏捷開發遵循軟件客觀規律,不斷的進行迭代增量開發,最終交付符合客户價值的產品。
老譚在負責一塊互聯網業務時,更多的是採用敏捷的開發模式,基本兩週一個迭代的快速改進。
敏捷模式下,迭代的節奏是非常重要的,基於統一的節奏,產品、開發、測試、發佈等不同崗位的人員就像建立了生物鐘一樣有規律的執行,團隊間的協同能力得到極高的體現。
在這個研發體系裏,敏捷團隊負責人的主要工作除了執行例行的會議、任務分派以外,我認為最核心的就是對於sprint backlog的控制,既要照顧到需求方的關切,又不能輕易破壞節奏。
04 總結這三種開發模式中,IPD的層級最高,既包括了“做正確的事”,又包括了“把事情做正確”,是公司級的運營級流程,CMMI和敏捷是同一個層級流程,是工程方面的實踐級流程。CMMI和敏捷不具備高層決策能力,而一種“把事情做正確”的開發模式。
華為公司早在2009年正式發文在全公司現在流程IPD、CMMI的基礎上,所有產品線的軟件開發團隊全面推行敏捷開發,可見這三個體系並不是孤立存在的,而是可以相融互補的。
由上圖所示IPD關注整個產品的開發管理,包括市場、開發(軟件、硬件)、結構、生產、採購、財務等各個方面,CMMI/Agile流程關注其中的軟件研發過程的管理,CMMI是在研發過程中走瀑布模型,而敏捷是走版本迭代的模式。
所以如何建設自己的研發體系,並沒有標準的答案,而要關注自己團隊的發展階段、規模大小、業務形態,根據上面三個體系的指導,建立一個適合自己發展研發體系。而且研發體系也不是一成不變的,也要根據業務的變化不斷的迭代調整,以符合業務發展的需要。
#專欄作家#菜根老譚,微信公眾號:CGLT_TAN,人人都是產品經理專欄作家。經歷程序員、技術Leader、產品經理、研發Leader等多種崗位。關注醫療,早教領域,擅長企業IT架構及互聯網產品架構。
本文原創發佈於人人都是產品經理。未經許可,禁止轉載
題圖來自Unsplash,基於CC0協議