褚晨雷
摘要:當(dāng)前,在國內(nèi)的多媒體播放軟件開發(fā)行業(yè)中通常存在著以下問題,產(chǎn)品不能按時交付,交付的產(chǎn)品質(zhì)量出現(xiàn)問題需要返工,客戶滿意度低,開發(fā)過程中很少有迭代與客戶反饋,后期變更的成本太高,測試與文檔開發(fā)人員在項目前期的利用率低,后期卻加班頻繁等,這種種的不利因素對于穩(wěn)定產(chǎn)品質(zhì)量的帶來了極大的隱患與風(fēng)險。因此,有必要對于國內(nèi)的多媒體播放軟件開發(fā)項目進(jìn)行項目管理上的改進(jìn)。本文將首先分析當(dāng)前多媒體播放軟件開發(fā)行業(yè)的現(xiàn)狀,介紹目前行業(yè)中普遍采用的項目管理方法,然后對于目前行業(yè)中在項目管理上所存在的問題,提出適合于行業(yè)的、改進(jìn)的項目管理方法。
Abstract: At present, in the domestic multimedia player software development industry, there are some following problems, for example, products can not be delivered on time, products with quality problems need rework, customer satisfaction is low, there are few iteration and customer feedback in the development, the late change cost is too high, the utilization rate of testing and documentation developers in the early is low, but later work overtime is frequent, so this kind of unfavorable factors have brought great hidden dangers and risks for the stability of product quality. Therefore, it is necessary to improve the project management of the domestic multimedia broadcast software development project. This paper firstly analyzes the current situation of multimedia player software development industry, introduces the project management method widely used in the industry at present, and then aiming at problems, puts forward the improved project management method suitable for the industry.
關(guān)鍵詞:Scrum;軟件開發(fā);項目管理
Key words: Scrum;software development;project management
中圖分類號:TP311.5 文獻(xiàn)標(biāo)識碼:A 文章編號:1006-4311(2017)23-0244-02
1 研究背景及意義
隨著多媒體播放軟件開發(fā)行業(yè)的興起,競爭也開始加劇。如何對多媒體軟件開發(fā)項目的過程進(jìn)行更加有效的管理,成為了擺在企業(yè)管理者面前的一道難題。在國內(nèi)外大部分的多媒體播放軟件開發(fā)項目中,比較多的是采用傳統(tǒng)的項目管理模式,如瀑布模型開發(fā)模式,來進(jìn)行新產(chǎn)品的研發(fā)工作。軟件開發(fā)不僅僅是編寫代碼,更關(guān)系到如何有效地組織項目人員,如何高效地發(fā)揮項目人員的主觀能動性,如何真正地發(fā)揮團(tuán)隊的力量,來快速地完成高質(zhì)量的產(chǎn)品。因此,需要采用更加靈活有效的流程來克服這些問題和局限性。在多媒體播放開發(fā)行業(yè)的高速發(fā)展和客戶需求的日益增加和變化的大環(huán)境之下,應(yīng)該認(rèn)識到只有先進(jìn)靈活的、高效的項目管理理念,才能保證多媒體播放軟件項目更加有效地開展,才能更快地發(fā)布質(zhì)量更好的產(chǎn)品,才能占領(lǐng)市場的先機(jī)和優(yōu)勢,才能在競爭中取得勝利。
2 項目管理理論
項目管理理論是在項目過程中使用專門的技能、知識、方法和工具,對既有的資源進(jìn)行合理地管理、調(diào)度和分配;通過這個過程,使得項目的完成結(jié)果可以達(dá)到或者超過項目干系人的期望和需求。為了使項目獲得成功,必須對項目制定合理的計劃,對可能存在的風(fēng)險、所需資源、工作范圍、要實現(xiàn)的任務(wù)、花費工作量(成本)、進(jìn)度、經(jīng)歷的里程碑等做到合理的安排。
2.1 什么是項目管理 項目管理[1]是指項目的管理人員,使用特定的方法、技能和有關(guān)的理論知識,在資源限定的條件下,對項目進(jìn)行有效地管理和控制。從項目的開始,直至項目的最終結(jié)束,在此過程中,通過制定計劃、組織協(xié)調(diào)、領(lǐng)導(dǎo)、監(jiān)控和干預(yù),從而實現(xiàn)預(yù)先設(shè)定的項目目標(biāo)。從本質(zhì)來說,項目管理行為沒有秘密,經(jīng)過組織的工作和活動,都可以被認(rèn)為是項目管理行為。但從近代開始,項目管理行為漸漸被提煉和發(fā)展成為了一種具備廣泛科學(xué)性質(zhì)的理論模式。
2.2 瀑布式開發(fā)模式理論 瀑布式開發(fā)模式是由溫斯頓·羅伊斯在1970年提出的,直至19世紀(jì)80年代早期,它一直是僅有的被普遍使用的軟件開發(fā)模型。瀑布式開發(fā)模式的中心思想是按照程序?qū)⑹虑橛煞被啠言O(shè)計與實現(xiàn)分別對待。這樣做的優(yōu)點是方便有序地分工合作。各個活動自上而下、有序銜接,如同瀑布流水,逐級下落。瀑布式開發(fā)模式是一個開發(fā)框架,是經(jīng)歷一系列的階段按順序開展的開發(fā)過程。因此,如果在過程中有功能未被覆蓋或者出現(xiàn)了問題,需要“返回”到上一個階段并進(jìn)行相應(yīng)的修改。開發(fā)階段從一個階段“流動”到下一個階段,這也是瀑布式開發(fā)模式名字的由來。
在軟件工程中,瀑布式開發(fā)模式占據(jù)重要的地位,它是軟件開發(fā)的基礎(chǔ)架構(gòu)。它也是軟件的一種開發(fā)路線,將項目拆分為一定數(shù)量的階段。有序執(zhí)行每一個階段,而且依賴于先前的已完工的階段。使用瀑布開發(fā)方法的情形下,開發(fā)工作的各個部分需要區(qū)分評估,并且常常由不同的團(tuán)隊來實施[2]。
3 基于Scrum的多媒體播放軟件項目管理方法設(shè)計
基于多媒體播放軟件開發(fā)行業(yè)的特點,與當(dāng)前模式所存在的弊病與局限性,需要針對當(dāng)前模式所存在的問題,結(jié)合行業(yè)特點,改進(jìn)現(xiàn)有開發(fā)模式的思路,研究適合于行業(yè)的、更加高效的項目管理模式,從而使開發(fā)過程更加高效,提升產(chǎn)品質(zhì)量,提高客戶滿意度。
3.1 多媒體播放軟件項目特點 國內(nèi)的多媒體播放軟件項目的特點如下:
3.1.1 項目無法按時交付 當(dāng)開始一個新的多媒體軟件開發(fā)項目時,由于種種原因,通常沒有人會特別清楚如何才能實現(xiàn)它、會碰到多少技術(shù)難題、多久才能攻克、多久才能交付。這取決于項目的范圍與復(fù)雜度。
3.1.2 項目工期緊,加班普遍 軟件行業(yè)競爭激烈,多媒體播放軟件開發(fā)行業(yè)也是如此。很多多媒體軟件開發(fā)公司加班的情況非常普遍,主要原因是項目的工期緊張。一方面,如果預(yù)估的項目的最終交付時間存在偏差,項目進(jìn)展滯后,那么經(jīng)常需要加班趕工來追趕進(jìn)度。另外一方面,在交付產(chǎn)品給客戶后,也存在由于質(zhì)量問題而返工的現(xiàn)象,并且客戶需要在他們的code freeze之前修復(fù)所有的bug,這也增加了加班的現(xiàn)象。
3.1.3 項目人員安排的不確定性 多媒體播放軟件開發(fā)項目中,具體的開發(fā)人員有自己負(fù)責(zé)的模塊。比如負(fù)責(zé)圖像解碼的開發(fā)人員在暫時沒有后續(xù)的開發(fā)任務(wù)的情況之下,會抽出身來兼顧其他的開發(fā)項目。而這樣的安排所導(dǎo)致的后果是,當(dāng)有后續(xù)的圖像解碼方面的工作時,該開發(fā)人員仍然在其他的項目中,項目開發(fā)進(jìn)度可能需要進(jìn)行時間上的調(diào)整,或者是開發(fā)人員上的調(diào)整。而由其他的開發(fā)人員接管,由于需要一段熟悉期,通常會減慢之前的開發(fā)進(jìn)度。
3.1.4 需求變化多 多媒體播放軟件開發(fā)項目中,需求的變更正在變得越來越頻繁。這包括外部環(huán)境的變更需求與客戶的需求變更。
3.1.5 所需要支持的平臺、系統(tǒng)眾多 多媒體播放軟件開發(fā)項目中,需要支持跨平臺,不同系統(tǒng),不同設(shè)備以及不同CPU架構(gòu)上的播放器開發(fā)。這確保了用戶可以在各平臺、各系統(tǒng)上二次開發(fā)他們自己的多媒體播放器而不用擔(dān)心平臺、設(shè)備、協(xié)議的局限性。
3.2 基于Scrum模式的項目管理方法
3.2.1 改進(jìn)現(xiàn)有開發(fā)模式的思路 如果企業(yè)的目標(biāo)是重復(fù)性的制造與生產(chǎn),那么原有的傳統(tǒng)的流程是適用的,而對于像多媒體播放軟件開發(fā)這樣需要不斷創(chuàng)新、需求變更頻繁、需要不斷開發(fā)新產(chǎn)品的行業(yè)來說,原有的模式已顯得過于笨重和低效,需要一個不同的、改進(jìn)的模式來解決原有模式所存在的問題。
3.2.2 更改項目計劃的粒度 原有模式中經(jīng)常出現(xiàn)花了很多時間做調(diào)研和制訂計劃,然而還是無法按計劃交付產(chǎn)品。這是因為多媒體播放軟件開發(fā)項目中有大量的創(chuàng)新性工作,而這些創(chuàng)新性工作又沒有過往數(shù)據(jù)可供參考。隨著項目的進(jìn)行,再對即將要做的工作、涌現(xiàn)的需求、需求的變更制訂詳細(xì)的計劃,依此類推。這么做的好處在于避免了前期做很多假設(shè)來制定一個看似完整、實際不準(zhǔn)確的項目計劃[3]。
3.2.3 以迭代、持續(xù)交付的方式來工作 在改進(jìn)的模式中,可以將功能模塊進(jìn)行劃分,用一個個短周期迭代的方式來工作,在每個迭代周期結(jié)束后交付可工作的若干功能模塊給客戶,并獲取客戶反饋。項目團(tuán)隊總是專注于優(yōu)先開發(fā)并發(fā)布對于客戶高價值的功能模塊,完整的功能模塊是由一系列的增量產(chǎn)品組成的。這么做的好處在于,基于迭代的工作模式盡早交付給客戶有價值的部分功能,并更早的獲得客戶反饋。因此,這種改進(jìn)的模式避免了開發(fā)低價值或者不需要的功能模塊,從而比原有模式更快的交付產(chǎn)品[4]。
3.2.4 更好地獲取客戶反饋 在改進(jìn)的模式中,需要強(qiáng)調(diào)以人為本,鼓勵讓客戶“參與”到項目開發(fā)中??蛻羰擒浖淖罱K使用者,通過更早地交付可工作的功能模塊給客戶,讓客戶可以在實際環(huán)境中運行與測試,從而盡早地獲得反饋,有助于開發(fā)人員更好地理解客戶的真實需求,避免了閉門造車所帶來的錯誤。
3.2.5 組建自組織的團(tuán)隊并提升團(tuán)隊士氣 在改進(jìn)的模式中,不再是項目經(jīng)理分配任務(wù)給相應(yīng)的團(tuán)隊成員,而是建立一個相對平行的組織。由于淡化了管理和被管理的組織關(guān)系,組織更加開放,團(tuán)隊氛圍也更加和諧。這種更平等的組織結(jié)構(gòu)可以促進(jìn)團(tuán)隊成員的交流,激發(fā)開發(fā)人員的工作熱情,并且提高開發(fā)效率[5]。
3.2.6 更好地處理需求變更或涌現(xiàn)的需求 在多媒體軟件開發(fā)項目中,變更或者涌現(xiàn)的新需求是經(jīng)常存在的。因此,改進(jìn)的模式中,需要更好地處理用戶需求在開發(fā)過程中的變化及時與客戶溝通,必須確保在改進(jìn)的模式中能夠更早地知道需求變更和涌現(xiàn)的新需求以更好地應(yīng)對所帶來的影響。
3.2.7 優(yōu)化測試與文檔開發(fā)人員的利用率 在改進(jìn)的模式中,確保項目以持續(xù)、穩(wěn)定的步伐進(jìn)行的情況下,保證了每個階段都有可交付、可測試的功能模塊。這種可交付、可測試的功能模塊使得測試與文檔開發(fā)人員可以更早地加入項目中。
4 總結(jié)與展望
基于Scrum的管理理念目前越來越流行,它強(qiáng)調(diào)了以人為核心,創(chuàng)造一個和諧的項目環(huán)境,激發(fā)團(tuán)隊成員的潛力,從而最大化團(tuán)隊的生產(chǎn)力。通過快速迭代,集中體現(xiàn)了其能快速適應(yīng)各種變化的優(yōu)勢。這種理念要求客戶相較以往更加頻繁和更加緊密地參與到產(chǎn)品開發(fā)中。這可能會導(dǎo)致有部分客戶不習(xí)慣或者不適應(yīng),因此在開發(fā)過程中需要和客戶加強(qiáng)溝通,使客戶更直觀地意識到他們在產(chǎn)品開發(fā)中花費一定的時間參與進(jìn)來可以幫助提升產(chǎn)品質(zhì)量,產(chǎn)生雙贏的局面。另外,目前基于Scrum管理理念主要是運用于軟件開發(fā)項目中,相信在不久的將來會有更加廣闊的發(fā)展空間。通過對個體、應(yīng)用技術(shù)、資源對象的進(jìn)一步研究和具體實踐,基于Scrum的管理理論會更加完善,并應(yīng)用到其他領(lǐng)域中。
參考文獻(xiàn):
[1]MBA lib (wiki.mbalib.com),項目管理:項目管理簡介,http://wiki.mbalib.com/wiki/項目管理.
[2]周三多.管理學(xué)-原理與方法[M].五版.上海:復(fù)旦大學(xué)出版社,2011.
[3]John Hunt,《Agile Software Construction》, UK Springer Verlag, 2010.
[4]王海鵬.軟件質(zhì)量改進(jìn)和風(fēng)險降低之道[M].北京:電子工業(yè)出版社,2012.
[5]桑大勇,王瑛,吳麗華.敏捷軟件開發(fā)方法與實踐[M].西安:西安電子科技大學(xué)出版社,2010.