六西格瑪、精益制造、IPD、敏捷開發(fā)等先進方法幫助過很多企業(yè)提升產(chǎn)品研發(fā)速度、企業(yè)管理水平。然而時過境遷,到了互聯(lián)網(wǎng)+時代,當傳統(tǒng)企業(yè)想要研發(fā)互聯(lián)網(wǎng)+產(chǎn)品的時候,發(fā)現(xiàn)以上先進方法似乎都不再奏效,甚至會阻礙新產(chǎn)品的研發(fā)。是這些方法真的失效了,還是我們用錯了地方?讓我們一起回顧一下這些方法,再作評判。
我將從產(chǎn)生時間、來源企業(yè)、產(chǎn)生原因、核心目標、方法論、局限性等六個方面對四種方法來進行剖析。
敏捷開發(fā)(Agile Development)
產(chǎn)生時間:2001
來源企業(yè):敏捷宣言(2001年2月由17位當時稱之為“輕量級方法學家”所編寫簽署的)
產(chǎn)生原因:
統(tǒng)開發(fā)方法是基于客戶能夠在需求階段就給出完整、準確的需求的假設(shè),所以期望于在項目初期獲得詳細的需求,然后嚴格控制需求變更,最終完成符合需求的軟件。
但我們發(fā)現(xiàn)實際上往往需求是“涌現(xiàn)”出來的,也就是說是隨著開發(fā)的不斷進展而不斷發(fā)現(xiàn)出來的,而無法在項目初期就明確的定義它,也就是說傳統(tǒng)開發(fā)方法的基本假設(shè)是錯誤的,這一新的假設(shè)導致了敏捷方法的一系列實踐。
另外,傳統(tǒng)的軟件開發(fā)方法認為需求是可以確定,所以采用的是基于工程的開發(fā)方法,也就是說期望通過事先的詳細策劃定義開發(fā)的整個過程,而敏捷認為需求是無法在早期完全確定的,所以采用的是基于經(jīng)驗的開發(fā)方法,也就是說事先不詳細定義整個開發(fā)過程,而通過多次迭代來逼近最終目標
核心目標:
以人為本、價值驅(qū)動、減少浪費、擁抱變化、
方法論:
基于敏捷宣言的核心思想,敏捷開發(fā)產(chǎn)生了多種不同的方法流派,其中應用較廣有兩種。
Scrum
Scrum包括一系列實踐和預定義角色,是一種靈活的軟件管理過程。它提供了一種經(jīng)驗方法,可以幫助你駕馭迭代,實現(xiàn)遞增的軟件開發(fā)過程。這一過程是迅速、有適應性、自組織的,它發(fā)現(xiàn)了軟件工程的社會意義,使得團隊成員能夠獨立地集中在創(chuàng)造性的協(xié)作環(huán)境下工作。
極限編程(XP)
極限編程是由Kent Beck提出的一套針對業(yè)務需求和軟件開發(fā)實踐的規(guī)則,它的作用在于將二者力量集中在共同的目標上,高效并穩(wěn)妥地推進開發(fā)。其力圖在不斷變化的客戶需求的前提下,以持續(xù)的步調(diào),提供高響應性的軟件開發(fā)過程及高質(zhì)量的軟件產(chǎn)品。
雖然Scrum偏向管理實踐,XP偏向技術(shù)實踐,但萬變不離其中,他們都遵循著以下幾個核心方法。
1)迭代式開發(fā)。即整個開發(fā)過程被分為幾個迭代周期,每個迭代周期是一個定長或不定長的時間塊每個迭代周期持續(xù)的時間一般較短,通常為一到六周。
2)增量交付。產(chǎn)品是在每個迭代周期結(jié)束時被逐步交付使用,而不是在整個開發(fā)過程結(jié)束的時候一次性交付使用。每次交付的都是可以被部署到用戶應用環(huán)境中被用戶使用的、能給用戶帶來即時效益和價值的產(chǎn)品。
3)開發(fā)團隊和客戶反饋推動產(chǎn)品開發(fā)。敏捷開發(fā)方法主張客戶能夠全程參與到整個開發(fā)過程中。這使需求變化和客戶反饋能被動態(tài)管理并及時集成到產(chǎn)品中。同時,團隊對于客戶的需求也能及時提供反饋意見。
4)持續(xù)集成。新的功能或需求變化總是盡可能頻繁地被整合到產(chǎn)品中。一些項目是在每個迭代周期結(jié)束的時候集成, 有些項目則每天都在這么做。
5)開發(fā)團隊自我管理。擁有一個積極的、自我管理的、具備自由交流風格的開發(fā)團隊,是每個敏捷項目必不可少的條件。人是敏捷開發(fā)的核心。敏捷開發(fā)總是以人為中心建立開發(fā)的過程和機制,而非把過程和機制強加給人。
局限性:
1.對人要求很高,難于掌握
敏捷開發(fā)與IPD一樣都是在解決產(chǎn)品研發(fā)的問題。只不過敏捷開發(fā)是從軟件領(lǐng)域開始的,所以在軟件研發(fā)上應用較多,而后引入到部分可編程硬件領(lǐng)域。它與之前的三種方法最大的不同是,它從以“流程”為核心轉(zhuǎn)變成以“人”為核心。這是研發(fā)方法從工業(yè)領(lǐng)域轉(zhuǎn)向到高科技領(lǐng)域的一個重要標準。前者是以機器為核心的,把人當做資源看待,努力將人的工作標準化可替代,因此需要靠精心設(shè)計的流程保證其高速運轉(zhuǎn)。后者是以智力為核心的,把人當做不可替代的核心創(chuàng)造者看待,讓工具為人服務,提升其創(chuàng)造力。因此大幅度弱化了流程,承認了人的不確定性,即承認人會犯錯,客戶會犯錯,開發(fā)者會犯錯。從靠流程、制度、評審來規(guī)避犯錯轉(zhuǎn)變成為接受錯誤,盡早發(fā)現(xiàn)盡早修正。同時承認高智商高經(jīng)驗人的產(chǎn)出是低者的上百倍,因此要為其營造高產(chǎn)的環(huán)境,即寬松的環(huán)境。這些都是與傳統(tǒng)方法相反的思維方式。
在它帶來好處的同時,也帶來了問題。敏捷開發(fā)方法因為缺乏嚴格的操作方法,過度靈活,難于掌握。這就對采用敏捷開發(fā)的企業(yè)員工提出了更高的要求。他們需要深刻理解其背后的邏輯才能夠讓方法發(fā)揮正向效用,否則會導致更低的效率,甚至混亂的狀態(tài)。這也是歷時十多年,敏捷被談多做少的原因。
不僅如此,敏捷開發(fā)本身對每個人的技能要求也極高,例如對開發(fā)人員,要求能夠具備對架構(gòu)持續(xù)重構(gòu),保持簡單,這都是需要很高的技術(shù)修養(yǎng)才能做到的。同時要求團隊要能夠做到“自組織”,即“團隊是一個整體,沒有角色之分、職位之分、也沒有高下之分。團隊成員的任務不是項目經(jīng)理強加于身,而是根據(jù)自己的愿望和能力對任務進行合理評估,并主動進行領(lǐng)取。被動與主動所產(chǎn)生的驅(qū)動力顯然不可同日而語?!边@是非常理想的狀態(tài),幾乎沒有企業(yè)能夠做到一點。然而這卻是很多敏捷方法的基礎(chǔ),這便造成敏捷開發(fā)落地的很多難題。
2.以項目交付為主命題
敏捷開發(fā)產(chǎn)生是源于企業(yè)軟件交付的諸多難題,比如變更、緩慢、高成本等。這類交付大多以項目形式組織、以產(chǎn)品為結(jié)果。
項目有兩個核心特征“為客戶服務”、“一次性”。
項目的發(fā)起是從客戶需求出發(fā)的,這隱含了客戶必定是存在的,而且是明確的,通??蛻羰且粋€人或一個公司的需求提出人。通常是一對一服務的。他們的需求一般也是明確的,至少方向是明確的。
但這并不是用于產(chǎn)品研發(fā)。產(chǎn)品通常是自主研發(fā)的,它是有企業(yè)對市場的分析,洞察出一個普遍性需求,進而研發(fā)出產(chǎn)品,然后尋找購買者進行銷售。通常是一對多服務的。因為面對大量用戶,他們會存在各種各樣的個性化需求,因此便不能想做項目一樣有明確的需求,這就需要主創(chuàng)者對產(chǎn)品方向進行判斷和把控。
所以敏捷開發(fā)中“客戶合作”、“客戶現(xiàn)場”等都是對客戶重要性的確認,一旦客戶不存在,例如自主產(chǎn)品研發(fā)早期還沒有用戶的時候,需求的挖掘、產(chǎn)品的驗收就都成了問題。
項目一般是為一個確定目標所完成的一次性活動,所以項目是以客戶驗收為結(jié)束標志的。然而產(chǎn)品因為存在大量用戶,它是持續(xù)交付的過程,再加上產(chǎn)品的更新?lián)Q代,還需要對老用戶進行升級。
敏捷開發(fā)中強調(diào)“客戶驗收”的重要性,要求與客戶頻繁驗收,從而盡早發(fā)現(xiàn)問題,盡早調(diào)整,減少返工浪費,同時收斂項目范圍。但這并不是用于產(chǎn)品,因為產(chǎn)品的功能是越做越多的,不斷發(fā)散,同時還無法快速與用戶驗收,甚至無法驗收,因為用戶太多,不知道以誰為準,或者用戶拒絕對未成形產(chǎn)品驗收。這都讓敏捷開發(fā)更多的局限在項目交付范疇之內(nèi)。
方法并無好壞之分,也無過時之說。方法只存在適不適用。通過系統(tǒng)性回顧各種方法的背景、理念和方法,可以很清楚看到各種方法的適用性。它們都在他們所擅長的領(lǐng)域發(fā)揮著巨大的作用。
同時,我們也發(fā)現(xiàn)方法不是孤立存在的,它們之前有著很多共性。
四種方法都在努力服務客戶,以客戶為中心。
六西格瑪和精益都在追求完美。
敏捷和精益都在努力減少浪費。
六西格瑪和敏捷都強調(diào)質(zhì)量內(nèi)建。
IPD和敏捷都以人為核心。
正確的事情總是殊途同歸。方法也不例外。在相同的處境下遇到相同的問題,最有的辦法總是非常相似。與之相反的是,錯誤的方法卻千差萬別。
但當處境和問題發(fā)生變化的時候,一部分方法就會失效。比如互聯(lián)網(wǎng)+產(chǎn)品帶來的變化:
以用戶為中心,而非客戶。
從不確定性出發(fā),而非確定性。
主導產(chǎn)品,而非交付項目。
追求體驗,而非質(zhì)量。
追求容錯,而非完美。
追求創(chuàng)新,而非執(zhí)行。
所有這些都在呼喚新的方法產(chǎn)生——“極速產(chǎn)品研發(fā)”。
■作者簡介:艾永亮(個人微信公眾號:ALS111222333),互聯(lián)網(wǎng)+領(lǐng)先思想者與實干者,《騰訊之道》作者,《極速產(chǎn)品研發(fā)》方法創(chuàng)立者;TII互聯(lián)網(wǎng)+咨詢董事長,步步高、美的、深交所、華為、順豐等企業(yè)互聯(lián)網(wǎng)+轉(zhuǎn)型導師,前騰訊首席敏捷管理教練。
聯(lián)系客服