蔣夢云
看板(Kanban)一詞來自日本,源于精益生產(chǎn)實踐??窗迨沟庙椖抗芾碜畲蟮目梢暬强窗甯梢詫⒀邪l(fā)的過程進行管理,記錄下用戶故事研發(fā)過程中的細節(jié)和歷程。
1.軟件開發(fā)中看板的用途
(1)最大限度的可視化,同時解決團隊溝通障礙。通過Kanban,項目團隊可以清楚了解已經(jīng)完成的情況,正在做的以及后續(xù)將有可能需要做的用戶故事。
(2)對于項目經(jīng)理而言,最擔(dān)心的就是項目進度不可控,不知道每位開發(fā)人員具體的工作進度;有了Kanban,所有工作進度都能清晰的展示在看板墻上。
(3)對于開發(fā)經(jīng)理而言,最擔(dān)心的就是資源分配不合理,忙的人忙死,閑的人閑死,有了Kanban,可以合理的分配開發(fā)資源和任務(wù)。
(4)對于開發(fā)人員而言,最擔(dān)心的就是績效考核不公平;在開發(fā)工程中的績效,不能清晰地反應(yīng)在考核中,每個開發(fā)人員對其他人的工作也不了解。有了Kanban,可以明白地知道項目組各個人員的任務(wù)量,對開發(fā)的內(nèi)容,也能清晰地溝通。
2.看板模型流程
2.1劃分階段
①待開發(fā):還沒做的,一般稱為Backlog,這部分由產(chǎn)品經(jīng)理(PM)協(xié)同開發(fā)經(jīng)理來定義,主要的來源是客戶的新需求或者市場線上反饋的bug;
②開發(fā)中:正在進行的任務(wù),一般這個部分都是詳細編碼的過程;如果存在架構(gòu)設(shè)計、前端UI、具體編碼的分工,也可以再具體的劃分;
③待測試:已經(jīng)完成的開發(fā)功能,這部分由開發(fā)人員移動,下面一步就交由測試人員;
④測試中:測試部分,表明當前測試人員正在進行的工作;
⑤已完成:已完成,等待上線。
每個項目可以根據(jù)自己的需求建立自己Kanban。上面這個并不是唯一的。
2.2定義卡片模型
在待開發(fā)中放置了許多小卡片,它們在Kanban中被稱為在制品(Work In Process,WIP)。對于產(chǎn)品經(jīng)理而言,WIP是需求,而對于開發(fā)人員與部署人員而言,WIP卻是任務(wù)。對于卡片模型來說,我們可以定義如下內(nèi)容:
Task類型:用戶故事(User story)bug分為一類;重構(gòu)、搭建測試環(huán)境這樣的不直接產(chǎn)生業(yè)務(wù)價值的任務(wù)分為一類,還有一些項目運營中的一般事務(wù)分為另一類;這3類任務(wù)用不同顏色的卡片,放到狀態(tài)墻上統(tǒng)一管理。
Task ID:是某個Task的唯一標識;
Task描述:就是這個Task要做什么;
Task預(yù)估時間:一般根據(jù)項目組的平均開發(fā)時間來預(yù)估每一個Task的開發(fā)時間,根據(jù)這個時間,可以評估出在一個迭代周期中所有Task需要完成的時間。通常據(jù)此時間來排列Task中的優(yōu)先級;
Task優(yōu)先級:由產(chǎn)品擁有者來決定,或者由開發(fā)經(jīng)理決定;
Task所有者:完成這個Task的負責(zé)人。
2.3利用泳道來優(yōu)化流程
具有泳道特性的看板,在移動狀態(tài)時需要參照以下流程:
①當一個用戶從“Backlog”移到“用戶故事”列時,需要將用戶故事涉及的多方成員的工作進行任務(wù)拆分,拆分成一個個的任務(wù)。
②成員針對任務(wù)進行工作,當所有成員的任務(wù)完成后,將完成的用戶移到測試驗證列中。
③如果測試發(fā)現(xiàn)問題,則將相關(guān)的bug報給對應(yīng)任務(wù)的人。
④看板實踐核心實踐的重要性和原則。
通過看板建立團隊穩(wěn)定的任務(wù)節(jié)奏,實現(xiàn)始終如一的可靠交付,這能夠幫助團隊與客戶、依賴的相關(guān)部門、供應(yīng)商、價值流下游合作伙伴建立信任關(guān)系。而信任關(guān)系對每一方都是非常重要的。
可視化工作流程,所有的Task的進度會全部顯示Kanban上,每一個人都可以一目了然了解進度和流程。
限制WIP中的Tasks數(shù)量,一般情況下,這個數(shù)量是等于Team中的developer數(shù)量。
縮短開發(fā)周期,這個其實可以理解為發(fā)現(xiàn)問題,解決問題,從而找到更科學(xué)的方法提高開發(fā)效率。
拉動生產(chǎn),看板很好地展示下游環(huán)節(jié)的當前狀態(tài),根據(jù)已完成工作確定前一環(huán)節(jié)可以投入多少資源,而不是前面環(huán)節(jié)使勁投入,不管后面環(huán)節(jié)是否能應(yīng)對。
3.結(jié)束語
減少浪費是敏捷軟件項目的核心之一,利用Kanban,項目開發(fā)中的各個關(guān)系人可以很方便地了解項目進行的狀態(tài),在使用中可以增加溝通的效率,提高對項目價值的認知度,進一步的減少不必要的浪費。