翟惠良+張曉藝
摘要:該文以筆者在實際工作中的項目經(jīng)驗為基礎(chǔ),結(jié)合軟件項目管理相關(guān)理論為指導(dǎo),從開發(fā)人員管理、軟件質(zhì)量管理、軟件配置管理三個方面探討了軟件項目管理知識在大型國有化工企業(yè)中的軟件項目管理工作中的應(yīng)用。
關(guān)鍵詞:軟件項目管理;軟件工程;管理;質(zhì)量
中圖分類號:TP311.5 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)21-0247-02
1 背景
隨著信息化進(jìn)程在國有大型化工企業(yè)中的推進(jìn),越來越多的企業(yè)提出了針對自身特點的管理類應(yīng)用軟件的需求。為了更好的完成這些軟件開發(fā)和應(yīng)用推廣工作,各大企業(yè)紛紛組建具有自身管理特色的軟件開發(fā)隊伍。但是,由于國有企業(yè)在體制方面具有的天然特殊性,其內(nèi)部的軟件隊伍在項目管理工作中無法完全照搬體制外軟件企業(yè)的管理制度和方法,所以,如何在企業(yè)中依據(jù)企業(yè)特色做好對企業(yè)內(nèi)部軟件開發(fā)隊伍的項目管理工作就成了團(tuán)隊管理者需要認(rèn)真面對的新課題。
2 開發(fā)人員管理
國有大型企業(yè)較普通民營企業(yè)相比,存在諸多特殊性,如管理體制為公有制,資本運(yùn)作方式單一,企業(yè)成立歷史較長等,但是,其管理特色與專業(yè)的軟件開發(fā)團(tuán)隊的在理念上存在或多或少的相悖,因而在項目管理工作中是不能直接照搬體制外專業(yè)軟件隊伍的項目管理經(jīng)驗和方法的。
在企業(yè)中建立軟件開發(fā)隊伍的首要問題,是如何使開發(fā)小組具有很強(qiáng)的凝聚力,從而使組內(nèi)每個成員的優(yōu)勢發(fā)揮出來,盡可能的做到高執(zhí)行力,有效的服從管理人員的指揮,確保軟件開發(fā)質(zhì)量。在筆者曾經(jīng)參與的項目中,團(tuán)隊開發(fā)人員是按照下文中的方式進(jìn)行管理的。
2.1 劃分開發(fā)小組
想要在非IT企業(yè)內(nèi)以其自身員工為團(tuán)隊成員組建一支軟件開發(fā)隊伍是非常困難的,因為,專業(yè)軟件團(tuán)隊的成員一般具有如下幾個特點:
1)計算機(jī)相關(guān)專業(yè)畢業(yè);
2)具有良好的計算理論和應(yīng)用素養(yǎng);
3)擁有足夠的代碼開發(fā)技能;
4)精力充沛,富有創(chuàng)造激情。
因此,依據(jù)軟件項目管理中團(tuán)隊組成的基本理論,可以在團(tuán)隊建設(shè)的初期僅建立一個或數(shù)個軟件開發(fā)小組。一般情況下,小組具有如下幾點特征[1]:
1)至少有兩個人;
2)他們具有相似的特長或技能優(yōu)勢;
3)他們?yōu)橐粋€共同的目標(biāo)或任務(wù)而工作;
4)每個人都被分配了一定的角色或職責(zé)。
這里有一點需要注意:整個小組的規(guī)模是影響小組效率的一個重要因素,另外,小組成員的技術(shù)高低搭配也是人員管理中非常重要的一環(huán)。所以,在企業(yè)中“科班”出身的職工少之又少的情況下,一定要確保每組成員中配有1到2名計算機(jī)專業(yè)“科班”出身的職工。之所以做這樣的人員搭配,首要原因是需要團(tuán)隊之間在進(jìn)行技術(shù)溝通時,受過專業(yè)理論及技術(shù)培訓(xùn)的人員可以更快進(jìn)入角色,技術(shù)交流障礙少,另外一個更加重要的原因則是可以沿襲大型企業(yè)特有的“師帶徒”傳統(tǒng),一個“科班”出身的職工帶一名到數(shù)名不等的徒弟,傳授技能知識和或引導(dǎo)徒弟自主學(xué)習(xí),從而更快更好的培養(yǎng)團(tuán)隊需要的軟件技術(shù)人員。
2.2 小組成員的角色及分工
在確立了小組的人員搭配之后,要做的第一件事情就是明確人員責(zé)任。在TSP(Team Software Process,團(tuán)隊軟件過程)軟件隊伍管理理念中,將開發(fā)小組分成了包括小組組長、開發(fā)經(jīng)理、計劃經(jīng)理、質(zhì)量/生產(chǎn)經(jīng)理和技術(shù)支持經(jīng)理在內(nèi)的5種不同角色[2]。然而,由于國有企業(yè)較專業(yè)的軟件開發(fā)企業(yè)具有管理上的特殊性,因而在人員責(zé)任分配方面就不能夠按照上述職責(zé)劃分建立角色,就筆者的從業(yè)經(jīng)歷來看,在大型國有非IT企業(yè)中建立軟件開發(fā)小組時,可以將開發(fā)人員分成以下幾種角色:軟件組長、開發(fā)副組長、系統(tǒng)副組長、執(zhí)行組員。
2.2.1 軟件組長
軟件組長是團(tuán)隊中領(lǐng)受和執(zhí)行工作任務(wù)的管理樞紐,通常情況下,這個人需要非常清楚團(tuán)隊中每個成員的技能優(yōu)勢和專業(yè)特色;在任務(wù)分塊和分派過程中,能夠?qū)⒐ぷ魅蝿?wù)精準(zhǔn)的分發(fā)到最適合的人選手中;能夠通過有規(guī)律的開發(fā)小組會議獲取各成員的工作量和工作質(zhì)量信息;完善項目的工作報告等。
2.2.2 開發(fā)副組長
開發(fā)副組長在團(tuán)隊任務(wù)的執(zhí)行過程中起到的作用不可或缺,TA需要帶領(lǐng)團(tuán)隊成員協(xié)助組長制定項目執(zhí)行計劃;完成項目管理過程中各工作塊的實際任務(wù);對項目各進(jìn)度進(jìn)行全程跟蹤等等。
2.2.3 系統(tǒng)副組長
負(fù)責(zé)軟件開發(fā)的環(huán)境搭建,數(shù)據(jù)庫維護(hù),服務(wù)器維護(hù),其技術(shù)經(jīng)驗最為豐富,適當(dāng)情況下可加入開發(fā)組參與項目開發(fā)工作。
2.2.4 執(zhí)行組員
每個小組的組員是項目計劃有效執(zhí)行的基石;項目進(jìn)行過程的最直接參與者;團(tuán)隊管理中各標(biāo)準(zhǔn)和規(guī)章制度的執(zhí)行有效性的最直接檢驗者;可兼任小組會議的記錄者。
這里需要說明一點,依據(jù)筆者經(jīng)驗,由于種種原因造成了企業(yè)內(nèi)軟件部門的管理人員和軟件需求的提出者有可能不是軟件學(xué)習(xí)的專業(yè)人員出身,其對于項目情況的決策能力嘗嘗脫離開發(fā)人員能力實際,所以,在組建軟件隊伍時,所挑選的基層管理人員首先應(yīng)該具有的并非是強(qiáng)大的技術(shù)實力,而更應(yīng)該是極其良好的人際交流和溝通能力。
2.3 成員管理
2.3.1 監(jiān)督小組成員完成分內(nèi)工作任務(wù)
監(jiān)督的具體內(nèi)容包括自查和互查。自查工作在團(tuán)隊成員中各自展開,團(tuán)隊中的各組長以小組會的形式將成員召集起來,小組會議的內(nèi)容包括工作的完成情況、工作中遇到的具體困難,需要團(tuán)隊成員合作攻關(guān)的關(guān)鍵點等。在互查工作中,由團(tuán)隊中執(zhí)行不同角色的組員互換各自的工作內(nèi)容,依據(jù)各自的工作計劃,逐條逐項進(jìn)行工作互查。
2.3.2 團(tuán)隊成員的有效溝通非常重要
在項目的進(jìn)度時間表上,需要定期安排團(tuán)隊成員進(jìn)行工作交流,上文提到的自查與互查便是會議的其中兩項內(nèi)容。在團(tuán)隊會議上,可采取技能培訓(xùn)等方式,提高團(tuán)隊成員的技術(shù)水平,使其在隨后的開發(fā)工作中具有更好的工作能力,從而可以推動項目的有效進(jìn)展。
3 軟件配置管理
軟件配置管理(Software Configuration Management)是協(xié)調(diào)軟件開發(fā)工作中軟件使用和進(jìn)度控制最為有效的工具方法之一,可以有效減小軟件進(jìn)度的混亂程度,作為一種標(biāo)識、控制和管理軟件變更的技術(shù),更可以使錯誤達(dá)到最小并最有效地提高軟件項目管理效率[5]。
3.1 進(jìn)行軟件配置的原因
首先要探討的是筆者在企業(yè)項目管理工作中遭遇到的一些實際問題:
1)潛在用戶的功能需求不穩(wěn)定;
2)人員技術(shù)素質(zhì)參差不齊,人員開發(fā)習(xí)慣存在較大差別;
3)軟件的規(guī)模越來越大;
4)軟件的重用性需要提高;
5)軟件的維護(hù)越來越困難;
6)團(tuán)隊的直屬領(lǐng)導(dǎo)需求或想法脫離實際。
面對這些問題,尋求有效的團(tuán)隊管理策略往往不夠,還需要有效的代碼管理工具和良好的項目版本迭代工具來幫助團(tuán)隊溝通和交流。
依據(jù)筆者的項目從業(yè)經(jīng)驗,使用.net作為開發(fā)平臺的同時,使用微軟公司出品的TFS(team foundation server)作為團(tuán)隊項目管理(包括版本管理、進(jìn)度管理等)的軟件工具。該軟件可作為Visual Studio Team System (VSTS) 在服務(wù)器端后端平臺。TFS常用以下幾個部分:
1)團(tuán)隊基礎(chǔ)服務(wù)器;
2)程式開發(fā)應(yīng)用;
3)解決方案構(gòu)架;
4)開發(fā)工具中文服務(wù)器。
4 軟件質(zhì)量管理
隨著項目進(jìn)行的逐漸深入,其任何一次質(zhì)量問題的修改成本都都會大幅增加,對于軟件團(tuán)隊來說,僅僅是軟件質(zhì)量測試工作不足以對軟件質(zhì)量的全程做到有效控制,還需要項目管理人員對團(tuán)隊進(jìn)行更完善的軟件質(zhì)量管理。
4.1 制定并執(zhí)行適度的開發(fā)規(guī)范
在開發(fā)小組建立之初,在缺乏軟件開發(fā)規(guī)范時,整個團(tuán)隊的開發(fā)人員因技術(shù)能力,專業(yè)素養(yǎng)的不同,在開發(fā)工作中將缺乏統(tǒng)一的規(guī)范。
4.2 制定規(guī)范的開發(fā)文檔
軟件開發(fā)文檔是對整個開發(fā)過程的記錄和說明[4]。相較于軟件的實體,其開發(fā)文檔更像是軟件的形成過程中的地圖,軟件日后的升級、維護(hù)、和修改工作以及用戶的使用,均需要查閱相關(guān)的開發(fā)文檔。尤其在公有制企業(yè)內(nèi)部,在評價一個部門的工作是否到位時,往往考量的不是整個團(tuán)隊的工作質(zhì)量,所產(chǎn)出軟件的可操作性等諸多影響因素,而是這個團(tuán)隊是否有非常符合規(guī)范的工作文檔,因而在筆者的從業(yè)經(jīng)歷中,的確有部門管理人員把團(tuán)隊是否有完整規(guī)范的軟件開發(fā)文檔作為衡量軟件過程質(zhì)量的一個重要標(biāo)準(zhǔn),由此看來,開發(fā)文檔在小團(tuán)隊管理中具有非同一般的重要地位。
4.3 軟件評審
軟件的生命周期一般可以分為:需求分析、軟件設(shè)計、軟件實現(xiàn)、軟件測試、安裝維護(hù)等階段[4]。但是,軟件的評審工作滲透于軟件生命周期的各階段。評審工作首先是盡可能的發(fā)現(xiàn)軟件在功能和邏輯方面的存在的錯誤,其次要通過評審驗證軟件的需求,并且還需要確認(rèn)已獲得的產(chǎn)出是以合理的方式開發(fā)的。
在筆者的實際工作經(jīng)驗中,評審會議的相關(guān)內(nèi)容是如下情況:
1)與會專家為團(tuán)隊的直接主管領(lǐng)導(dǎo)和用戶方業(yè)務(wù)專家;
2)具體評審內(nèi)容由項目的組長和副組長擬定,并交由主管領(lǐng)導(dǎo)審閱批準(zhǔn);
3)評審會當(dāng)天由開發(fā)小組對提交的評審報告進(jìn)行講解;
4)與會的評審委員在團(tuán)隊成員完成項目報告后,提出其發(fā)現(xiàn)的關(guān)鍵問題;
5)評審專家依據(jù)評審情況作出總結(jié),開發(fā)副組長再將修改后的結(jié)果反饋至軟件組長,軟件組長在查看并驗證功能已經(jīng)修改后,再將結(jié)果反饋給評審組,以準(zhǔn)備下次評審。
4.4 軟件測試
通常,軟件生命周期中的測試工作的完整內(nèi)容包括單元測試、模塊測試、集成測試和系統(tǒng)測試,在這一方面,非IT企業(yè)中的小型開發(fā)團(tuán)隊也是可以照搬專業(yè)團(tuán)隊的管理方法的,所以,在測試過程中將產(chǎn)生下述基本文檔[3]:
1)測試計劃:確定測試范圍、方法、和需要的資源等;
2)測試過程:依據(jù)測試計劃對測試的每一階段和希望產(chǎn)生的對比性結(jié)果做詳實的描述;
3)測試結(jié)果:按照測試過程完成的測試,結(jié)果存在差異的,需要做好對比記錄,并且必須經(jīng)過調(diào)試以解決所發(fā)現(xiàn)的問題。
5 結(jié)束語
國有大型企業(yè)因種種原因造成了其旗下的小型軟件開發(fā)團(tuán)隊在實際項目管理中不能夠完全照搬專業(yè)軟件團(tuán)隊的項目管理辦法,但在其實際的項目管理工作中依然需要應(yīng)用到軟件項目管理方面的知識,這對于由實際管理工作脫胎而出的項目管理相關(guān)理論的發(fā)展具有非常重要的意義。另外,在團(tuán)隊成員的激勵方面,筆者并沒有展開描述,但是在這一方面企業(yè)中的小團(tuán)隊管理依然具有獨(dú)到之處,能夠有效的管理一個公有制企業(yè)下的小型軟件團(tuán)隊需要的不僅僅是管理理論和項目經(jīng)驗,更需要對于該企業(yè)獨(dú)特管理特色的把控和良好的人際交流能力,然而在實際操作中,后者更為重要。
參考文獻(xiàn):
[1] Humphrey W S.小組軟件開發(fā)過程[M]. 袁昱, 譯. 北京: 人民郵電出版社, 2000.
[2] 張聚禮. 軟件項目管理[M]. 西安: 西安電子科技大學(xué)出版社, 2014.
[3] 黎連生, 王華, 李淑春. 軟件測試與測試技術(shù)[M]. 北京: 清華大學(xué)出版社, 2009.
[4] 倪子偉. 軟件開發(fā)過程[M] .北京: 高等教育出版社,2004.
[5] 王仲濤, 嚴(yán)俊, 趙耀. 對軟件項目管理的初步探討[J]. 船海工程, 2001(S2): 106-109.