故事和任務(wù)的區(qū)別:
故事 任務(wù)
訂單信息查詢 DAO編碼
DAO單元測試
業(yè)務(wù)層編碼
JSP表示層編碼
集成測試
要實現(xiàn)訂單信息查詢就由右邊的那些任務(wù)組成。
開始,我不知道怎樣來描述一個“功能”和實現(xiàn)一個功能細化的“任務(wù)”。后來,當(dāng)我看到Scrum的書籍后,看到Sprint和任務(wù)板時,才知道自己的實踐與Scrum的某些實踐竟有如此相似之處。我困惑很久,想不到用什么詞來表示一個“功能”和實現(xiàn)一個功能所需要的“步驟”。Scrum使用“故事”和“任務(wù)”來定義它們,我認(rèn)為非常的準(zhǔn)確到位。
但是日計劃的工作分配與Scrum的工作分配是不同的。實施日計劃是由項目經(jīng)理主導(dǎo)的;而Scrum強調(diào)由程序員主導(dǎo)。至于這兩種方式,哪一種更好。我覺得可以結(jié)合具體的情況進行不同的實踐。
如果是程序員成熟度比較高的項目,可以由程序員來主導(dǎo)。程序員成熟度較低和工期很緊的項目,可以由項目經(jīng)理來主導(dǎo)。總之,這都需要程序員和項目經(jīng)理達成一致。程序員需要向項目經(jīng)理承諾。
Scrum會對每個任務(wù)進行事先估算,而日計劃分配工作任務(wù)前才會進行估算,并且只為每個人分配工作量為1人天的任務(wù)總和。
日計劃樣例:2009-3-22程序員L工作計劃 開發(fā)人員 今日計劃工作及完成情況
序號 工作任務(wù) 優(yōu)先級 完成標(biāo)準(zhǔn) 是否完成 完成百分比 完成情況 未完成原因 檢查人
L 1 訂單管理模塊DAO實現(xiàn) 50 單元測試通過
2 與用戶確認(rèn)頁面原型 10 用戶確認(rèn)郵件
程序員L任務(wù)1的優(yōu)先級為50,任務(wù)2的優(yōu)先級為10。這并不表示兩個任務(wù)的重要程度相差40,而是表示L當(dāng)天應(yīng)該先做任務(wù)1,再做任務(wù)2。
筆者認(rèn)為這種日計劃更加靈活。因為項目經(jīng)理可以靈活的設(shè)置任務(wù)。Scrum的任務(wù)都是依據(jù)故事。日計劃甚至可以把與開發(fā)根本不相干的事情包括進來。
當(dāng)天要完成哪些任務(wù)是由項目經(jīng)理先計劃的,但是程序員可以提出不同的意見。雙方達成一致。并且任務(wù)是可以量化和檢查的。因此,事先還要設(shè)置完成標(biāo)準(zhǔn)。一旦程序員與項目經(jīng)理達成一致,就相當(dāng)于程序員向項目經(jīng)理承諾,今天可以完成這些任務(wù)。
對于成熟度比較高的程序員,完全可以由程序員先提出計劃。然后,由項目經(jīng)理進行評估和檢查。雙方達成一致后,就把任務(wù)放入日計劃的工作任務(wù)表中。
4.為什么要檢查?怎么進行檢查?
如果沒有檢查,計劃就是無效的。
日計劃強調(diào)提交可交付的成果。雖然事先制定了標(biāo)準(zhǔn),但是程序員和項目經(jīng)理可能會對可交付成果的理解不同。項目經(jīng)理如果要清楚地了解到項目狀況就必須要親自進行檢查。
如何進行檢查?項目經(jīng)理一定要在現(xiàn)場工作,最好的辦法就是讓他演示給你看。對于不能演示的任務(wù)就進行抽查。因為事先已經(jīng)制定完成標(biāo)準(zhǔn),大家只需要按規(guī)矩辦事即可。
并且一定要填寫完成情況,以便后期的跟蹤。
5.如果程序員不能完成日計劃怎么辦?如何才能夠使程序員能夠完成日計劃?
程序員不能完成日計劃時,也就是進度出現(xiàn)了偏差。項目經(jīng)理一定要與程序員一起分析偏差的原因,并記錄下來。進度發(fā)生偏差最有可能的兩個原因:計劃不合理和計劃執(zhí)行不力。
計劃不合理包括:對任務(wù)的難度和工作量估算失誤,對程序員能力的估算失誤,或者程序員的工作方法存在問題,需要支持和協(xié)助等。
如果是對任務(wù)估算發(fā)生失誤,就需要重新進行估算。這正是日計劃和檢查帶來的好處。項目經(jīng)理需要重新調(diào)整計劃。