董 曦,王 妍
(中國船舶重工集團公司第七二三研究所,江蘇揚州 225101)
GJB 5000A二級認(rèn)證過程中,需要設(shè)立多個軟件過程改進組織機構(gòu)。各組織機構(gòu)按照角色職責(zé)要求,承擔(dān)相應(yīng)的工作任務(wù),可以共同促進所組織的軟件工程化水平的提高。其中,軟件工程過程組是最為重要的組織機構(gòu)之一,軟件工程過程組能否正確、高效地完成組織賦予它的職能和工作,大大影響了整個GJB 5000A二級的推進工作[1]。
不同單位在推進GJB 5000A二級過程中會設(shè)立不同的組織機構(gòu),一般而言,會設(shè)立如下幾個典型的工作小組:
1)領(lǐng)導(dǎo)小組。一般由單位高層領(lǐng)導(dǎo)作為組長,組員由各GJB 5000A推進過程中涉及到的部門領(lǐng)導(dǎo)為成員。主要職責(zé)是為軟件過程改進工作提供必要的資源,協(xié)調(diào)、處理軟件過程改進工作中各部門之間的統(tǒng)籌問題[2]。
2)軟件工程過程組。一般由負(fù)責(zé)GJB 5000A推進工作的部門領(lǐng)導(dǎo)為組長,單位內(nèi)各部門的軟件工程專家、業(yè)務(wù)骨干為成員。主要負(fù)責(zé)策劃、促進、跟蹤和協(xié)調(diào)軟件過程改進活動,定期評估單位軟件過程能力。
3)軟件配置控制委員會。負(fù)責(zé)監(jiān)督、控制產(chǎn)品庫的技術(shù)狀態(tài),批準(zhǔn)軟件產(chǎn)品的交付和使用,解決組織內(nèi)共性技術(shù)狀態(tài)的問題。
4)軟件質(zhì)量保證組。主要負(fù)責(zé)檢查實施的軟件過程和產(chǎn)生的軟件產(chǎn)品是否符合要求,協(xié)調(diào)全單位所開展的軟件質(zhì)量保證活動,確保所有軟件項目和相關(guān)部門按照制定出來符合標(biāo)準(zhǔn)的軟件體系文件要求開展工作。
5)軟件配置管理組。主要負(fù)責(zé)管理和維護單位軟件受控庫、產(chǎn)品庫,并監(jiān)督產(chǎn)品軟件技術(shù)狀態(tài)。
當(dāng)然,不同的組織根據(jù)各自特點以及改進需要,還可以設(shè)立其他工作小組,比如軟件測試組、軟件培訓(xùn)組等。下文將就軟件工程過程組進行展開討論。
從定義來看,軟件工程過程組實際上是一個組織中軟件過程改進活動的任務(wù)發(fā)起者、任務(wù)的組織者和任務(wù)的終結(jié)者。具體職責(zé)如下:
1)負(fù)責(zé)制定、持續(xù)改進適合于本單位的軟件過程管理體系文件并組織宣貫;
2)負(fù)責(zé)策劃、促進、跟蹤和協(xié)調(diào)軟件過程改進活動,定期評估組織的軟件過程能力;
3)負(fù)責(zé)組織過程資產(chǎn)收集、整理和確認(rèn);
4)負(fù)責(zé)收集、分析過程的改進建議,策劃并組織實施過程的改進;
5)負(fù)責(zé)定義本單位的度量模型,收集數(shù)據(jù)、分析數(shù)據(jù)及通報數(shù)據(jù),維護度量數(shù)據(jù)庫,提供過程改進建議;
6)提供軟件過程改進相關(guān)培訓(xùn)和咨詢,審核組織級培訓(xùn)資料;
7)負(fù)責(zé)軟件過程管理工具和軟件測試工具的選型、維護、培訓(xùn)和技術(shù)支持;
8)組織開展軟件開發(fā)方法學(xué)的研究,選擇、評價新的過程、規(guī)程、方法和工具等[3]。
軟件工程過程組除了上述基本職責(zé)外,應(yīng)承擔(dān)更高的使命,即推動整個組織硬實力和軟實力的提升。
在依據(jù)GJB 5000A編制單位體系文件之初,軟件工程過程組要放眼未來、放眼世界,充分吸收國內(nèi)外先進軟件企業(yè)的優(yōu)秀實踐經(jīng)驗,將最先進的工程和管理規(guī)范本地化,形成一套行業(yè)先進且兼具本地化特點的規(guī)章制度。通過GJB 5000A的推進,大膽改革,提高整個組織的運轉(zhuǎn)效率。
軟件過程改進的目的是提升組織的軟件成熟度,其最終目的是使得整個組織、整個員工切身感受到通過軟件過程改進這個活動帶來的工作效率、研制能力、產(chǎn)品質(zhì)量的提高。在軟件研制能力不夠成熟的階段,組織對于資源的配置往往不夠合理。優(yōu)化不合理的各種組織結(jié)構(gòu),做到對資源的合理配置,從而提高效益,是軟件工程過程組的重要使命。
在軟件過程改進的前期,可能會通過考核、獎勵等手段去推動軟件的工程化進程,當(dāng)然這也是需要的。但是軟件工程過程組必須有長遠的規(guī)劃和清楚的定位,、以軟件研制流程標(biāo)準(zhǔn)化、工程化為基礎(chǔ),最終在組織內(nèi)形成一種自動自發(fā)的文化氛圍。
激勵即通過了解人的需要,激發(fā)人的內(nèi)在動機,使其朝向所期望目標(biāo)去努力的心理活動過程[4]。激勵機制就是將激勵過程文件化、制度化。軟件工程過程組需要在編寫單位體系文件之初,就從組織的目標(biāo)出發(fā),通過一定的制度來引發(fā)軟件過程改進相關(guān)人員積極的動機和愿望,使相關(guān)人員從心態(tài)上愿意將軟件改進工作做好,從行動上積極配合主動參與整個軟件過程的改進活動。將一個激勵機制完善,應(yīng)該要做好:洞察被激勵對象的需要、明確被激勵對象的動機以及滿足被激勵對象的需要。
一般在GJB 5000A認(rèn)證過程中,需要有試點項目和非試點項目。在投入資源有限的情況下,做好試點項目之間、試點項目和非試點項目之間的人、財、物的平衡尤為重要,要從大局出發(fā),以完成組織的目標(biāo)為中心,不能厚此薄彼、顧此失彼,要做好資源的合理調(diào)用。組織千萬不能認(rèn)為平衡機制是無關(guān)緊要的,一旦一個組織的平衡機制有問題,便會造成單位內(nèi)部人心渙散、工作推進不力的情況出現(xiàn)。
引導(dǎo)機制即通過一系列的舉措、行為和方法,使得被引導(dǎo)者的工作方向與引導(dǎo)者的設(shè)定方向相一致。簡單來說,就是如何使組織通過GJB 5000A認(rèn)證,并將提高整個組織的軟件工程化水平目標(biāo)轉(zhuǎn)化為個人目標(biāo)的過程[5]。這需要長期的文化影響,不是簡單的一蹴而就的過程,是組織內(nèi)全員從被動到主動、從量變到質(zhì)變的升華。首先,軟件開發(fā)人員可以逐步從測量分析的結(jié)果中看出整個單位軟件水平的提高;反之,軟件開發(fā)人員逐漸的以高水平的標(biāo)準(zhǔn)去要求自己,也將形成良性循環(huán)。
在軟件工程化推進工作起步之時,將軟件工程過程組設(shè)定在單位的強勢部門確實有利于組織級的過程改進和試點項目的工程水平提高。強勢部門對于大部分項目有計劃權(quán)、考核權(quán)和分配權(quán),在強勢部門的有力推動下,可以減少推進阻力,從嚴(yán)、從快、從好地完成軟件過程改進的設(shè)定目標(biāo)。但此時的管理階段還處于比較落后低下的水平,強勢部門的意愿程度、介入程度很大程度上決定了整個改進過程的成敗。
此時的管理階段應(yīng)該處于“法制”的階段,即具體將軟件工程過程組設(shè)定在哪個部門已不再重要。所有的軟件工程行為有章可循、有文件可依。項目由項目經(jīng)理和軟件主管設(shè)計師推動,有序開展開發(fā)和測試活動,質(zhì)量保證人員督查過程和產(chǎn)品的不符合項,使得項目符合單位的體系要求推進。在規(guī)章制度的約束下,軟件研制必須按照計劃、體系和標(biāo)準(zhǔn)往下走,自然符合GJB 5000A相應(yīng)等級的要求,可通過認(rèn)證。
在一個組織軟件過程改進深入人心,且大家自覺自愿地接受軟件工程化的思想后,單位須著力于軟件文化的建設(shè)。例如,定期組織軟件技術(shù)研討、軟件文化沙龍和軟件知識競賽等活動,產(chǎn)生良好的軟件文化氛圍并被大家接受與認(rèn)可。值得注意的是,這不同于軟件工程化知識的培訓(xùn),文化建設(shè)更重要的在于全員重視、全員參與、全員熱情。此時,軟件工程的工作重點將不再局限于具體項目或者具體規(guī)章制度,甚至取消了考核,建設(shè)單位的軟件文化和價值觀。
軟件工程過程組的能力高低以及是否能夠較好地完成組織賦予的職責(zé)與使命,在很大程度上決定了組織軟件工程化的水平。本文從軟件工程過程組的基本職能出發(fā),探討了組織對軟件工程過程組的要求、軟件工程過程組賦予的使命、軟件工程過程組在軟件過程改進中采用的機制及其提高的階段。與此同時,軟件工程過程組的工作和要求絕非僅僅如此,在今后的工作中,還需更加深入地探索與實踐,為組織軟件工程化的改進提供幫助。