產(chǎn)品經(jīng)理應(yīng)該了解的敏捷常識

導(dǎo)讀:敏捷是目前業(yè)界最流行的軟件開發(fā)模式删性,尤其是在互聯(lián)網(wǎng)公司蹬挺,作為產(chǎn)品經(jīng)理應(yīng)該要了解一些敏捷常識,以方便與開發(fā)團(tuán)隊交流溯泣。

一千個人心中有一千個哈姆雷特垃沦,每個人對敏捷的理解也可能會各不相同肢簿。你心中的敏捷是什么樣子的池充?請用一些詞語描述收夸,把它們寫在紙條上咱圆。等看完本文序苏,再回顧它們忱详,可能會有收獲匈睁,歡迎評論交流航唆。

敏捷的發(fā)展歷程

敏捷起源

很多人以為CMMI是傳統(tǒng)方法,而敏捷是很潮粪狼、很酷的新方法再榄。其實不然,需要澄清一點:敏捷不是很新的方法剑按。第1個有記載的使用敏捷方法(迭代和增量開發(fā))的項目吕座,是在上世紀(jì)七十年代吴趴,為美國第一艘三叉戟潛艇開發(fā)的指揮和控制系統(tǒng)锣枝。整個系統(tǒng)一百萬行代碼供鸠,非常成功楞捂。

敏捷比CMM更早

1977年就有介紹敏捷方法的書寨闹,同時也有敏捷的實踐繁堡。而SEI(卡耐基大學(xué)軟件工程研究所)在1984年才成立椭蹄,1987年才開始研究CMM绳矩,1991年才發(fā)布CMM1.0翼馆。

看到這里很驚訝吧写妥?敏捷的歷史其實比CMM還要長珍特。敏捷早出現(xiàn)了扎筒,但發(fā)展緩慢嗜桌,長時間不成體系骨宠、不成主流桦卒。在CMM高速發(fā)展的時代方灾,敏捷很長時間里仍默默無聞裕偿。直到2001年嘿棘,第一本敏捷開發(fā)的專著《敏捷軟件開發(fā)》才出現(xiàn)蔫巩。

軟件過程的重與輕

關(guān)于軟件過程的重與輕,CMM曾經(jīng)是這樣看自己的

重量級選手

然后又是這樣看敏捷的

輕量級選手

2000年以后,敏捷隨著互聯(lián)網(wǎng)的高速發(fā)展也快速興起歪沃。而2010年以前嫌松,CMMI為代表的重量級軟件開發(fā)方法仍然是主流液走。2010年是一個分水嶺贾陷,敏捷的流行程度開始超過CMMI巷懈。

敏捷是這樣看CMMI的:

軟件開發(fā)不能承受之重

敏捷是這樣看自己的:

敏捷的春天

2001年敏捷宣言發(fā)布顶燕,才宣告敏捷的春天來了愉适。敏捷宣言實際上就是屌絲們的武林大會宣言癣漆。

為什么敏捷很長時間沒有發(fā)出自己的聲音惠爽?因為敏捷是屌絲。

我們來看看瞬哼,敏捷宣言的發(fā)起者是些什么人婚肆?

全部是單槍匹馬的民間屌絲,沒有一個機(jī)構(gòu)坐慰。當(dāng)然他們都是英雄——屌絲中的戰(zhàn)斗機(jī)较性。

再回想一下:CMM的發(fā)起者是誰?SEI结胀。SEI是美國國防部資助成立的赞咙,是官方組織,CMM項目一直拿著官方大把的鈔票糟港。而且,CMM頒布后是作為甲方招標(biāo)的標(biāo)準(zhǔn)颠放,誰敢不聽省有,還不想中標(biāo)了不是舷蟀。所以魔策,CMM是官二代和富二代政敢,與敏捷這種屌絲不一樣访锻。

后來,時代不一樣了,互聯(lián)網(wǎng)2.0時代來了旭斥,得屌絲者得天下。

屌絲們的春天來了熙揍,敏捷翻身了有梆,日益蓬勃發(fā)展起來痰催。

敏捷成為主流

據(jù)統(tǒng)計到2008年,歐美軟件企業(yè)中有近半采用敏捷進(jìn)行開發(fā)。2010年左右,采用敏捷的軟件組織早已過半衩匣,敏捷成為主流柄延。

人紅是非就多滤奈!在敏捷大流行的時候,關(guān)于敏捷的論戰(zhàn)也開始多起來,誰都想爭武林正統(tǒng):Scrum聯(lián)盟和LEAN聯(lián)盟,暫時Scrum更勝一籌啄枕,因為它的商業(yè)化運作得更好。

SEI也不甘示弱漓糙,2010年發(fā)布CMMI-v1.3,這個版本更加開放漾根,把敏捷最佳實踐也納入規(guī)范框架(沒辦法僵井,敏捷太火了)形葬。

關(guān)于CMMI的內(nèi)容,參見我的另一篇文章《產(chǎn)品經(jīng)理應(yīng)該熟悉的CMMI模型》。

敏捷宣言

敏捷武林大會

有一些人一直在探索犁享,期望找出一種輕量級的、夠用的伸刃、能自我改進(jìn)的方法論。他們就是敏捷的發(fā)起人激捏。2001年2月11日蚤吹,在美國猶他州雪鳥滑雪圣地的一間小屋中,由Kent?Beck背犯、Alistair Cockburn、Martin Flower等17位輕量級軟件方法專家成立了“敏捷聯(lián)盟”寄症,發(fā)布了《敏捷軟件開發(fā)宣言》甜橱。Agile這個詞正式用于描述敏捷軟件開發(fā),代替輕量級軟件方法驶冒。

<穿插一點小故事:Martin Fowler的故事>

敏捷宣言里最重要的一句話是這句:“我們一直在實踐中尋找更好的軟件開發(fā)方法涕烧,身體力行的同時也幫助他人阀参『漳#”

隨著時代的進(jìn)步和技術(shù)的發(fā)展诬像,敏捷方法必然會被更先進(jìn)的方法淘汰柏肪,但它的精神永存溃论。推薦閱讀:敏捷已死

敏捷方法

敏捷不是一種方法論贼涩,而是一套價值觀。敏捷宣言從一開始就是多種方法論的求同存異豪硅,是一個相互妥協(xié)的產(chǎn)物。所以餐胀,符合敏捷價值觀的方法都可以歸入敏捷方法伟叛,它是一堆方法論学搜,而不是一種方法論。

敏捷方法很多都是經(jīng)驗主義栽惶。它們有一些公認(rèn)的特征幔亥,例如:迭代和增量開發(fā);以人為核心;及時交付等巴比。

敏捷價值觀

當(dāng)時正在學(xué)習(xí)或正在實踐敏捷開發(fā)的開發(fā)者們奸远,經(jīng)常關(guān)心自己的團(tuán)隊或組織是否敏捷薛窥,并以此來劃分陣營或貼標(biāo)簽:你不敏捷逝钥!你是假敏捷哗咆!

我的經(jīng)驗是忍弛,不要太在意這些惠昔,少談一些價值觀,因為這容易陷入無謂的爭論挑势。有沒有敏捷镇防,不是看你是否喊著敏捷的口號,也不是看你是否用著敏捷的方法潮饱,而是看你是否取得了敏捷的實效来氧。不看口號,看療效香拉!君不見啦扬,那些高調(diào)大喊口號的互聯(lián)網(wǎng)公司或軟件公司,往往死得更快嗎凫碌?

注重實效的敏捷開發(fā)扑毡,不崇尚空談。與其坐而論道盛险,不如起而行之瞄摊!

大量喜歡談“價值觀”的公司,極少去踐行“價值觀”苦掘,大多是在耍流氓换帜。我理解的所謂敏捷價值觀,就是少談價值觀鹤啡。我們只需了解敏捷的價值觀惯驼,但我們在實踐中要少談價值觀,多談實踐論,多做少說祟牲。

敏捷是以人為本隙畜,價值驅(qū)動,消除浪費说贝。

敏捷實踐

敏捷方法

敏捷方法論都是注重實踐的方法論禾蚕。歸根到底,不在于你說了什么狂丝,要看你做到了多少。

你聽說的敏捷哗总,你理解的敏捷几颜,與真實的敏捷也許不一樣。

你有沒有按期交付可工作的軟件讯屈?如果沒有蛋哭,那你不是敏捷!

你有沒有改變溝通協(xié)作的工作方式涮母?如果需求人員谆趾、設(shè)計人員、編碼人員和測試人員叛本,甚至市場人員或客戶沪蓬,還僅僅通過文檔進(jìn)行交流,沒有面對面的溝通来候,那你不是敏捷跷叉!

敏捷方法的優(yōu)點

敏捷能提高產(chǎn)品質(zhì)量。敏捷能提高項目成功率营搅。敏捷能讓開發(fā)人員少加班云挟。敏捷能讓團(tuán)隊不寫文檔……諸如此類關(guān)于敏捷優(yōu)點的傳言,都是假的转质,“Fake News”园欣!唯有一條是真的:敏捷會讓你死得更快!從而避免了更多浪費休蟹。

主流的敏捷方法

敏捷從來沒有統(tǒng)一的方法論沸枯,而是有一組方法供大家選擇。

其中鸡挠,國內(nèi)大家用得最多的組合是Scrum+XP辉饱,被譽為敏捷實踐最佳CP,一個負(fù)責(zé)管家(敏捷項目管理)拣展,另一個負(fù)責(zé)打拼(敏捷工程實踐)彭沼。

Scrum簡介

Scrum的原意是橄欖球運動的一個專業(yè)術(shù)語,表示“爭球”的動作备埃。

一個開發(fā)流程取名為Scrum姓惑,想必發(fā)明者是希望開發(fā)團(tuán)隊在開發(fā)項目時像打橄欖球一樣打了雞血褐奴,人人你爭我搶地完成工作任務(wù)。

Scrum是一個基于團(tuán)隊進(jìn)行復(fù)雜系統(tǒng)和產(chǎn)品開發(fā)的框架于毙。
——Scrum聯(lián)盟

Scrum角色

Scrum有三個角色:

產(chǎn)品負(fù)責(zé)人(Product Owner敦冬,PO):負(fù)責(zé)確定產(chǎn)品的需求和優(yōu)先級,確定故事的完成標(biāo)準(zhǔn)唯沮,確定版本發(fā)布計劃和交付內(nèi)容脖旱,通常由產(chǎn)品經(jīng)理擔(dān)任。

管理員(Scrum Master):負(fù)責(zé)整個Scrum團(tuán)隊按流程順利實施介蛉,以及清除擋在客戶和開發(fā)工作之間的溝通障礙萌庆,使得客戶可以直接驅(qū)動開發(fā)。

開發(fā)團(tuán)隊(Scrum Team):負(fù)責(zé)軟件產(chǎn)品在的開發(fā)工作币旧,建議人數(shù)控制在5-9人践险,每個成員負(fù)責(zé)不同的技術(shù)方面但可以相互備份,要求成員要有較強(qiáng)的自我管理能力吹菱。

龍舟團(tuán)隊

Scrum里的角色用龍舟團(tuán)隊里的角色來比喻最形象:PO是龍舟尾部的舵手巍虫,他是部隊主官,他掌控著龍舟的方向鳍刷;Scrum Master是龍舟頭部的鼓手占遥,他是部隊政委,他通過鼓點聲協(xié)調(diào)團(tuán)隊的節(jié)奏倾剿;Scrum Team是龍舟的槳手筷频,保持著節(jié)奏劃船,他們知道團(tuán)結(jié)一致的步驟是保持團(tuán)隊?wèi)?zhàn)斗力的關(guān)鍵前痘。

Scrum模型

Scrum的開發(fā)過程很像工廠的生產(chǎn)過程:工廠生產(chǎn)時凛捏,根據(jù)生產(chǎn)線的月產(chǎn)量(Scrum的周期也通常是一個月),從產(chǎn)品訂單中按優(yōu)先級選取一定量的訂單進(jìn)行生產(chǎn)芹缔。生產(chǎn)線上每天早晨開例會坯癣,月初計劃會議上“打雞血”,月末總結(jié)會議上算成績?nèi)缓蟊頁P或批評最欠。

Sprint原意是一次短距離的沖刺示罗,這里指的是一次迭代開發(fā)過程,一次迭代的周期Scrum建議是2-4周芝硬,最好保持固定蚜点。

Scrum會議

Scrum會議是Scrum主要的交流溝通方式,有三種類型的會議:

1)每日站會(Daily Scrum Meeting):每天都要開的會議拌阴,要求簡短高效?绍绘,所以不能坐著而要站著開會,而且會議時間控制在15分鐘以內(nèi)。每個人輪流發(fā)言陪拘,只說三件事:我昨天完成了什么厂镇;我遇到了什么障礙;我今天計劃要完成什么左刽。每個人說完后捺信,在任務(wù)看板前更新自己的任務(wù)貼紙。

任務(wù)墻

2)Sprint計劃會議(Sprint Planning Meeting):從產(chǎn)品訂單(Backlog) 中按優(yōu)先級挑選出若干故事作為本次迭代要完成的內(nèi)容欠痴。在計劃會議上可以調(diào)整故事的估計點數(shù)迄靠,可以修正故事的描述等。

3)Sprint演示和回顧會議(Sprint Review Meeting and Retrospective Meeting):這是兩個會議喇辽,但通常在一起開梨水。Sprint Review Meeting(演示會議,也叫評審會議)茵臭,產(chǎn)品負(fù)責(zé)人和客戶(客戶代表)都要參加,開發(fā)團(tuán)隊要演示自己完成的軟件產(chǎn)品供與會者評審舅世。Sprint Retrospective Meeting(回顧會議旦委,也叫總結(jié)會議)團(tuán)隊成員輪流發(fā)言,說出自己認(rèn)為做得好的地方和需要改進(jìn)的地方雏亚,然后大家投票選出需要改進(jìn)的地方(一次不要超過三點)缨硝,討論改進(jìn)措施,在下一個迭代中實施罢低。

后話:Scrum的一些問題在實踐中受到一些團(tuán)隊的詬病查辩,Kanban方法以其更靈活和更簡便的優(yōu)點正有日益代替Scrum的趨勢。

XP簡介

極限編程方法論可以說是敏捷聯(lián)盟中最鮮艷的一面旗幟网持,也是被研究宜岛、嘗試、應(yīng)用功舀、贊揚萍倡、批判最多的一種方法論,也是相對來說最成熟的一種辟汰。極限編程的主要目標(biāo)是降低因需求變更而帶來的成本列敲,比較適合小團(tuán)隊開發(fā)。

極限編程(ExtremeProgramming帖汞,簡稱XP)是Kent Beck在1996年提出的一種軟件開發(fā)方法戴而,是最富有成效的幾種敏捷方法學(xué)之一。極限編程和傳統(tǒng)軟件開發(fā)方法學(xué)的本質(zhì)不同在于它更強(qiáng)調(diào)可適應(yīng)性翩蘸,Kent Beck把它叫做“擁抱變化”所意。

關(guān)于極限編程的價值觀與敏捷的價值觀類同,這里不贅述,請查閱相關(guān)圖書扁眯。

極限編程由一系列簡單卻互相依賴的實踐組成:

極限編程實踐

這十三個實踐壮莹,開發(fā)組織可以根據(jù)自己的情況,選擇一些實踐來實施姻檀,不要急于求成命满,不要期望一步到位,應(yīng)該是漸進(jìn)式的改進(jìn)绣版。不要指望有哪個團(tuán)隊可以把這十三個實踐都施行得富有成效胶台,因為每個團(tuán)隊的能力和組成不一樣,面臨的業(yè)務(wù)情況也不一樣杂抽。實施極限編程的團(tuán)隊诈唬,應(yīng)該把那些施行得富有成效的XP實踐強(qiáng)化再強(qiáng)化,爭取做到極致缩麸,而放棄或弱化那些自己團(tuán)隊不擅長或沒有成效的實踐铸磅,這也是“極限”的一個解釋,即揚長避短杭朱。

以內(nèi)圈實踐為例:

結(jié)對編程(Pair Programming):由兩個開發(fā)人員結(jié)成對子一起完成工作任務(wù)阅仔。結(jié)對的方式多種多樣,可以使用領(lǐng)航員模式(一個寫代碼弧械,另一個評審)八酒,也可以使用乒乓球模式(一個寫測試代碼,另一個寫實現(xiàn)代碼)刃唐。結(jié)對編程的關(guān)鍵在于羞迷,要間隔一段時間后互換角色,因為一直被另一個人盯著寫代碼是高度緊張的画饥,感覺像監(jiān)工下的工作衔瓮,而且可怕的是這個監(jiān)工只盯你一個人。現(xiàn)實中極少有團(tuán)隊全程使用結(jié)對編程抖甘,因為成本太高了报辱。但是,針對核心代碼或難點代碼的開發(fā)使用結(jié)對編程单山,仍然是非常有價值的碍现。另外,針對新人的傳幫帶使用結(jié)對編程非常有效果米奸,這樣做有利于知識在團(tuán)隊中的傳遞昼接。

測試驅(qū)動開發(fā)(Test-Driven Development,TDD):先寫出測試代碼悴晰,然后完成實現(xiàn)代碼慢睡,要求恰好滿足測試代碼即可逐工。一定要注意恰好二字,可以避免過度設(shè)計漂辐,減少代碼不必要的復(fù)雜度泪喊。

重構(gòu)(Refactoring):隨著開發(fā)的進(jìn)展,特性添加了一個又一個髓涯,Bug處理一個又一個袒啼,代碼結(jié)構(gòu)會逐漸地退化,所以需要我們經(jīng)常性的進(jìn)行重構(gòu)纬纪,以防止技術(shù)債務(wù)累積蚓再。重構(gòu)是持續(xù)的、不定時的活動包各。

簡單設(shè)計(Simple Design):極限編程推薦設(shè)計要盡量的簡單摘仅,只考慮恰好能夠工作的最簡單的方案。

推薦擴(kuò)展閱讀:

[1] 敏捷軟件開發(fā)(原書第2版)问畅,Alistair Cockburn娃属,機(jī)械工業(yè)出版社,2008年01月

[2]?Scrum敏捷項目管理實戰(zhàn)护姆,Ken Schwaber膳犹,清華大學(xué)出版社,2000年01月

[3] 解析極限編程——擁抱變化(原書第2版)签则,Kent Beck,機(jī)械工業(yè)出版社铐料,2011年09月

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末渐裂,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子钠惩,更是在濱河造成了極大的恐慌柒凉,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件篓跛,死亡現(xiàn)場離奇詭異膝捞,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)愧沟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進(jìn)店門蔬咬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人沐寺,你說我怎么就攤上這事林艘。” “怎么了混坞?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵狐援,是天一觀的道長钢坦。 經(jīng)常有香客問我,道長啥酱,這世上最難降的妖魔是什么爹凹? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮镶殷,結(jié)果婚禮上禾酱,老公的妹妹穿的比我還像新娘。我一直安慰自己批钠,他們只是感情好宇植,可當(dāng)我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著埋心,像睡著了一般指郁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拷呆,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天闲坎,我揣著相機(jī)與錄音,去河邊找鬼茬斧。 笑死腰懂,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的项秉。 我是一名探鬼主播绣溜,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼娄蔼!你這毒婦竟也來了怖喻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤岁诉,失蹤者是張志新(化名)和其女友劉穎锚沸,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涕癣,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡哗蜈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了坠韩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片距潘。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖只搁,靈堂內(nèi)的尸體忽然破棺而出绽昼,到底是詐尸還是另有隱情,我是刑警寧澤须蜗,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布硅确,位于F島的核電站目溉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏菱农。R本人自食惡果不足惜缭付,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望循未。 院中可真熱鬧陷猫,春花似錦、人聲如沸的妖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嫂粟。三九已至娇未,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間星虹,已是汗流浹背零抬。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留宽涌,地道東北人平夜。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像卸亮,于是被迫代替她去往敵國和親忽妒。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,689評論 2 354