摘要:敏捷是什么?為什么要使用敏捷項(xiàng)目管理?下面是PM創(chuàng)造營(yíng)談?wù)摰木唧w內(nèi)容,更多PMP®考試相關(guān)資訊可關(guān)注希賽網(wǎng)。
分享嘉賓:大懶
大家晚上好,有幸接受這個(gè)邀請(qǐng),去給大家說(shuō)一說(shuō),就是關(guān)于敏捷的事情,敏捷這點(diǎn)兒東西呢,我其實(shí)也是一個(gè)失敗者。但是呢,在失敗的過(guò)程里面也找到了一些正確的方法,希望能通過(guò)這個(gè)機(jī)會(huì)呢,把更多的信息告訴大家。
1、什么是敏捷
很多老板在選擇用怎樣的開發(fā)模型去開發(fā),特別是開發(fā)軟件的時(shí)候,總有這樣一個(gè)誤區(qū)。我們使用了敏捷方法之后,可以更快的去交付產(chǎn)品,可以縮短產(chǎn)品研發(fā)的生命周期,可以節(jié)省成本。這個(gè)理解是有偏差的。
首先給大家說(shuō)明這個(gè)問(wèn)題,敏捷不一定會(huì)很快。
為什么不一定會(huì)很快呢?假設(shè)我們是一種迭代開發(fā)的模式,我們用很多的迭代去開發(fā)同一個(gè)產(chǎn)品,大家想象一下,是不是每一個(gè)迭代里邊都會(huì)有一個(gè)小瀑布呢,那么在每一個(gè)迭代里面的測(cè)試,開發(fā),設(shè)計(jì),這些環(huán)節(jié)是不是都要重新再來(lái)一遍呢,所以說(shuō)敏捷,它不是一個(gè)能夠更快交付的模型,而是一個(gè)能夠更頻繁交互的模型。
第二,敏捷不一定會(huì)節(jié)省成本。
其實(shí)明確的說(shuō),敏捷這件這種行為是非常昂貴的,這與他的研發(fā)模式和行為方式有關(guān)系。待會(huì)講到敏捷需要一個(gè)什么樣的團(tuán)隊(duì),敏捷會(huì)需要什么樣的測(cè)試方法,或者是成本核算方法。包括風(fēng)險(xiǎn)識(shí)別方法,包括需求控制的方法,對(duì)這些方法的使用過(guò)程里面可能會(huì)產(chǎn)生額外的成本。而這些成本會(huì)造成敏捷的成本相對(duì)增加。
但是呢,敏捷不是為了節(jié)省成本和快速開發(fā)縮短開發(fā)周期而誕生的。
2、為什么要使用敏捷
我介紹一下這個(gè)敏捷模型,這個(gè)模型能很好的告訴我們,為什么要使用敏捷去解決問(wèn)題。
這個(gè)東西就叫Stacey矩陣,或者叫Stacey模型。
這個(gè)模型里面分四個(gè)部分,一部分叫Simple,just do it。第二部分叫Complicated,然后空白的部分叫complex,右上角那個(gè)我把它叫混沌,混沌的問(wèn)題咱們不去討論,實(shí)際上我們?cè)谲浖_發(fā)里面,要做的事情就是三體里面講的,叫降維打擊。
在這個(gè)過(guò)程里,我們將復(fù)雜的東西劃到一個(gè)相對(duì)簡(jiǎn)單的區(qū)域去解決。然而呢,對(duì)于一些很復(fù)雜的情況,比如說(shuō),我們需求很不確定,我們也不確定用什么方法去做這些事,我們就用敏捷方法去做。敏捷方法是什么呢,就是持續(xù)學(xué)習(xí),持續(xù)迭代,持續(xù)規(guī)劃這樣一個(gè)方法。
這是一個(gè)實(shí)用的非預(yù)定義過(guò)程。
有同學(xué)問(wèn),敏捷項(xiàng)目和傳統(tǒng)項(xiàng)目的區(qū)別,如何進(jìn)行混合應(yīng)用,相互取長(zhǎng)補(bǔ)短?傳統(tǒng)項(xiàng)目即預(yù)測(cè)型項(xiàng)目。
我們?cè)陬A(yù)測(cè)性的項(xiàng)目里,做的事情是這樣的。首先有一個(gè)發(fā)起人,然后我們做一個(gè)詳細(xì)的計(jì)劃,然后強(qiáng)制團(tuán)隊(duì),或者說(shuō)責(zé)令團(tuán)隊(duì)按計(jì)劃去進(jìn)行,然后在中間控制變更,按規(guī)定測(cè)試,結(jié)項(xiàng)等等,最后交付產(chǎn)品。
然而,敏捷不是這樣的,一個(gè)敏捷軟件的開發(fā)往往在敏捷初期,是不會(huì)預(yù)見到幾個(gè)迭代之后的軟件需求的。它往往是,以最小可行性產(chǎn)品,MVP,去交付給客戶。也就是說(shuō)我們用最基本的模型,最基本的能用的東西給客戶去用,從而不斷的得到客戶的反饋,不停的迭代,改進(jìn),或者重構(gòu)。這就是擁抱變化,或者叫檢查和適應(yīng),敏捷和傳統(tǒng)項(xiàng)目的一個(gè)比較好的區(qū)別的詮釋。
所以敏捷,其實(shí)是一種輕量型的,最開始確實(shí)是用在軟件上的,軟件開發(fā)原則。它是一種方法,一種思想,是一種迭代的研發(fā)模式,而且是增量的,是一種一定時(shí)間盒的,以價(jià)值為中心的。
敏捷是一種適應(yīng)復(fù)雜情況、不靠譜客戶的,一種持續(xù)學(xué)習(xí),持續(xù)增量的迭代模型。
敏捷有一個(gè)特別著名的東西叫做敏捷軟件開發(fā)宣言,這個(gè)當(dāng)時(shí)在2001年發(fā)布的時(shí)候,推動(dòng)了硅谷的一個(gè)改革。
http://agilemanifesto.org/iso/zhchs/manifesto.html
敏捷宣言里面提到了四點(diǎn)價(jià)值觀,這四點(diǎn)價(jià)值觀大家看看就行了。他最重要的一句話,盡管右向有其價(jià)值,我們更重視左向的價(jià)值。說(shuō)白了就是,你一切從客戶出發(fā),一切從變化出發(fā),一切從成果出發(fā),一切從價(jià)值出發(fā),比你那些花里胡哨,按規(guī)定來(lái)的這些東西,更有價(jià)值。
它是一種價(jià)值觀,也代表了這一幫人的一種處事方式。
3、 敏捷Scrum框架
下面介紹一些敏捷的方法,因?yàn)樗且环N價(jià)值觀,是一種思想,所以說(shuō)有很多大牛,開發(fā)了一系列敏捷框架。
目前有有記載的,著名的敏捷框架有30多種,非著名的那可能好幾百種都有。今天主要介紹就是那朵云彩,Scrum框架。
Scrum框架是在當(dāng)今的軟件開發(fā)界里面應(yīng)用得比較廣的一種框架,也是國(guó)內(nèi)能看到的,大多數(shù)的敏捷在線項(xiàng)目管理工具的范本。
目前這個(gè)框架呢,有一個(gè)叫Scrum聯(lián)盟的組織,在負(fù)責(zé)維護(hù)和管理。這個(gè)組織,每年會(huì)有一些認(rèn)證,每年開一些會(huì)議,會(huì)定期地去更新這個(gè)框架。最新的這個(gè)框架A4紙打印出來(lái)只有27頁(yè)。大家可以看到其實(shí)沒有什么內(nèi)容,里面寫的就是一些原則和方法。
Scrum框架的思想來(lái)源于一個(gè)著名的思想叫精益思想,這個(gè)思想是豐田在上世紀(jì)80年代提出來(lái)的。這個(gè)思想有兩個(gè)重點(diǎn),一個(gè)叫,respect people,尊重人;另外一個(gè)叫Continuous improvement,也就是持續(xù)改進(jìn)。實(shí)際Scrum框架也是秉承的這樣的原則。
Scrum框架大概是長(zhǎng)這個(gè)樣子的。它里面有一個(gè)3355的原則,就是三種角色,三種工件,五個(gè)會(huì)議,五條核心價(jià)值觀。
1.第一個(gè)"3"
左上角這三個(gè)圈兒就是我們所說(shuō)的這個(gè)3355中的第一個(gè)3就是三種角色,在Scrum這個(gè)框架里面我們會(huì)給團(tuán)隊(duì)分配這三類角色,第一類叫Scrum master,不是一類啊,這是一個(gè)人;第二類叫產(chǎn)品負(fù)責(zé)人Product Owner;第三類叫團(tuán)隊(duì),Team。
Scrum master在這里不是項(xiàng)目經(jīng)理的意思,他更像是這個(gè)團(tuán)隊(duì)的保姆,他要負(fù)責(zé)整個(gè)團(tuán)隊(duì)的鼓勵(lì)工作,為團(tuán)隊(duì)服務(wù),給團(tuán)隊(duì)提供理論支持,引導(dǎo)團(tuán)隊(duì)。更像是教練的一個(gè)工作。
Product Owner是這個(gè)Scrum團(tuán)隊(duì)里邊兒一個(gè)經(jīng)過(guò)授權(quán)的人,他負(fù)責(zé)的是整個(gè)產(chǎn)品。整個(gè)產(chǎn)品開發(fā)做什么,不做什么,哪一部分在哪個(gè)時(shí)間點(diǎn)交付的這個(gè)工作,也就是說(shuō),負(fù)責(zé)構(gòu)建產(chǎn)品待辦列表。
在Scrum里頭,這個(gè)團(tuán)隊(duì)是近似于全功能的跨職能團(tuán)隊(duì),其實(shí)敏捷對(duì)團(tuán)隊(duì)的要求是非常高的,這也是他成本高比較貴的原因之一。
舉個(gè)簡(jiǎn)單的例子,我們可能會(huì)在敏捷團(tuán)隊(duì)里面要求產(chǎn)品開發(fā)人員去編寫測(cè)試用例,甚至是去執(zhí)行這樣的測(cè)試用例。甚至是我們測(cè)試人員也要去寫這種行為分析用例,要寫代碼。所以說(shuō)最理想的Scrum團(tuán)隊(duì)的Team,每一個(gè)人都應(yīng)該是通才。
上面這一段就解決了“常用的敏捷架構(gòu)是什么樣的,團(tuán)隊(duì)是什么樣的”這個(gè)問(wèn)題。其實(shí)我覺得任何一個(gè)團(tuán)隊(duì)都有可能會(huì)去變?nèi)マD(zhuǎn)化成自己的團(tuán)隊(duì),只要你有合理的配置,然后一個(gè)足夠能引導(dǎo)你進(jìn)入敏捷開發(fā)空間的這樣一個(gè)人就可以了。
2.第二個(gè)"3"
Scrum的3355的第二個(gè)3也就是三個(gè)工件。
①第一個(gè)工件,叫產(chǎn)品待辦列表(Product Backlog),它其實(shí)有點(diǎn)兒像我們現(xiàn)在產(chǎn)品開發(fā)中講的需求池的概念,通常來(lái)講,我們會(huì)把所有需求一股腦的扔到這個(gè)列表中去,但是這個(gè)列表會(huì)有一個(gè)與傳統(tǒng)的需求池不一樣的地方。這個(gè)列表里面所有的需求,都是有價(jià)值的,有次序的。
②通過(guò)我們價(jià)值的體現(xiàn),包括我們對(duì)它的排序。我們就會(huì)得出這樣一個(gè)結(jié)論,我們應(yīng)該先做什么,后做什么,于是就有了第二個(gè)東西,我們叫做Sprint backlog,這個(gè)東西,翻譯成中文就是沖刺待辦事項(xiàng)。
③然后我們看第三個(gè)工件,在那個(gè)大圓圈右邊兒,叫潛在可交付產(chǎn)品增量,這個(gè)東西大致的意思是,我們?cè)谧霎a(chǎn)品的時(shí)候,是一個(gè)迭代增量的過(guò)程。
比如說(shuō)我的需求是通行,從A地到B地,我們傳統(tǒng)的做法是定一個(gè)需求,這個(gè)需求可能會(huì)很大,比如造一輛汽車去進(jìn)行通行,通常在傳統(tǒng)里面,我們會(huì)先造一個(gè)輪子,再造一個(gè)底盤,然后再造一個(gè)殼兒,再往里面填充起來(lái)。
但是對(duì)于敏捷來(lái)講,不是這樣操作的。增量交付一個(gè)很好的例子就是這個(gè)通行問(wèn)題,我們先造一個(gè)滑板車,先能滿足這個(gè)用戶的需求,然后我們?cè)僭煲粋€(gè)自行車,更加的便利。然后我們?cè)僭煲粋€(gè)摩托車,最后我們?cè)僭煲粋€(gè)汽車,最終交付給客戶。
從這一點(diǎn)上我們來(lái)看,這個(gè)敏捷實(shí)際上在交付用戶的使用價(jià)值,或者說(shuō)在交付用戶的價(jià)值。
3.第一個(gè)"5"
我們?cè)谶@個(gè)敏捷里邊兒有五個(gè)會(huì),
①第一個(gè)叫Scrum計(jì)劃會(huì)議,把產(chǎn)品待辦事項(xiàng)列表里面的東西決定哪些可以在Scrum計(jì)劃會(huì)議里邊兒解決掉。
②第二個(gè)會(huì)議,我相信很多的企業(yè),很多的團(tuán)隊(duì)在做,叫做每日站會(huì)。
這個(gè)站會(huì)通常都問(wèn)什么問(wèn)題呢,我昨天做了什么,今天我要做什么,我遇到了什么問(wèn)題,通常都是這樣的對(duì)吧。但是我想告訴大家的是,大多數(shù)團(tuán)隊(duì)開這個(gè)會(huì)的時(shí)候,問(wèn)的這三個(gè)問(wèn)題都是不正確的,我們?nèi)タ丛模?/p>
第一個(gè)問(wèn)題:What did I done yesterday that helped the Development Team meet the Goal?
第二個(gè)問(wèn)題:What will I done today to help the Development Team meet the Goal?
也就是說(shuō)在敏捷開發(fā)這個(gè)環(huán)境里面,我們不會(huì)講我做一件事情,做了百分之多少,在敏捷的世界里沒有百分之幾這個(gè)概念,它只有零和一。沒完成就是零,完成了就是一。所以他的問(wèn)題會(huì)說(shuō),我為了我們團(tuán)隊(duì)的目標(biāo),昨天做了什么;我為了我的團(tuán)隊(duì)目標(biāo),今天我要完成什么。
③第三個(gè)會(huì)議叫做Sprint評(píng)審,Scrum review。這個(gè)會(huì)議就是來(lái)評(píng)價(jià)你迭代的這個(gè)產(chǎn)品,是不是可以納入到潛在可交付的產(chǎn)品增量,這還是個(gè)潛在的,還是不可交付的,經(jīng)過(guò)了這個(gè)會(huì),你能不能交付這個(gè)事兒就能定了。
④第四個(gè)會(huì)議叫Scrum回顧。希賽發(fā)過(guò)一篇文章,里面有一部分講回顧(文章后附該篇文章的鏈接)。那就是敏捷回顧的一部分,叫做帆船工作法,或者帆船回顧,有興趣可以翻回去看一看。敏捷回顧對(duì)敏捷這種活動(dòng)來(lái)講是非常重要的,應(yīng)該說(shuō)是在這幾個(gè)敏捷Scrum的活動(dòng)里面是最最重要。通過(guò)回顧,我們不但能夠找到過(guò)去的一些缺點(diǎn)和失誤,還能發(fā)現(xiàn)一些優(yōu)點(diǎn),并持續(xù)的改進(jìn)下去,這對(duì)于敏捷團(tuán)隊(duì)尤為重要,為什么呢,因?yàn)槊艚葸@件事,第二個(gè)原則就是要持續(xù)的改進(jìn)。
⑤第五個(gè)會(huì)議是一個(gè)持續(xù)的活動(dòng),這個(gè)活動(dòng)叫產(chǎn)品列表梳理。說(shuō)白了就是收集需求。因?yàn)槊艚菹鄬?duì)于傳統(tǒng)開發(fā),這個(gè)需求不是那么穩(wěn)定。但是我們講擁抱變化,我們擁抱變化,不是為了讓需求蔓延。擁抱變化,也不是為了讓項(xiàng)目鍍金,擁抱變化的意思是要讓項(xiàng)目符合用戶的價(jià)值,要讓項(xiàng)目達(dá)成既定的目標(biāo)或持續(xù)改變著的目標(biāo),我們要對(duì)這個(gè)需求做調(diào)整,這件事才叫擁抱變化。
4.第二個(gè)"5"
對(duì)于Scrum來(lái)講還有五條價(jià)值觀,專注,公開,承諾,勇氣,尊重。
4、敏捷實(shí)踐
另外給大家介紹一下敏捷實(shí)踐,敏捷實(shí)踐是很有意思的,其中有一個(gè)叫結(jié)對(duì)編程,是極限軟件開發(fā)里面的一個(gè)活動(dòng),兩個(gè)人用一臺(tái)電腦去編,一個(gè)人寫,一個(gè)人看。
這個(gè)事兒從敏捷的角度來(lái)講,是一個(gè)代碼review的過(guò)程,實(shí)際上是替代了代碼評(píng)審。
但是同時(shí)還有一個(gè)更大的價(jià)值,我們把一個(gè)初級(jí)工程師和一個(gè)高級(jí)工程師放在一起,這兩個(gè)人的水平會(huì)無(wú)限趨近,水平低的會(huì)往水平高的趨近。
Scrum指南的網(wǎng)址有很多版本,大家可以去下載看一看。https://scrumguides.org/
5、QA
Q:敏捷這一概念是否像咱們?nèi)旱目谔?hào)一樣:一切皆項(xiàng)目,是否敏捷這一概念一切都適用?
A:這個(gè)不盡然,因?yàn)?,就比如說(shuō)我們學(xué)PMP®,有個(gè)事業(yè)環(huán)境因素,意思就是每一種情況,都不一樣,團(tuán)隊(duì)也不一樣,項(xiàng)目也不一樣,實(shí)際上我們現(xiàn)在有很多的很多敏捷框架,好像可以解決各種各樣的問(wèn)題。在敏捷開發(fā)的早期,布道的老師們包括敏捷宣言的翻譯者,給人講課的時(shí)候,他說(shuō)敏捷可能會(huì)適用于產(chǎn)品開發(fā)項(xiàng)目和小團(tuán)隊(duì)開發(fā)項(xiàng)目。所以說(shuō)最初的Scrum文檔里頭,他會(huì)講你的團(tuán)隊(duì)規(guī)模要保持到七加減二。
為什么是七加減二呢,因?yàn)檫@個(gè)是有一個(gè)臨界值,大家學(xué)過(guò)溝通管理里面團(tuán)隊(duì)溝通的項(xiàng)目公式N*(N-1)/2。所以七加二,正好是一個(gè)臨界點(diǎn)。但是對(duì)于現(xiàn)在的項(xiàng)目來(lái)講,使用小團(tuán)隊(duì),小迭代已經(jīng)不能滿足很多企業(yè)的要求。比如說(shuō),網(wǎng)易阿里騰訊,大家都在用敏捷的方法開發(fā)大型項(xiàng)目。所以現(xiàn)在有很多的敏捷理論,比如說(shuō)LeSS啊,比如說(shuō)SAFe啊,這種理論會(huì)支撐著他們?nèi)プ龃笮晚?xiàng)目的敏捷。
敏捷團(tuán)隊(duì)有個(gè)行為叫自組織,就相當(dāng)于團(tuán)隊(duì)七個(gè)人,每個(gè)人都是項(xiàng)目經(jīng)理,每個(gè)人都是干活的,每個(gè)人都是測(cè)試,每個(gè)人都是各種各樣的角色。所以說(shuō)對(duì)于敏捷這件事兒來(lái)講,質(zhì)量是由整個(gè)敏捷團(tuán)隊(duì)來(lái)負(fù)責(zé),不是有哪個(gè)人去負(fù)責(zé),成果也是有整個(gè)團(tuán)隊(duì)去負(fù)責(zé)的。
Q:敏捷項(xiàng)目如何做到過(guò)程文檔規(guī)范?
A:這個(gè)事情我給大家講一個(gè)故事,我們?cè)诘谝淮蜟MMI三級(jí)評(píng)估的時(shí)候,我們把快速模型,也就是敏捷基于Scrum模型的方法融入到了CMMI的方法里面,然后對(duì)它進(jìn)行文檔規(guī)范化。但是這件事兒呢,失敗了,失敗的原因第一個(gè)團(tuán)隊(duì)問(wèn)題,第二個(gè)就是他與當(dāng)時(shí)的CMMI一些理念,是有沖突的。
那么,對(duì)于文檔規(guī)范化的問(wèn)題呢,敏捷里面有一個(gè)這樣的思想:我們所有的敏捷開發(fā)團(tuán)隊(duì)都應(yīng)該有一個(gè)信息源。這個(gè)信息源應(yīng)該是所有敏捷團(tuán)隊(duì)成員及其相關(guān)的所有成員,包括你的領(lǐng)導(dǎo)們,都能看到。信息源上應(yīng)該有項(xiàng)目里面的能夠展示的所有信息。
我舉個(gè)例子啊,如果非要把過(guò)程文檔化,我的建議是用系統(tǒng)去做,一個(gè)管理系統(tǒng)去做,用看板去做,然后呢,不要太追究這個(gè)形式,要看你文檔規(guī)范化管理的目的是什么,是要管控流程,還是要管控某一件事兒,所有的這些東西在信息源上做相應(yīng)的展示就可以了。
Q:敏捷項(xiàng)目和傳統(tǒng)項(xiàng)目的區(qū)別,如何進(jìn)行混合應(yīng)用,相互取長(zhǎng)補(bǔ)短?傳統(tǒng)項(xiàng)目即預(yù)測(cè)型項(xiàng)目。
A:這個(gè)是很多團(tuán)隊(duì),包括我在內(nèi)也在不停研究的一個(gè)事兒,我的觀點(diǎn)是這樣的,我們適當(dāng)?shù)脑趫F(tuán)隊(duì)內(nèi)推行一些敏捷的行為和活動(dòng),從而引導(dǎo)團(tuán)隊(duì)去用敏捷的思想?;蛘哒f(shuō)相對(duì)敏捷的思想去思考問(wèn)題,在團(tuán)隊(duì)層面上先建立一些敏捷或者敏捷行為的習(xí)慣。
當(dāng)然,在這個(gè)過(guò)程里面可能會(huì)比較痛苦,可能會(huì)造成效率的下降,但是這是敏捷轉(zhuǎn)型的一個(gè)必經(jīng)階段。在敏捷轉(zhuǎn)型中,授予團(tuán)隊(duì)的首先是行為,然后是理論基礎(chǔ),然后再是架構(gòu)和方法。我覺得這樣推廣比較好,團(tuán)隊(duì)也能很嚴(yán)謹(jǐn),比較能夠接受。
Q:敏捷項(xiàng)目中的風(fēng)險(xiǎn)如何識(shí)別和把控?
A:首先從傳統(tǒng)意義上來(lái)講,這些風(fēng)險(xiǎn)的來(lái)源在哪兒,作為一個(gè)項(xiàng)目來(lái)講,我們風(fēng)險(xiǎn)來(lái)源無(wú)非就那幾項(xiàng)。首先你的風(fēng)險(xiǎn)來(lái)源肯定會(huì)有一個(gè)歷史數(shù)據(jù)的風(fēng)險(xiǎn)對(duì)照表。
那對(duì)于敏捷來(lái)說(shuō),這是什么呢,還記得我們敏捷有一個(gè)回顧活動(dòng)嗎,在回顧活動(dòng)中,我們會(huì)識(shí)別一些阻礙,會(huì)識(shí)別一些暗礁,不知道暗礁是什么同學(xué),可以補(bǔ)個(gè)課https://mp.weixin.qq.com/s/wvnw56ENY0wHYLkUM6yd2Q
這是其中一個(gè)來(lái)源,另外一個(gè)來(lái)源呢,我們之前講了敏捷有個(gè)sprint計(jì)劃會(huì)議,在計(jì)劃會(huì)議里面有很多活動(dòng),其中一個(gè)活動(dòng),就是討論需求的價(jià)值。因?yàn)槊艚莼顒?dòng)需要交付價(jià)值,我們?cè)谛枨髮用嫔弦浞钟懻撔枨蟮膬r(jià)值,那么需求的風(fēng)險(xiǎn)會(huì)降到,怎么說(shuō)呢,需求變動(dòng)的風(fēng)險(xiǎn)其實(shí)很大,但是他可能會(huì)降到零概率。
然后就是一些其他風(fēng)險(xiǎn)來(lái)源,比如說(shuō)人的風(fēng)險(xiǎn),設(shè)備的風(fēng)險(xiǎn),資源的風(fēng)險(xiǎn)。。。這些風(fēng)險(xiǎn),應(yīng)該是能在團(tuán)隊(duì)內(nèi)部消化的。對(duì)于控制這樣的風(fēng)險(xiǎn),作為一個(gè)敏捷團(tuán)隊(duì)來(lái)說(shuō),應(yīng)該自己能夠去識(shí)別,能夠去控制,而且能夠在會(huì)議里面解決掉。
站會(huì)要提三個(gè)問(wèn)題,第一個(gè)問(wèn)題:what did I done yesterday;第二個(gè)問(wèn)題:what l will down today;第三個(gè)問(wèn)題:我遇到了什么樣的阻礙和困難。
Q:敏捷項(xiàng)目里面有哪些活動(dòng)是可以推廣的?
A:最簡(jiǎn)單的就是站會(huì),另外一個(gè)覺得比較值得推廣的就是用戶故事和用戶故事地圖。
用戶故事從根本上來(lái)講就是一個(gè)需求,就是作為一個(gè)什么樣的用戶,需要一個(gè)什么樣的東西,以解決我什么樣的問(wèn)題。對(duì)于敏捷來(lái)講,他的需求是有一個(gè)invest(要求)的,看下圖
用戶故事有一個(gè)3C原則,第一個(gè)叫card,也就是說(shuō)寫在卡片上;第二個(gè)叫conversation,對(duì)話;第三個(gè)叫confirmation。它實(shí)際上是寫在卡片上,用來(lái)激發(fā)產(chǎn)品或者需求討論,從而達(dá)成各方一致的行為。
用戶故事實(shí)際上就是這個(gè)用戶行為的一個(gè)集合,就像這張圖里面,左上角是一個(gè)客觀條件,是一個(gè)人物畫像,女人30歲,一條狗。然后她起床會(huì)做哪些事兒,洗漱整理會(huì)做哪些事兒,照顧家人會(huì)做哪些事兒,然后哪些事兒是按順序做的。這對(duì)于用戶行為需求一樣也適用。
我們擁抱變化的同時(shí),我們就要去適應(yīng)這種變化的發(fā)生,在這個(gè)時(shí)代很多不確定因素會(huì)使你的需求變得越來(lái)越不穩(wěn)定。
作為產(chǎn)品經(jīng)理,你的責(zé)任是盡早的去識(shí)別變更。而作為研發(fā)團(tuán)隊(duì),你的責(zé)任是需要使用更靈活的框架,或者不斷的減少你的技術(shù)債,去適應(yīng)這樣的變化。
Q:敏捷項(xiàng)目如何估算確定項(xiàng)目交付期?
A:通常來(lái)講,我們做傳統(tǒng)的估算,無(wú)非就是經(jīng)驗(yàn)估算法,Delphi估算法,功能點(diǎn)估算法。我們估算出來(lái)的結(jié)果是一個(gè)絕對(duì)的值,也就是說(shuō),我估算的東西,要么是我工程的規(guī)模,要么就是完成這個(gè)工程使用的工作量(人·天)。
但是對(duì)于敏捷來(lái)說(shuō),通常來(lái)講估算的都是故事點(diǎn),或者說(shuō)是一個(gè)相對(duì)的變量。我會(huì)在一個(gè)敏捷團(tuán)隊(duì)的內(nèi)部定義一個(gè)叫“1”的東西作為一個(gè)標(biāo)桿,然后針對(duì)這“1”去做相對(duì)估算。
比如說(shuō)我有一個(gè)“1”,我有一個(gè)功能,可能是1.5,可能,2,可能是4,可能是8,通過(guò)這樣的估算,我們能估算出來(lái)我這一些的需求,這一堆的故事需要幾個(gè)“1”。
在迭代的初期,我們會(huì)試著把幾個(gè)這樣的東西放到一個(gè)迭代里頭,通過(guò)迭代的不停的迭代,兩個(gè),三個(gè)迭代之后,這個(gè)“幾”能夠放在迭代里頭的這個(gè)“幾”,就相對(duì)穩(wěn)定了。可能我們第一個(gè)迭代能做八個(gè),放了十個(gè)進(jìn)去,我們只做了八個(gè);第二個(gè)迭代我們只往里放八個(gè),我們發(fā)現(xiàn)八個(gè)相對(duì)也挺高,我們只能做七個(gè);第三個(gè)迭代我們做了七個(gè),第四個(gè)迭代我們也做了七個(gè)。那么,這個(gè)團(tuán)隊(duì)的迭代速率就是七。
那對(duì)于一個(gè)穩(wěn)定的敏捷團(tuán)隊(duì)來(lái)說(shuō),你知道了你的速率是多少,同時(shí),你也能知道你產(chǎn)品規(guī)模的這些點(diǎn)是多少,那你的交期就可以確定了。
Q:敏捷項(xiàng)目如何快速、準(zhǔn)確評(píng)估項(xiàng)目預(yù)算?
A:我們用的敏捷估算方法都是很好玩兒的方法,比如說(shuō)有撲克估算法,T恤估算法,大小杯子估算法等等。
這種敏捷估算撲克是專用的,在網(wǎng)上可以買到。第二個(gè)叫T恤估算法,就是用大小來(lái)估算,具體方法比較復(fù)雜,大家有興趣的可以去查一查。
話說(shuō)回預(yù)算的問(wèn)題,對(duì)于敏捷團(tuán)隊(duì)來(lái)講,不會(huì)做一個(gè)初始的預(yù)算,規(guī)定我的預(yù)算是多少,通常來(lái)講,我們?cè)陧?xiàng)目的初期會(huì)訂一個(gè)預(yù)算目標(biāo)。這個(gè)目標(biāo)是一個(gè)用經(jīng)驗(yàn)值來(lái)做出來(lái)的,或者大家共同認(rèn)同的一個(gè)目標(biāo)。
那你在敏捷迭代活動(dòng)中或敏捷開發(fā)活動(dòng)中,你的所有活動(dòng)可能就要圍繞著這個(gè)目標(biāo)去做。
Q:敏捷開發(fā)的缺點(diǎn)?
敏捷開發(fā)的缺點(diǎn)很多,我挑重點(diǎn)的說(shuō)。
①敏捷開發(fā)對(duì)于某些團(tuán)隊(duì)是絕對(duì)不適應(yīng)的。比如說(shuō),一個(gè)臨時(shí)的團(tuán)隊(duì),敏捷團(tuán)隊(duì)最好是相當(dāng)?shù)姆€(wěn)定。如果我的團(tuán)隊(duì)里面有個(gè)人很不穩(wěn)定,他隨時(shí)都可能會(huì)離開。那么這個(gè)團(tuán)隊(duì)就不適合做敏捷,甚至說(shuō)我覺得應(yīng)該把這個(gè)人提前踢出團(tuán)隊(duì),再去考慮敏捷這個(gè)事情
②然后敏捷對(duì)團(tuán)隊(duì)的要求是非常高的,首先這個(gè)團(tuán)隊(duì)里面所有人都得水平相當(dāng),然后所有人的溝通能力和協(xié)作能力都要非常強(qiáng)。
③另外呢,就像剛才一同學(xué)說(shuō)的,如何做好敏捷文檔規(guī)范化。敏捷宣言里面有句話叫,使用的軟件勝過(guò)詳盡的文檔。敏捷對(duì)文檔的規(guī)范化或者文檔的作用,看得不是太重,但是實(shí)際上它是有一定的文檔規(guī)模的。但是就是這個(gè)文檔的不完善,對(duì)新加入敏捷團(tuán)隊(duì)的人是一種挑戰(zhàn),還是剛才那個(gè)穩(wěn)定性問(wèn)題。
文檔的缺失實(shí)際上會(huì)給后期的維護(hù),二次開發(fā)等等帶來(lái)一定的困擾。我會(huì)建議團(tuán)隊(duì)去單獨(dú)抽出一個(gè)人去做這些事情。
④還有一個(gè)缺點(diǎn)就是,我見到的大多數(shù)敏捷團(tuán)隊(duì)都有冗長(zhǎng)的技術(shù)債要還。就是因?yàn)闆]有一個(gè)足夠靈活的軟件框架來(lái)適應(yīng)足夠多的變化。
⑤最后假設(shè)我們不斷給用戶交付用戶覺得有價(jià)值的產(chǎn)品,這個(gè)時(shí)候用戶是持續(xù)滿意的。反之如果我們交付的是用戶不怎么喜歡的產(chǎn)品,用戶是不是就持續(xù)不滿意了。實(shí)際上用戶持續(xù)不滿意,還是有去改進(jìn)迭代的空間。但是我們要考慮到不滿意是因?yàn)榧夹g(shù)債,還是因?yàn)橘|(zhì)量崩塌,還是因?yàn)閳F(tuán)隊(duì)不穩(wěn)定,還是因?yàn)樾枨蟮鹊取?/p>
⑥很多的敏捷團(tuán)隊(duì)還會(huì)產(chǎn)生質(zhì)量崩塌的情況,從質(zhì)量來(lái)說(shuō),我還是覺得傳統(tǒng)的方式比敏捷的要好一些,因?yàn)樗墓芸亓Χ龋ㄟ^(guò)程管理,結(jié)果驗(yàn)證這些東西,還是比較好的。
但是敏捷在質(zhì)量中還是有一些辦法的,下面介紹幾個(gè)跟質(zhì)量相關(guān)的工具:
第一個(gè)叫TDD,測(cè)試驅(qū)動(dòng)開發(fā),就是先寫測(cè)試用例,然后再寫代碼,然后找到一個(gè)比如jenkins那種的持續(xù)集成工具上跑一下你的測(cè)試用例。
第二個(gè)叫行為驅(qū)動(dòng)開發(fā),這個(gè)通常來(lái)講是有測(cè)試人員去做,行為驅(qū)動(dòng)開發(fā)一個(gè)比較好的工具,叫cucumber(黃瓜)。它是一種以用戶為角度的行為測(cè)試工具,這個(gè)去迎合和測(cè)試業(yè)務(wù)場(chǎng)景是非常好的。
Q:采用傳統(tǒng)瀑布模式開發(fā)的項(xiàng)目可以敏捷嗎,怎么操作?
A:先行為導(dǎo)入,然后知識(shí)導(dǎo)入,然后再價(jià)值導(dǎo)入,然后再知識(shí)導(dǎo)入,這樣一步步潛移默化的去改變他們的行為方式。
瀑布模式開發(fā)的項(xiàng)目可以敏捷嗎?這個(gè)東西也不盡然,這個(gè)得看項(xiàng)目類型和團(tuán)隊(duì)行為方式。如果一個(gè)企業(yè),一個(gè)團(tuán)隊(duì)想做這種敏捷轉(zhuǎn)型,我的建議一直都是你去找一個(gè)專業(yè)的教練幫助你去做,不要自己看本書就做,很多敏捷轉(zhuǎn)型因?yàn)檫@個(gè)失敗,這個(gè)很容易失敗。
Q:今后敏捷是否更受企業(yè)的青睞?
A:不僅谷歌微軟在用,國(guó)內(nèi)的大廠也都在用。這個(gè)就沒有什么討論的了。
6、看板
補(bǔ)充一個(gè)看板的知識(shí),看板這個(gè)東西其實(shí)也是挺重要的,在如果有同學(xué)學(xué)PMI-ACP®,PMI-ACP®推薦的書有一本就是看板。
看板就是我發(fā)的這張圖,這就是一個(gè)最簡(jiǎn)單的看板??窗逵袃蓚€(gè)作用,第一個(gè)作用叫價(jià)值流動(dòng),第二個(gè)作用叫限制在制品。
看板就是每天在開早會(huì)的時(shí)候,把各個(gè)工作改一改狀態(tài),就是這么簡(jiǎn)單的一個(gè)事情。看板其實(shí)做了敏捷中的很多事,它起到了信息發(fā)射源的作用,也就是說(shuō),團(tuán)隊(duì)中的所有成員都能通過(guò)這個(gè)看板看到這個(gè)項(xiàng)目的進(jìn)度和項(xiàng)目實(shí)時(shí)的情況,而且能夠知道我在這個(gè)項(xiàng)目的哪一列上,或者說(shuō)在哪一個(gè)狀態(tài)上有遲滯了。
有興趣的同學(xué)可以去看那本兒看板方法,里面講的很詳細(xì)。
最后分享一個(gè)看板實(shí)踐這本書的讀書筆記
PMP®備考資料免費(fèi)領(lǐng)取
去領(lǐng)取
共收錄117.93萬(wàn)道題
已有25.02萬(wàn)小伙伴參與做題
PMP®報(bào)考條件-自助查詢