敏捷開發(fā):程序員你不能一個人在戰(zhàn)斗
原創(chuàng)【51CTO獨家特稿】在2010年4月24日的Qcon 2010技術大會上,演講嘉賓就敏捷開發(fā)進行了主題演講。當中有部分嘉賓提到在中國大家都理解Agile,但對于Scrum這一方法在中國還無法全面貫徹。這也暴露了當前我國開發(fā)界在管理理念和技術水平上的欠缺。51CTO也向您推薦《初探敏捷開發(fā)》專題以便于您更好的理解敏捷開發(fā)的精髓。
2010年Qcon技術大會現場(51CTO攝)
51CTO覺得還是有必要先為大家介紹一下Scrum,Scrum是一種迭代式增量軟件開發(fā)過程,通常用于敏捷軟件開發(fā)。Scrum在英語的意思是橄欖球里的爭球。雖然Scrum是為管理軟件開發(fā)項目而開發(fā)的,它同樣可以用于運行軟件維護團隊,或者作為計劃管理方法:Scrum of Scrums。
Scrum是一個包括了一系列實踐和預定義角色的過程骨架。Scrum中的主要角色包括同項目經理類似的Scrum主管角色負責維護過程和任務,產品負責人代表利益所有者,開發(fā)團隊包括了所有開發(fā)人員。
在每一次沖刺(一個15到30 天周期 ,長度由開發(fā)團隊決定),開發(fā)團隊創(chuàng)建可用的(可以隨時推出)軟件的一個增量。每一個沖刺所要實現的特性來自產品訂單(product backlog), 產品訂單是按照優(yōu)先級排列的要完成的工作的概要的需求。那些訂單項會被加入一次沖刺由沖刺計劃會議決定。 在會議中,產品負責人告訴開發(fā)團隊他需要完成產品訂單中的哪些訂單項。開發(fā)團隊決定在下一次沖刺中他們能夠承諾完成多少訂單項。 在沖刺的過程中,沒有人能夠變更沖刺訂單(sprint backlog),這意味著在一個沖刺中需求是被凍結的。
管理Scrum過程有很多實施方法,從白板上的即時貼到軟件包。Scrum***的好處是它非常容易學習,而且應用Scrum不需要太多的投入。
敏捷開發(fā)我們欠缺在哪里?
知道Scrum的含義后,我們首先應該了解到東方人較西方人,***的區(qū)別在于內斂的性格。這種性格造成我們對于承擔責任有種天生的抵觸,在Scrum中這恰恰是不負責任的表現。誰都不為項目負責,***導致Scrum敏捷開發(fā)的失敗??梢哉f單打獨斗并不能成為英雄,而只會成為“堂吉訶德”式的人物。
單打獨斗,只能出現錯誤
其次溝通能力上的欠缺,使我們很愿意單打獨斗,而不是以一個整體去戰(zhàn)斗。自然代碼的迭代,文檔的編寫都沒法完成。甚至我們與用戶都愿意溝通,到***用戶是什么樣的需求都不了解。
在這里我們51CTO記者和來自某手機殺毒廠商的吳先生展開過討論。記者提出對于用戶的需求,很多開發(fā)團隊并不是很了解,對敏捷開發(fā)的方法運用也很不合理。吳先生表示他們公司已經在采用相關敏捷開發(fā)方法,每3個星期都會和用戶進行協商。把這個階段完成的產品交給用戶測試,提出新的需求和改進意見后,再進行下一步開發(fā)?;旧显谕瓿砷_發(fā)后,用戶對于需求的完成情況非常滿意。而以前為期4個月的開發(fā)周期,沒有用戶參與,******的項目得不到用戶的認可,認為這并不是他們需要的產品。
這樣的對比讓我們了解到,中國的開發(fā)團隊并不是不希望采用敏捷方法。只是在接受度上還存在問題。另外,中國開發(fā)團隊在人員技術差距上比美國要明顯,這個方面中國要比美國在世界上排名高十位左右。不均衡的技術水平,肯定會造成短板,整個團隊的開發(fā)效率不統一,敏捷也就大受打擊。在51CTO記者對話敏捷專家麥天志先生時,也談到了中國敏捷開發(fā)現狀及發(fā)展之路。
管理方法不科學,也是大家詬病的地方。之前51CTO記者在與著名MVP高陽老師討論Scrum時,高老師也談到,目前很多開發(fā)企業(yè)還處在小作坊階段,并沒有一個很好的企業(yè)文化和管理制度。這些東西雖說和技術無關,但是人心不齊,不患寡而患不均的思潮,必然影響開發(fā)效率。這樣的企業(yè),用以前常用的瀑布模型等做開發(fā),甚至好過使用敏捷開發(fā),用強制力來統一整個團隊。
所以,在敏捷開發(fā)過程中,特別是Scrum方法中,程序員絕對不能一個人在戰(zhàn)斗,不管你是架構師還是初級程序員。你需要的是大家一同完成項目進度,完成自己的職責,盡可能的找出迭代方法。這才是敏捷開發(fā)中需要的好程序員。
延伸閱讀
Scrum用到的術語:
角色
產品負責人 負責維護產品訂單的人,代表利益相關者的利益。Scrum主管 為Scrum過程負責的人,確保scrum的正確使用并使得Scrum的收益***化。開發(fā)團隊 由負責自我管理開發(fā)產品的人組成的跨職能團隊。Scrum團隊產品負責人,Scrum主管和開發(fā)團隊。
工件
沖刺燃盡圖 在沖刺長度上顯示每天進展的圖。產品訂單 按照優(yōu)先級排序的高層需求。沖刺訂單要在沖刺中完成的任務的清單。
其他
沖刺 一個時間周期(通常在2周到1個月之間),開發(fā)團隊會在此期間內完成所承諾的一組訂單項的開發(fā)。
【編輯推薦】