摘要:本文探討了在大型軟件項目的實施過程中,如何有效的管理團隊成員,如何可控的推動項目進度,從實踐的角度上,給出了一種加強軟件項目管理的有效模式。在SCRUM敏捷開發(fā)過程的基礎(chǔ)上,該模式從計劃、組織分派、控制糾偏及團隊建設(shè)四個方面介紹了軟件工程項目管理的有效經(jīng)驗。
關(guān)鍵詞:軟件項目;管理實踐;SCRUM
中圖分類號:TP311.5-4 文獻標識碼:A 文章編號:1007-9599 (2012) 21-0000-02
1 引言
Scrum被認為是目前全球最流行與最有效的敏捷項目管理理念與方法之一,在軟件業(yè)發(fā)達地區(qū)被眾多知名企業(yè)廣泛采納。TFS(Team Foundation Server)是集成的團隊管理工具,能夠?qū)崿F(xiàn)團隊成員之間更好的交流與協(xié)作。本文所介紹實踐經(jīng)驗是以Scrum及TFS的實施為基礎(chǔ)的。
2 項目管理實踐模式
現(xiàn)在從SCRUM每一個迭代周期中的目標與計劃制定、工作的組織分派、過程中的控制與糾偏這三個方面介紹,最后介紹團隊建設(shè)。
2.1 目標與計劃
計劃的制定分為階段性工作計劃,以及周工作計劃。
階段性工作計劃以里程碑時間點為界,時間跨度根據(jù)項目的大小而定,對于一個大型的項目,可以季度末作為里程碑時間點。
周工作計劃在每周一制定,確定本周每人的具體工作。
制定目標與計劃時,要盡量做到項目細分。項目細分得越小,則說明計劃考慮得越周到,實施過程中也會使得偏差越少,是做得較好的。最好能夠?qū)γ恳豁椚蝿?wù)做一個時間上的大概安排。
2.2 組織與分配工作
(1)每周工作認領(lǐng)會。每周一,周計劃制定之后,團隊召開“周工作認領(lǐng)”會議。Team Leader將本周所有工作項寫在紙片上,并將所有紙片貼在墻上,大家依次認領(lǐng)各紙片上的任務(wù)。每認領(lǐng)一項任務(wù),認領(lǐng)者需要預(yù)估一下所需時間,其他成員評估一下此時間是否合理。當然,如果有人認為可以用更少的時間來完成此項工作,那么這項工作可以轉(zhuǎn)交給此人。
(2)每日立會。每天早上前10至15分鐘,大家一起站到任務(wù)看板前進行立會。立會中,每人發(fā)言。發(fā)言的內(nèi)容主要有三個方面:總結(jié)前一日的工作;反映前一日工作中遇到的問題,必要時,Team Leader需要安排人協(xié)助;承諾今日的工作內(nèi)容。承諾很重要,它會給開發(fā)者帶來“必須完成”的壓力。
(3)任務(wù)看板。任務(wù)看板上主要分為兩塊:左側(cè)用于張貼任務(wù)條,分為計劃中的任務(wù)、進行中的任務(wù)以及已完成的任務(wù);右側(cè)繪制燃盡圖,反映進度情況。所有的工作項都寫在紙片上并貼到任務(wù)看板上,每日立會時需要對首任務(wù)看板講解,同時任務(wù)看板上能夠一目了然的反映出各項工作的進展。
(4)TFS中為每個工作立項。所有的工作項,都應(yīng)該在TFS中立項。這樣便于工作的跟進,以及開發(fā)人員之間的協(xié)作,另外,也有利于工作量的統(tǒng)計。
2.3 控制與糾偏
(1)TFS持續(xù)集成。我們將TFS的集成模式設(shè)置為持續(xù)集成,生成的結(jié)果將會立即返回給提交者,以保證服務(wù)器上的代碼是最新的、可用的。(2)工作項細分。每項工作要細分為2~16h。較小的工作項,便于跟蹤并及時精準的調(diào)整進度。實踐經(jīng)驗證明,工作項細分之后,相比寵統(tǒng)的工作項,更能夠有效的保證進度。(3)每工作項?時間點檢查。每工作項進行到預(yù)估時間一半的時候,Team Leader應(yīng)檢查執(zhí)行情況。如果此項工作進展不順利,要分析原因,或安排人員協(xié)助,或改變技術(shù)方案,及時調(diào)整進度。(4)經(jīng)常性的演示,及時發(fā)現(xiàn)問題。安排盡可能多的演示,目的有二:第一,讓用戶、領(lǐng)域?qū)<覅⑴c到開發(fā)過程中,避免開發(fā)人員迷失在代碼叢林中;第二,誰做的工作誰演示,這會緞帶演示者“演示成功”的壓力,從而做好做細工作。(5)推行代碼審核制度 每天工作快結(jié)束時,留下約15分鐘的時間,相互之間進行代碼審核。建議不要固定某兩位互審,而采用交叉循環(huán)的方式。(6)最有效的溝通方式:面對面+白板。技術(shù)討論或工作安排時,把相關(guān)人員一起叫到白板前,邊解說,邊繪制草圖,這種方式是十分有效的。不建議大家采用文檔的方式進行溝通。(7)技術(shù)總結(jié)文檔十分重要。把個人的經(jīng)驗總結(jié)寫成文檔,可以供團隊其它成員,以及后來的成員學習,從而讓大家都掌握。另外,有些問題的解決過程比較復(fù)雜,如果能夠把其形成文檔,可以依照此文檔即可解決相同的問題,這樣可提供工作的效率。
2.4 團隊建設(shè)
(1)不定期的培訓。條件許可時,可以參加培訓機構(gòu)舉辦的培訓,或者邀請培訓老師到公司來進行培訓。即使條件不允許,我們也可以進行內(nèi)部培訓。Team Leader可以組織開發(fā)類、專業(yè)類及測試類的專題講座,也可以請團隊成員各自講授自己所善長的技術(shù)。(2)經(jīng)常鼓勵團隊成員。當團隊中某成員工作上取得了突破,或攻克難題時,大家都給他(她)祝賀,不一定非得物質(zhì)上的獎勵,其實,即使發(fā)個郵件、拍拍肩膀等方式,也可以取得很好的效果。(3)優(yōu)先考慮團隊總體進度。對于新工作的成員,往往只想到把自己的工作及時完成了,保證了自己的進度就好了。其實這是不夠的,團隊的進度才是第一位的。團隊總體進度,往往卡在進度最慢的成員那里。所以大家要及時協(xié)助遇到困難的同事,這一點上,Team Leader尤其要有表率作用。(4)雙向溝通優(yōu)于單向溝通。交待工作時,最好采用協(xié)商討論的方式進行,讓接收者也盡可能發(fā)表自己的看法,不要強制性分派工作。
[作者簡介]
陸中元,中國建筑科學研究院深圳建研軟件有限公司,主要從事技術(shù)工作領(lǐng)域:BIM軟件開發(fā)、計算機應(yīng)用。