段怡
摘 要:大數(shù)據(jù)時代給軟件項目管理帶來了新思維。本文首先分析了軟件項目管理中各種數(shù)據(jù)的來源,并從數(shù)據(jù)規(guī)模、多源異構(gòu)和動態(tài)性三個角度,闡述了軟件項目管理中數(shù)據(jù)的“大”的含義;其次總結(jié)了大數(shù)據(jù)對軟件項目管理帶來的三個方面的影響;然后提出了數(shù)據(jù)驅(qū)動的軟件項目管理的過程;最后提出了基于大數(shù)據(jù)的軟件項目管理的三條建議。
關(guān)鍵詞:軟件項目管理;大數(shù)據(jù);過程驅(qū)動;數(shù)據(jù)驅(qū)動
中圖分類號:F270 文獻標識碼:A 文章編號:1671-2064(2018)21-0151-02
軟件項目管理是為了使軟件項目能夠按照預(yù)定的成本、進度、質(zhì)量順利完成,而對人員(People)、產(chǎn)品(Product)、過程(Process)和項目(Project)進行分析和管理的活動[1]。其內(nèi)容主要涉及以下幾個方面:人員的組織與管理,軟件度量,軟件項目計劃,風險管理,軟件質(zhì)量保證,軟件過程能力評估,軟件配置管理等。與其他項目管理相比,軟件項目管理具有兩個方面的不同:一是,軟件是純知識產(chǎn)品,其開發(fā)進度和質(zhì)量很難度量;二是,軟件系統(tǒng)的復(fù)雜性,導致了軟件開發(fā)中各種難預(yù)見和難控制的風險。
隨著項目管理系統(tǒng)、版本控制系統(tǒng)、缺陷追蹤系統(tǒng)、郵件列表和論壇等工具在軟件開發(fā)和管理活動中得到普及,這些工具產(chǎn)生了海量的數(shù)據(jù),記錄了開發(fā)的過程和管理的軌跡。如何有效收集、組織和運用這些大數(shù)據(jù),采用新的視角,重新審視軟件項目管理的基本問題,突破原有的認知瓶頸,并在新條件下探索新的項目管理模式和規(guī)律,進而改進互聯(lián)網(wǎng)時代軟件項目管理方法,成為了大數(shù)據(jù)時代下軟件項目管理的新思維。
在國內(nèi)外,應(yīng)用大數(shù)據(jù)技術(shù)創(chuàng)新管理的研究較多。在國外方面,文獻[2]認為大數(shù)據(jù)計算能夠帶來商業(yè)、科學和社會的革命性突破。文獻[3]關(guān)注大數(shù)據(jù)如何使得管理創(chuàng)新有效。文獻[4]強調(diào)數(shù)據(jù)驅(qū)動的決策將使得管理創(chuàng)新更加科學有效。在國內(nèi)方面,文獻[5]討論了大數(shù)據(jù)背景下的商務(wù)管理創(chuàng)新問題。文獻[6]以國家電網(wǎng)為例,提出基于大數(shù)據(jù)的商業(yè)模式創(chuàng)新新思維框架。這些工作雖然從不同視角討論了大數(shù)據(jù)對管理創(chuàng)新帶來的影響,但未討論對軟件項目管理的改變。
針對上述問題,本文詳細討論了大數(shù)據(jù)對軟件項目管理帶來的新思維。首先,分析了當前軟件項目管理中可用的各種大數(shù)據(jù);其次,闡述了大數(shù)據(jù)對軟件項目管理帶來的影響;然后,從流程視角,提出了數(shù)據(jù)驅(qū)動的軟件項目管理的具體流程;最后,提出了實施基于大數(shù)據(jù)的軟件項目管理的若干建議。
1 軟件項目管理中的大數(shù)據(jù)
因為開發(fā)和管理活動的需求,近年來軟件項目廣泛使用了版本管理系統(tǒng)、質(zhì)量保障系統(tǒng)、缺陷追蹤系統(tǒng)、郵件列表和論壇等工具,大量軟件項目管理所需的數(shù)據(jù)被保存起來,如圖1所示。在軟件開發(fā)和管理中,相關(guān)人員的每一次代碼提交、每一次測試報告、每一個缺陷報告、對缺陷的每一次評論、每一個郵件及回復(fù),都不完整的保存在軟件倉庫中,記錄了軟件開發(fā)過程和管理過程的演變,以及開發(fā)者個體的行為。
對軟件項目管理來說,之所以稱大數(shù)據(jù)為“大”,主要體現(xiàn)在數(shù)據(jù)規(guī)模大、多源異構(gòu)和動態(tài)性三個方面,具體內(nèi)容如:(1)從數(shù)據(jù)規(guī)模的角度來看,可從組織內(nèi)部和網(wǎng)絡(luò)上獲得海量與項目相關(guān)的數(shù)據(jù)。例如,僅Gonme一個開源項目就有超過70萬個缺陷數(shù)據(jù),Apache開源社區(qū)擁有超過600萬封郵件,Mozilla社區(qū)有超過2億條的代碼提交日志。據(jù)不完全統(tǒng)計,僅互聯(lián)網(wǎng)上所有開源項目的版本控制系統(tǒng)數(shù)據(jù)總量估計在70TB的級別。(2)從數(shù)據(jù)來源和結(jié)構(gòu)角度來看,這些數(shù)據(jù)來源于不同的軟件系統(tǒng),具有不同的數(shù)據(jù)結(jié)構(gòu)。這些數(shù)據(jù)結(jié)構(gòu)有可以直接使用的結(jié)構(gòu)化數(shù)據(jù),還包括大量的需要進一步處理的半結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)。(3)從動態(tài)性來看,軟件項目管理相關(guān)的數(shù)據(jù)都被各種系統(tǒng)不斷記錄。通過對這部分數(shù)據(jù)流的實時處理,為軟件項目管理的持續(xù)提升和改進提供了可能。
2 大數(shù)據(jù)對軟件項目管理的影響
(1)大數(shù)據(jù)為軟件項目管理提供了更多的證據(jù),使得項目管理能在一個更廣泛的數(shù)據(jù)生態(tài)中開展管理工作。大數(shù)據(jù)下的軟件項目管理,與傳統(tǒng)的軟件項目管理有著本質(zhì)不同。傳統(tǒng)軟件項目管理受制于軟件開發(fā)過程數(shù)據(jù)和項目管理過程數(shù)據(jù)的匱乏,使得項目管理者無法準確獲得項目的全貌,猶如“只見樹木,不見森林”;而大數(shù)據(jù)下的軟件項目管理可實時獲得各種開發(fā)數(shù)據(jù)和管理數(shù)據(jù),“可見樹木,也可見森林”。這樣來看,我們把傳統(tǒng)軟件項目管理數(shù)據(jù)生態(tài)想象成一個“水庫”,則大數(shù)據(jù)下軟件項目管理的數(shù)據(jù)生態(tài)則是“大海”。(2)大數(shù)據(jù)決定了軟件項目管理方式從單純的過程驅(qū)動轉(zhuǎn)換為過程和數(shù)據(jù)驅(qū)動。傳統(tǒng)的軟件項目管理是基于過程模型的項目管理,按照項目的生命周期展開過程管理,總體上屬于被動管理。因為,軟件開發(fā)過程與項目管理過程相分離。大數(shù)據(jù)下軟件項目管理應(yīng)是過程驅(qū)動和數(shù)據(jù)驅(qū)動并重的管理。其中,過程驅(qū)動的項目管理方式強調(diào)從過程視角,貫穿項目的全生命周期,從需求、項目規(guī)劃、軟件開發(fā)、質(zhì)量全程跟蹤等多個階段對軟件項目進行全過程管理;數(shù)據(jù)驅(qū)動的項目管理方式強調(diào)從動態(tài)的視角出發(fā),基于動態(tài)的數(shù)據(jù)收集和數(shù)據(jù)分析,可以幫助管理者準確理解項目的過去、并對未來進行預(yù)測。這種管理方式,使得軟件開發(fā)過程與項目管理過程形成一個良性的閉環(huán),進而使項目管理從被動管理轉(zhuǎn)換為主動管理。(3)大數(shù)據(jù)下軟件項目管理的創(chuàng)新不再僅僅局限于過程、知識或技術(shù),還有基于數(shù)據(jù)的發(fā)現(xiàn)。大數(shù)據(jù)的存在,使得軟件項目管理更為科學,數(shù)據(jù)分析結(jié)果將為創(chuàng)新方案決策提供核心依據(jù)。這意味著項目管理者必須高度重視項目管理中發(fā)現(xiàn)的各種數(shù)據(jù)問題。因為,在這些數(shù)據(jù)問題背后孕育著各種可能的創(chuàng)新方案。當然,這些創(chuàng)新方案的決策主要取決于數(shù)據(jù)分析的結(jié)果以及軟件組織對結(jié)果的解讀;創(chuàng)新方案在實踐中是否成果,關(guān)鍵在于數(shù)據(jù)的可得性和數(shù)據(jù)分析結(jié)果及解讀的準確性。
3 數(shù)據(jù)驅(qū)動的軟件項目管理
數(shù)據(jù)驅(qū)動的軟件項目管理,如圖2所示,應(yīng)包括以下步驟:第一步,獲取項目管理的原始數(shù)據(jù);第二步,對數(shù)據(jù)進行清洗和預(yù)處理;第三步,針對具體管理目標建立相關(guān)度量,并對數(shù)據(jù)進行分析和計算,得到各種度量各種指標;第四步,基于度量指標,客觀準確地理解項目的過去、預(yù)測未來。
獲取項目管理的原始數(shù)據(jù)主要可以通過兩個方面:一方面,從組織內(nèi)部采用的版本管理系統(tǒng)、質(zhì)量保障系統(tǒng)、缺陷追蹤系統(tǒng)、郵件列表和論壇等工具中獲得;另一方面,從采用爬蟲從互聯(lián)網(wǎng)上抓取項目的相關(guān)信息,缺陷報告、郵件列表、技術(shù)難點等。數(shù)據(jù)質(zhì)量是保證分析結(jié)果真實可信的必要因素。但是,原始數(shù)據(jù)因為各種原因而存在問題,因此,必須對原始數(shù)據(jù)進行清洗和預(yù)處理。此外,原始數(shù)據(jù)中存在半結(jié)構(gòu)化和非結(jié)構(gòu)化的數(shù)據(jù)也需要將其為轉(zhuǎn)換結(jié)構(gòu)化的數(shù)據(jù),以方便計算機計算和分析。在獲取原始數(shù)據(jù)和數(shù)據(jù)清洗的過程中,隨著對原始數(shù)據(jù)的透徹理解,可根據(jù)項目管理目標,建立相應(yīng)的度量。對數(shù)據(jù)進行挖掘和分析的時候,需要特別注意:鑒于軟件項目本身的個性化,一些適用于其他項目的數(shù)據(jù)挖掘方法難以照搬,因此需要根據(jù)項目的個性化特征對傳統(tǒng)的數(shù)據(jù)挖掘和分析方法進行突破。這每一次代碼提交、每一個缺陷報告、每一個郵件等記錄著開發(fā)和管理的數(shù)字軌跡,管理者可以從這些海量的數(shù)據(jù)中理解項目的過去和預(yù)測項目的未來。
4 建議
為使基于大數(shù)據(jù)的軟件項目管理在項目實踐中具有可操作性,提出如下建議:
(1)軟件組織應(yīng)著手建立一種與大數(shù)據(jù)項目管理相適應(yīng)的廣泛參與的機制和企業(yè)文化,將以往基于項目經(jīng)理意圖或?qū)<抑R的決策轉(zhuǎn)換為數(shù)據(jù)驅(qū)動的決策,以數(shù)據(jù)分析結(jié)果作為決策和評價的基礎(chǔ)。(2)軟件組織應(yīng)著手建立數(shù)據(jù)分析部門,用以收集、處理和分析數(shù)據(jù),為項目管理提供數(shù)據(jù)依據(jù)。同時,加強該部門與開發(fā)部門、測試部門、業(yè)務(wù)部門級外界的配合與合作,盡可能多的獲取數(shù)據(jù)和信息。(3)軟件組織應(yīng)該應(yīng)改變當前的人力資源管理,增加對數(shù)據(jù)分析方面專業(yè)人才的積累,并在實踐的項目管理中突出大數(shù)據(jù)的重要性。
參考文獻
[1]王強.IT軟件項目管理[M].清華大學出版社,2004.
[2]Manyika J,Chui M,Brown B,et al.Big data:the next frontier for innovation,competition,and productivity.mckinsey.com[R/OL].December 13,2012.
[3]Mcafee A,Brynjolfsson E.Big data:the management revolution[J]. Harvard Business Review,2012,90(10):60-66.
[4]Lavalle S.Big data,analytics and the path from insights to value[J].Mit Sloan Management Review,2011,52(2):21-32.
[5]馮芷艷,郭迅華,曾大軍,等.大數(shù)據(jù)背景下商務(wù)管理研究若干前沿課題[J].管理科學學報,2013,(1):1-9.
[6]劉丹,曹建彤,王璐.基于大數(shù)據(jù)的商業(yè)模式創(chuàng)新研究——以國家電網(wǎng)為例[J].當代經(jīng)濟管理,2014,(6):20-26.