如何高效地進(jìn)行敏捷開(kāi)發(fā)管理
發(fā)布時(shí)間:2020/9/25 9:53:00
敏捷開(kāi)發(fā)其實(shí)也是企業(yè)的一種管理文化。
目前軟件行業(yè)敏捷開(kāi)發(fā)管理最大的問(wèn)題在于太看重具體的形式,而忽略了敏捷的初衷。
很多公司請幾個(gè)敏捷教練建立流程,把會(huì )議室的椅子都搬走宣布從今以后大家站著(zhù)開(kāi)會(huì )了,使用敏捷管理工具建立迭代、建需求、分任務(wù),可是這真的就意味著(zhù)敏捷了嗎?
因為敏捷,老板要求這個(gè)功能明天上線(xiàn),怎么實(shí)現我不管,畢竟響應變化高于遵循計劃。
因為敏捷,我們希望每天至少發(fā)布一個(gè)版本,沒(méi)辦法,敏捷要求我們快速地交付可工作的軟件。
因為敏捷,雖然需求我們還沒(méi)想好,但是這個(gè)版本要保證本周內上線(xiàn),敏捷宣言說(shuō)得好,要欣然面對需求變化。
因為敏捷,我們項目一篇文檔也沒(méi)有,畢竟工作的軟件高于詳盡的文檔。
我們不禁要問(wèn),這真的是敏捷嗎?敏捷的初衷是團隊成員能夠更加緊密地配合完成工作,敏捷開(kāi)發(fā)強調擁抱變化,但并不意味著(zhù)可以隨心所欲地變更需求。敏捷開(kāi)發(fā)的實(shí)質(zhì)是通過(guò)迭代式增量軟件開(kāi)發(fā)的方式,防止出現長(cháng)期閉門(mén)造車(chē)嚴重偏離客戶(hù)需求,達到快速響應市場(chǎng)變化的目的。
下面我想分享下我們公司在近百人的開(kāi)發(fā)團隊,同時(shí)進(jìn)行十幾個(gè)項目開(kāi)發(fā)的過(guò)程中,是如何使用CORNERSTONE管理平臺進(jìn)行敏捷項目管理的。
一、角色劃分
杰夫·薩瑟蘭將SCRUM團隊中的角色分為三種:
開(kāi)發(fā)團隊成員,負責開(kāi)展具體的開(kāi)發(fā)工作;
Scrum主管,協(xié)助開(kāi)發(fā)團隊把事情做得更好;
產(chǎn)品負責人,決定應該做什么工作,擬定待辦事項清單的內容。
我們根據我們開(kāi)發(fā)中的實(shí)際情況將系統中的角色分為以下四種:
項目經(jīng)理:相當于Scrum主管,負責協(xié)調團隊內部合作,召集站立會(huì )議,把控項目整體進(jìn)度。需要明確的是,項目經(jīng)理并不是一個(gè)傳統意義上的團隊領(lǐng)導。用更流行的話(huà)說(shuō),項目經(jīng)理更像是一個(gè)仆人式領(lǐng)導。項目經(jīng)理不應該對團隊成員大吼小叫,也不會(huì )告訴研發(fā)人員該做什么以及如何開(kāi)發(fā)一款產(chǎn)品,而是應該集中精力幫助研發(fā)人員清除前進(jìn)道路上的障礙。
產(chǎn)品經(jīng)理:相當于產(chǎn)品負責人,負責決定應該做什么工作,擬定待辦事項清單的內容,確定各個(gè)事項的優(yōu)先順序。事實(shí)上,和很多人理解的不同是,確定各個(gè)事項的優(yōu)先級幾乎是敏捷中最重要的工作。為什么?在軟件開(kāi)發(fā)領(lǐng)域有一條根據數十年研究工作總結出來(lái)的原則,即在任何一款軟件中,80%的價(jià)值來(lái)自20%的功能。人們總喜歡說(shuō)每個(gè)需求都是重要的,但產(chǎn)品經(jīng)理需要問(wèn)一下自己,究竟哪些需求能夠給整個(gè)項目帶來(lái)最大的價(jià)值?而這些能夠帶來(lái)最大價(jià)值的需求就必須優(yōu)先完成。
開(kāi)發(fā)人員:開(kāi)發(fā)人員是項目開(kāi)發(fā)任務(wù)具體的實(shí)施者。他們負責完成開(kāi)發(fā)任務(wù),及時(shí)反饋開(kāi)發(fā)進(jìn)度。
測試人員:測試人員是項目測試任務(wù)具體的實(shí)施者。他們負責制定測試計劃,編寫(xiě)測試用例,創(chuàng )建以及回歸缺陷。
在CORNERSTONE中,我們可根據項目成員的具體職能設定不同的角色和權限。
二、收集需求(用戶(hù)故事)
在項目開(kāi)始前,產(chǎn)品經(jīng)理應該基于用戶(hù)或市場(chǎng)的需求,來(lái)編寫(xiě)用戶(hù)故事,即CORNERSTONE中的需求。一個(gè)好的需求(用戶(hù)故事)一般應該滿(mǎn)足INVEST標準:
(一) 獨立性(Independent)——盡可能地使一個(gè)需求獨立于其他的需求。需求之間的依賴(lài)使得制訂計劃、確定優(yōu)先級和工作量評估都變得很困難,通常我們可以通過(guò)組合需求和分解需求來(lái)減少依賴(lài)性。
(二)可協(xié)商性(Negotiable)——需求的內容要是可以協(xié)商的,需求不是合同。
(三)有價(jià)值(Valuable)——每個(gè)需求必須對客戶(hù)具有價(jià)值。
(四)可評估(Estimable)——開(kāi)發(fā)團隊需要衡量需求,以便確定優(yōu)先級和工作量,并便于安排工作計劃。
(五)規模小(Small)——一個(gè)好的需求要盡量維持小規模,至少要確保在一個(gè)迭代周期中能夠完成。需求越大,在安排計劃、工作量評估等方面的風(fēng)險就會(huì )越大。
(六)可測試(Testable)——一個(gè)需求要可以測試,以便確定它是可以完成的。如果一個(gè)需求不能夠測試,那么你就無(wú)法知道它什么時(shí)候可以完成。
基于以上原則,CORNERSTONE支持在創(chuàng )建需求時(shí),關(guān)聯(lián)其他需求(這樣我們便可以做到組合需求來(lái)控制單個(gè)需求的粒度!),關(guān)聯(lián)測試用例(確認需求是可以被測試的!),關(guān)聯(lián)迭代(確保需求可以在一個(gè)迭代中完成!),設定優(yōu)先級以及開(kāi)始截止時(shí)間。
三、沖刺規劃會(huì )議(Sprint Planning Meeting)
在每個(gè)迭代開(kāi)發(fā)正式開(kāi)始前,我們都會(huì )舉行一次規劃會(huì )議,由產(chǎn)品負責人講解需求,由所有團隊成員一起負責將需求拆解細化成具體的開(kāi)發(fā)任務(wù)。開(kāi)發(fā)任務(wù)的顆粒度最好足夠細,以確保一名開(kāi)發(fā)人員在一個(gè)迭代周期內可以開(kāi)發(fā)完成。
一次沖刺規劃會(huì )議中的產(chǎn)物一般為:
(一)具體分配到每個(gè)開(kāi)發(fā)人員的任務(wù)列表;
(二)會(huì )議紀要,CORNERSTONE提供了WIKI功能,可以在系統中保存每次會(huì )議的會(huì )議紀要;
四、每日站會(huì )
在迭代開(kāi)始后,我們團隊一般每天上午固定15分鐘左右進(jìn)行內部溝通。我們一般會(huì )打開(kāi)CORNERSTONE任務(wù)的看板視圖:
每個(gè)團隊成員只需要用三到五句話(huà)說(shuō)明以下三個(gè)問(wèn)題:
我昨天做了什么來(lái)完成我的任務(wù);
我今天打算做什么來(lái)完成我的任務(wù);
有沒(méi)有什么可能的阻礙因素會(huì )導致我不能按時(shí)完成任務(wù)。
一般來(lái)說(shuō),項目負責人需要聚焦于幫助團隊成員解決阻礙因素,以幫助所有任務(wù)按時(shí)完成。
五、隨時(shí)關(guān)注團隊進(jìn)度
在迭代的開(kāi)發(fā)過(guò)程中,項目經(jīng)理需要隨時(shí)關(guān)注項目的開(kāi)發(fā)進(jìn)度。我們的項目經(jīng)理一般通過(guò)CORNERSTONE提供的項目?jì)x表板來(lái)查看項目的整體完成情況;通過(guò)燃盡圖了解任務(wù)的完成情況;通過(guò)缺陷分布、缺陷累計來(lái)了解迭代完成的質(zhì)量。
系統自帶的甘特圖能隨時(shí)查看迭代的具體進(jìn)程以及每個(gè)項目成員的任務(wù)分工情況,做到分配合理。
除了以上統計外,還有一個(gè)“報表”功能屬于管理員專(zhuān)用,報表功能包含迭代燃盡圖、代碼提交統計、狀態(tài)分布統計、每日新增曲線(xiàn),每日完成曲線(xiàn)、累計數量曲線(xiàn)以及成員工時(shí)列表等統計信息。
六、評估總結
在每一次迭代束之前,我們的研發(fā)團隊成員還要聚在一起開(kāi)個(gè)評估會(huì ),向產(chǎn)品負責人演示在這個(gè)階段之內取得的成果,接受評估意見(jiàn)。研發(fā)團隊成員會(huì )評估一下列表上的工作任務(wù)已經(jīng)完成了多少,自己是在這個(gè)階段的沖刺中認領(lǐng)了太多任務(wù)以至于沒(méi)有做完,還是工作任務(wù)認領(lǐng)得太少了。CORNERSTONE同樣提供了匯總視圖,用以在這類(lèi)會(huì )議上展示說(shuō)明。
最后總結一下,敏捷其實(shí)是一種管理方式,敏捷不會(huì )告訴我們具體每個(gè)項目應該怎么做,杰夫·薩瑟蘭有句話(huà)說(shuō)得好,不要猜測,要規劃、執行、檢查、行動(dòng)。我認為這句話(huà)道出了敏捷的本質(zhì)。