黃勝男王艷松
(1.時(shí)趣互動(dòng)(北京)有限公司,北京 100000;2.國(guó)土資源部土地整治中心,北京 100035)
軟件互聯(lián)網(wǎng)行業(yè)對(duì)敏捷開(kāi)發(fā)及管理模式的應(yīng)用及分析
黃勝男1王艷松2
(1.時(shí)趣互動(dòng)(北京)有限公司,北京 100000;2.國(guó)土資源部土地整治中心,北京 100035)
對(duì)目前國(guó)際上流行有效的敏捷項(xiàng)目管理方法之一的Scrum進(jìn)行了研究,簡(jiǎn)要介紹敏捷開(kāi)發(fā)定義、適用場(chǎng)景、管理工具,以及相應(yīng)的管理模式。詳細(xì)介紹Scrum沖刺流程和定義,以Scrum為例結(jié)合敏捷開(kāi)發(fā)管理模式在互聯(lián)網(wǎng)及軟件行業(yè)實(shí)際應(yīng)用情況,討論了其存在的優(yōu)勢(shì)和可以繼續(xù)優(yōu)化的方向。
Scrum;敏捷開(kāi)發(fā)
1.1 簡(jiǎn)介
相對(duì)于"非敏捷",敏捷開(kāi)發(fā)方法更強(qiáng)調(diào)整個(gè)項(xiàng)目團(tuán)隊(duì)之間的緊密協(xié)作,認(rèn)為面對(duì)面的溝通比書(shū)面的文檔更加直接有效。這種興起于19世紀(jì)90年代的開(kāi)發(fā)模式適用于需要頻繁交付的軟件版本,一般應(yīng)用在緊湊、自我組織型的團(tuán)隊(duì)中,使得整個(gè)團(tuán)隊(duì)能夠很好地適應(yīng)需求變化帶來(lái)的代碼編寫(xiě)和團(tuán)隊(duì)組織活動(dòng);同時(shí)它也更加注重人力在軟件產(chǎn)品開(kāi)發(fā)過(guò)程中的重要作用。
1.2 適用情形
合理地應(yīng)用此種方法會(huì)給當(dāng)今軟件互聯(lián)網(wǎng)公司的管理和運(yùn)營(yíng)帶來(lái)事半功倍的效果。在通常情況下,敏捷開(kāi)發(fā)的適用性可以從以下方面來(lái)衡量:
(1)從產(chǎn)品開(kāi)發(fā)的角度看,敏捷方法適用于需求萌動(dòng)并且快速改變的產(chǎn)品,例如項(xiàng)目初期快速收集得來(lái)的需求,特別是客戶(hù)對(duì)其自身需要毫無(wú)概念的情況下,擬定的需求可能會(huì)影響軟件未來(lái)的開(kāi)發(fā)周期及資金等問(wèn)題。
(2)從團(tuán)隊(duì)的組織結(jié)構(gòu)角度看,組織結(jié)構(gòu)的文化、人員、溝通則決定了敏捷方法是否適用。如團(tuán)隊(duì)溝通順暢,協(xié)作良好,大膽開(kāi)放,樂(lè)于接觸新的管理模式,可以嘗試采用此方法。
1.3 項(xiàng)目管理
適用于敏捷開(kāi)發(fā)方法的管理,已經(jīng)有一些成熟的項(xiàng)目管理工具,可以用它們來(lái)幫助規(guī)劃、跟蹤、分析和整合敏捷開(kāi)發(fā)工作。這些工具在敏捷開(kāi)發(fā)中扮演重要的角色,也是知識(shí)管理的一種方法。通常包括:版本控制整合,進(jìn)度跟蹤,工作分配,集成發(fā)布和迭代規(guī)劃,論壇和軟件缺陷的報(bào)告和跟蹤等。
當(dāng)前互聯(lián)網(wǎng)行業(yè)內(nèi)常見(jiàn)的敏捷方法包括:敏捷數(shù)據(jù)庫(kù)技術(shù),敏捷建模,自適應(yīng)軟件開(kāi)發(fā),特性驅(qū)動(dòng)開(kāi)發(fā),動(dòng)態(tài)系統(tǒng)開(kāi)發(fā)方法,精益軟件開(kāi)發(fā),AUP,Scrum,極限編程,探索性測(cè)試等。常用的項(xiàng)目管理工具包括:JIRA,Microsoft Project,Clarity Process Manager等。
2.1 Scrum流程簡(jiǎn)介
Scrum是一種迭代式增量軟件開(kāi)發(fā)過(guò)程,通常用于敏捷軟件開(kāi)發(fā)的管理。Scrum開(kāi)發(fā)流程中包含了三大角色,包括同項(xiàng)目經(jīng)理類(lèi)似的Scrum主管角色,主要負(fù)責(zé)維護(hù)過(guò)程和任務(wù),統(tǒng)籌管理項(xiàng)目;第二大角色產(chǎn)品負(fù)責(zé)人代表了利益所有者,主要負(fù)責(zé)確定產(chǎn)品的功能和達(dá)到要求的標(biāo)準(zhǔn),指定軟件的發(fā)布日期和交付的內(nèi)容等,同時(shí)有接受或拒絕開(kāi)發(fā)團(tuán)隊(duì)工作成果的特權(quán);而第三類(lèi)開(kāi)發(fā)團(tuán)隊(duì)則包括了所有的開(kāi)發(fā)人員,主要負(fù)責(zé)軟件產(chǎn)品的開(kāi)發(fā)工作,團(tuán)隊(duì)人數(shù)控制在5~10人左右,每個(gè)成員負(fù)責(zé)不同的技術(shù),但要求每位成員必須要有很強(qiáng)的自我管理能力和表達(dá)能力;成員可以采用任何工作方式,只要能達(dá)到Sprint沖刺的目標(biāo)即可。
每個(gè)周期叫做一次沖刺,時(shí)間一般控制在15到30天,在一個(gè)沖刺的時(shí)間內(nèi),開(kāi)發(fā)團(tuán)隊(duì)創(chuàng)建可用的軟件增量。沖刺周期中的每一天都會(huì)舉行項(xiàng)目狀況碰頭的會(huì)議,被稱(chēng)為“Scrum”或“每日站立會(huì)議”。會(huì)議上,團(tuán)隊(duì)成員需要回答三個(gè)問(wèn)題:今天你完成了哪些工作?下一步你打算做什么?完成你的目標(biāo)是否存在什么困難?成員回答后,Scrum主管需要記錄這些問(wèn)題。每一個(gè)沖刺完成后,都會(huì)舉行一次沖刺回顧會(huì)議,在會(huì)議上所有團(tuán)隊(duì)成員都來(lái)總結(jié)這個(gè)沖刺的工作,反思成果與問(wèn)題。舉行沖刺回顧會(huì)議是為了進(jìn)行持續(xù)過(guò)程改進(jìn)。
2.2 Scrum特點(diǎn)
Scrum提倡所有團(tuán)隊(duì)成員坐在一起工作,改善了交流,以團(tuán)隊(duì)為基礎(chǔ),有助于創(chuàng)造自我組織的團(tuán)隊(duì),優(yōu)化了合作方式;制定了一個(gè)非常簡(jiǎn)單的可重復(fù)執(zhí)行的流程,強(qiáng)調(diào)項(xiàng)目有關(guān)的規(guī)范,是現(xiàn)有設(shè)計(jì)流程的一個(gè)總結(jié)。
Scrum的一個(gè)關(guān)鍵原則是承認(rèn)客戶(hù)可以在項(xiàng)目過(guò)程中改變主意,采用了經(jīng)驗(yàn)方法——承認(rèn)問(wèn)題無(wú)法完全理解或定義,關(guān)注于如何使得開(kāi)發(fā)團(tuán)隊(duì)快速推出和響應(yīng)不斷出現(xiàn)的需求的能力最大化,是最大化生產(chǎn)率的一種方法。
更重要的是,在項(xiàng)目負(fù)責(zé)人的帶領(lǐng)下,團(tuán)隊(duì)會(huì)定期反省如何能夠做到更有效,并相應(yīng)地調(diào)整團(tuán)隊(duì)的行為,不斷優(yōu)化進(jìn)步。
3.1 計(jì)劃管理方法
Scrum在本文的應(yīng)用中主要是指用作項(xiàng)目計(jì)劃管理方法。按照每個(gè)季度或長(zhǎng)期存在的產(chǎn)品的整體計(jì)劃劃分Scrum項(xiàng)目組。每個(gè)Scrum組的人員組織形式包括:一個(gè)項(xiàng)目負(fù)責(zé)人,即項(xiàng)目主管;開(kāi)發(fā)團(tuán)隊(duì);QA團(tuán)隊(duì);以及一個(gè)產(chǎn)品經(jīng)理。
3.2 季度計(jì)劃
每個(gè)季度之初的第一次沖刺會(huì)議上,項(xiàng)目負(fù)責(zé)人先跟產(chǎn)品經(jīng)理協(xié)商,列表整個(gè)季度的主要計(jì)劃:按照完成的難易程度分為最低目標(biāo),最高目標(biāo)。全員參會(huì)討論各個(gè)目標(biāo)的合理性,頭腦風(fēng)暴對(duì)于各個(gè)目標(biāo)的實(shí)現(xiàn)方式和方法,并由項(xiàng)目負(fù)責(zé)人進(jìn)行匯總,最后確定整個(gè)季度的最低目標(biāo)和最高目標(biāo)。
3.3 沖刺周期的任務(wù)拆分
每個(gè)沖刺周期的工作計(jì)劃是從產(chǎn)品經(jīng)理處提出新的產(chǎn)品需求,交予項(xiàng)目主管,同時(shí)加上項(xiàng)目主管提出長(zhǎng)期工作計(jì)劃,制作成的沖刺計(jì)劃表。計(jì)劃表中的每個(gè)計(jì)劃按照優(yōu)先級(jí)不同排序完成。項(xiàng)目組全體成員參與沖刺會(huì)議,討論本沖刺中各項(xiàng)需求計(jì)劃,大家都沒(méi)有異議后,按照自己負(fù)責(zé)的領(lǐng)域主動(dòng)領(lǐng)取沖刺計(jì)劃表中屬于自己領(lǐng)域內(nèi)的任務(wù)項(xiàng),并根據(jù)難度及能力給出一個(gè)預(yù)計(jì)完成時(shí)間。如果遇到大型或較為繁瑣的任務(wù),領(lǐng)取后可自行拆分為一個(gè)沖刺周期內(nèi)可實(shí)現(xiàn)的小任務(wù),然后給出子任務(wù)的進(jìn)度估計(jì),以及總體任務(wù)需幾個(gè)分期。每個(gè)沖刺周期持續(xù)時(shí)間2周,如果任務(wù)完成沖刺時(shí)間還沒(méi)到可以繼續(xù)領(lǐng)取剩余的拆分任務(wù)項(xiàng);如果一個(gè)沖刺的預(yù)期時(shí)間內(nèi)沒(méi)有完成任務(wù),也可申請(qǐng)延期。
3.4 月末產(chǎn)品展示會(huì)
每個(gè)月兩次沖刺周期的時(shí)間結(jié)束后,月末有一個(gè)產(chǎn)品展示活動(dòng)。各個(gè)Scrum項(xiàng)目組分別拿出自己階段性成果在公司平臺(tái)范圍內(nèi)做一個(gè)分享展示,并不要求一定是成型的產(chǎn)品,某個(gè)功能的簡(jiǎn)單優(yōu)化也可以,只要能體現(xiàn)出不同和優(yōu)化的點(diǎn)即可,主要目的是鼓勵(lì)交流分享,鼓勵(lì)創(chuàng)新和階段性成果。
3.5 一些其他改進(jìn)
為了節(jié)約時(shí)間,互聯(lián)網(wǎng)公司在實(shí)際應(yīng)用時(shí),一般是前面一個(gè)沖刺的總結(jié)會(huì)和下個(gè)沖刺的討論會(huì)同時(shí)進(jìn)行,放在每個(gè)沖刺的第一天。其中沖刺總結(jié)會(huì)相對(duì)輕松,提的意見(jiàn)和建議也并不要求是實(shí)際的技術(shù)問(wèn)題,只要與項(xiàng)目進(jìn)展相關(guān)都可以提。
月末的產(chǎn)品展示會(huì)上也是一個(gè)各個(gè)Scrum組交流的場(chǎng)合,類(lèi)似茶話(huà)會(huì),氣氛比較輕松。
關(guān)于日常考勤,對(duì)于Scrum組中的同事也做出了人性化的調(diào)整,凡是參與Scrum項(xiàng)目的員工,理論上上下班無(wú)需按時(shí)間記錄考勤,只需要完成日常工作即可。
應(yīng)用敏捷方法不僅可以在項(xiàng)目的開(kāi)發(fā)上帶來(lái)便捷,也可以對(duì)日常工作的管理工作產(chǎn)生積極影響,比如:在項(xiàng)目負(fù)責(zé)人的選擇方面:為了適應(yīng)敏捷開(kāi)發(fā),項(xiàng)目組的負(fù)責(zé)人首先在技術(shù)上面應(yīng)充當(dāng)領(lǐng)頭羊的作用,可以在任何人遇到疑惑時(shí)指出合適的方向,同時(shí)又不應(yīng)訥于言表,應(yīng)當(dāng)思維活躍清晰,又善于引導(dǎo)項(xiàng)目組成員發(fā)散思維,重視頭腦風(fēng)暴,重視團(tuán)隊(duì)協(xié)作,有效溝通。
關(guān)于技術(shù)分享:敏捷方法注重溝通。無(wú)論誰(shuí)掌握著新技術(shù)或做出了新的突破都會(huì)以實(shí)際資金激勵(lì)的方式鼓勵(lì)員工組織展開(kāi)分享。鼓勵(lì)分享與共贏,共同進(jìn)步。鼓勵(lì)項(xiàng)目組內(nèi)部的技術(shù)分享會(huì),也會(huì)鼓勵(lì)公司級(jí)別非技術(shù)層面的綜合分享,可以拿出自己任意領(lǐng)域的知識(shí)經(jīng)驗(yàn)和閱歷,只要可以幫助到團(tuán)隊(duì)都會(huì)得到支持。
不斷創(chuàng)新和學(xué)習(xí):重視創(chuàng)新,無(wú)論開(kāi)發(fā)的流程上,測(cè)試的探索上,還是項(xiàng)目管理上,都應(yīng)不斷學(xué)習(xí),不斷探索新方法新思路;同時(shí)在項(xiàng)目組內(nèi)部也鼓勵(lì)改革,嘗試新技術(shù)新手段。
使用敏捷方法對(duì)于項(xiàng)目進(jìn)展而言遇到的一個(gè)很重要的
問(wèn)題是對(duì)項(xiàng)目的拆分比較困難:大的需求問(wèn)題開(kāi)發(fā)起來(lái)勢(shì)必花費(fèi)較長(zhǎng)時(shí)間,做不到短平快就失去了沖刺的意義,不得不拆分成小問(wèn)題;但大需求一旦拆分成很多小需求,每個(gè)需求的改動(dòng)在每個(gè)沖刺結(jié)束后便不易看到整體上的實(shí)質(zhì)效果,同時(shí),在業(yè)務(wù)方面聯(lián)系緊密的模塊在實(shí)際的拆分上面總會(huì)互有依賴(lài),如何減少耦合也是項(xiàng)目拆分時(shí)候的難點(diǎn)。
而且目前的敏捷方法還是在開(kāi)發(fā)層面使用廣泛,在管理流程中并沒(méi)引入設(shè)計(jì)人員和運(yùn)營(yíng)人員參與。目前運(yùn)營(yíng)人員扮演的角色還是主要與用戶(hù)打交道,以及反饋bug給QA人員,更偏向于產(chǎn)品的技術(shù)支持,而產(chǎn)品的新需求多數(shù)還是產(chǎn)品經(jīng)理設(shè)計(jì)出來(lái)的,雖然說(shuō)基于大量用戶(hù)數(shù)據(jù),但數(shù)據(jù)是死的人是活的,如何使死的數(shù)據(jù)應(yīng)運(yùn)而生出不斷變化的需求,是一個(gè)需要考慮的問(wèn)題;因此考慮是否可以在管理的每個(gè)沖刺會(huì)議中引入運(yùn)營(yíng)人員,更真實(shí)地反應(yīng)用戶(hù)遇到的實(shí)際問(wèn)題和真正有用的需求,會(huì)比開(kāi)會(huì)頭腦風(fēng)暴時(shí)由業(yè)務(wù)設(shè)計(jì)者本身代替用戶(hù)想的要周到和實(shí)際。而目前的設(shè)計(jì)人員只同產(chǎn)品經(jīng)理和前端開(kāi)發(fā)人員打交道,只有當(dāng)開(kāi)發(fā)提出一個(gè)設(shè)計(jì)需求時(shí),設(shè)計(jì)人員才會(huì)參與到項(xiàng)目中,個(gè)人感覺(jué)也可以增加設(shè)計(jì)人員在項(xiàng)目中的比重,多收集反饋,傾聽(tīng)用戶(hù)的聲音,同時(shí)關(guān)注同類(lèi)產(chǎn)品;用戶(hù)的反饋可以直接交予設(shè)計(jì)提前做準(zhǔn)備,這樣當(dāng)開(kāi)發(fā)或者產(chǎn)品提出對(duì)應(yīng)需求時(shí),設(shè)計(jì)人員可以有的放矢,而不是紙上談兵。
另外,Scrum會(huì)議的效率還可以進(jìn)一步提高,例如每日的站會(huì)可以在項(xiàng)目組內(nèi)建立討論組或者QQ群,借助網(wǎng)絡(luò)在線(xiàn)交流一下,本身不會(huì)花費(fèi)很久的時(shí)間,同時(shí)在線(xiàn)交流的優(yōu)勢(shì)在于交流記錄可以留存,方便周期結(jié)束后總結(jié)會(huì)議上使用。
第三,不同于KPI,Scrum不是能夠明確量化個(gè)人任務(wù)的管理方式,其實(shí)還是比較注重團(tuán)隊(duì)合作,項(xiàng)目的目標(biāo)制定也是以Scrum團(tuán)隊(duì)為單位,具體分給個(gè)人的工作任務(wù)相互之間也是有需求有交集的,不太適合公司層面的績(jī)效考評(píng),因?yàn)槿蝿?wù)完不成只需向項(xiàng)目負(fù)責(zé)人申請(qǐng)延期即可,與項(xiàng)目組成員自身關(guān)系不大,在管理層面而言,并不是一個(gè)好的激勵(lì)團(tuán)隊(duì)的方式,因此,如果找到一個(gè)能更好的掛鉤項(xiàng)目組成員績(jī)效的管理方式,也許會(huì)對(duì)員工起到更積極的促進(jìn)作用。
[1]韓鵬.小規(guī)模團(tuán)隊(duì)的敏捷開(kāi)發(fā)研究[J].軟件工程師,2011(7):42-46.
[2]陳楠,陳文培.敏捷開(kāi)發(fā)中相關(guān)技術(shù)的應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件,2011,28(4):202-204.
[3]JIM BIR D.三種敏捷開(kāi)發(fā)方式技術(shù)指南[EB/OL].http://www. searchbi.com.cn/showcontent_86688.htm,2014.
[4]陳國(guó)棟,羅省賢.Scrum敏捷軟件開(kāi)發(fā)方法實(shí)踐中的改進(jìn)和應(yīng)用[J].計(jì)算機(jī)技術(shù)與發(fā)展,,21(12):97-99.
[5]張智海,周?chē)?guó)祥.Scrum方法的研究與分析[J].合肥工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2010,33(2):197-200.
Application andAnalysis ofAgile Development and Management Mode in Software Internet Industry
Huang Shengnan1Wang Yansong2
(1.Time Interest Interaction(Beijing)Co.Ltd,Beijing 100000; 2.Land Management Center of Ministry of Land and Resources,Beijing 100035)
tract】 Scrum,which is one of the popular and effective agile project management methods in the world,is introduced in this paper.The definition,application scenarios,management tools and management modes of agile project management are introduced briefly.Scrum sprint process and define are introduced.Taking Scrum as an example,combining with the practical application of agile development and management mode in the Internet and software industry,the advantages and optimization direction of agile development are discussed.
words】 Scrum;agile development
TP311
A
1008-6609(2016)09-0087-03
黃勝男,女,山東濟(jì)南人,碩士,軟件工程師,研究方向:軟件工程。