王 妍,董 曦
(揚州船用電子儀器研究所,江蘇揚州 225101)
通常情況下,船舶軟件研制單位在準備 GJB 5000A認證之初,軟件過程改進活動籌備之時,會設立多個軟件過程改進組織機構,各組織機構有不同的工作目標和任務分工。軟件工程過程組(Software Engineering Process Group,SEPG)在此過程中起到非常重要的作用。大多數(shù)軟件過程改進活動,都是在SEPG的指導之下完成的。因此,SEPG成員能力的高低與否,直接關系著船舶軟件研制單位是否可以順利推進軟件工程化、實現(xiàn)軟件過程改進、通過GJB 5000A認證。
在船舶軟件研制單位,SEPG通常由負責GJB 5000A推進工作的部門領導為組長,也有部分單位的SEPG組長由分管軟件業(yè)務的副職擔任。船舶軟件研制單位內各部門的軟件工程專家和業(yè)務骨干為主要成員。SEPG主要負責策劃、推動和評估整個單位的軟件過程改進活動,定期評估單位軟件過程能力是否達到預期計劃和GJB 5000A的要求,并協(xié)調解決在推進過程中出現(xiàn)的各種組織級問題。
通常情況下,SEPG主要有以下工作職責:
1)制定和不斷完善本單位的軟件過程管理體系文件并推進體系文件實施。
2)推動本單位的軟件過程改進活動,定期評估本單位軟件過程能力。
3)收集、整理和確認組織過程資產,維護組織級測量數(shù)據(jù)庫,提供過程改進建議。
4)提供軟件過程改進相關培訓和咨詢,審核組織級培訓資料。
5)負責軟件過程管理工具的選型、維護、培訓和技術支持。
6)組織開展軟件開發(fā)方法學的研究,選擇和評價新的過程、規(guī)程、方法和工具等。
新時代認證中心在培養(yǎng) GJB 50 00A內部評價員的時候要求參培人員必須有5年以上軟件開發(fā)實踐或軟件項目管理經驗。在船舶軟件研制單位,熟練掌握軟件技術、對開發(fā)流程有工程化的思維,對于SEPG成員相當重要。因此,SEPG成員應該從各業(yè)務部門的軟件工程專家和業(yè)務骨干中進行篩選。此外,船舶軟件研制單位還會有一些特定的行業(yè)要求。
與通用的應用軟件相比較,船舶軟件作為特殊用途軟件,是不能脫離于硬件設備之上的。研制單位的軟件研發(fā)必須基于特定的船舶設備來開展。因此,SEPG組成員僅僅作為軟件專家是遠遠不夠的,還需要對整個船舶行業(yè)、船舶裝置或設備的基本功能和架構熟悉。
單位的SEPG成員作為將來軟件工程化工作開展的指導者,需在軟件專業(yè)技術上有一定的權威性,而權威性是在大量工程實踐中體現(xiàn)出來的。對單位軟件開發(fā)流程熟悉、對單位專業(yè)方向熟悉,有利于單位制定符合本地化要求的體系文件,也有利于指導其他開發(fā)人員去按照規(guī)定要求去開發(fā)軟件產品。自身專業(yè)的權威性在一定程度上可以有利的幫助推進工作往前開展。
GJB 5000A的推進工作實際上是對單位原有的相對落后、無序的軟件開發(fā)過程進行一次徹底的改革。如果作為SEPG成員沒有軟件工程化的思想,那推進工作無疑是停滯不前的。要想軟件工程化工作在全單位自動自發(fā)的開展,那就需要形成軟件工程化的企業(yè)文化。因此,需要軟件工程化的制度作為保障,而制度又需要有具備軟件工程化素養(yǎng)的人去制定。所以,作為單位體系文件的編寫、發(fā)布、推進主體的SEPG成員,必須時時刻刻具備軟件工程化的思想。
涉及軟件開發(fā)、軟件管理以及軟件文檔編寫等軟件相關的國家標準、行業(yè)標準和軍用標準甚多,并且標準會在一定周期內更新、替代以及作廢。船舶軟件研制單位的SEPG成員應該做到能閱讀標準、理解標準、吸收標準并以標準指導單位其他人員工作。
軟件行業(yè)引領產業(yè)創(chuàng)新、科技進步,軟件行業(yè)的技術革新速度極快。從編程語言、系統(tǒng)架構的不斷更新到大數(shù)據(jù)、AI的應用,無不反映出軟件從業(yè)人員需要極強的學習新知識的能力。雖然船舶軟件相對穩(wěn)定,但未來船舶裝備軟件化是重要趨勢,SEPG成員需具備較強的學習能力以跟上發(fā)展的步伐。
軟件技術的進步也推動軟件工程化的不斷更新,軟件工程化的發(fā)展也將進一步推動軟件技術的工程化與成熟化,兩者相輔相成。所以,軟件工程的思想也在不斷進步,需要軟件從業(yè)人員不斷學習和實踐。
不管是技術還是思想層面,都要求SEPG成員擁有良好的學習能力,才能適應整個行業(yè)的需要,從而更好的推動整個船舶軟件研制單位軟件整體能力的提升。
任何項目的實施,都離不開團隊的努力合作。軟件過程的改進、軟件工程水平的提高更是個系統(tǒng)性的大工程。因此,SEPG成員必須要有一定的團隊合作能力。
GJB 50 00A二級有7個過程域,三級新增11個過程域,四級又增加2個過程域。一個人掌握全部過程域知識和實施要領,指導整個單位的軟件推進工作幾乎是不可能的。通常情況下,每個 SEPG成員對各自負責的GJB 5000A過程域術有專攻,發(fā)揮各自的特長,同時整個小組通力合作,將整個SEPG的效能發(fā)揮出最大優(yōu)勢。
軟件過程改進工作要求一絲不茍、穩(wěn)步推進,同時,這也是一個充滿創(chuàng)新性的工作。首先,需要在理解GJB 5000A的基礎之上,制定出一套符合單位本地化特色的體系文件。標準只有一個,但每個單位有自己的行業(yè)特點、研究方向和軟件文化。如果生搬硬套標準,那這種體系文件幾乎沒有可操作性。如果直接抄襲或拿來別家單位的體系文件,勢必會造成體系文件不適應自身單位的軟件工作實際情況,軟件過程改進推進困難,最后存在“兩張皮”的現(xiàn)象。
其次,需要在制定的體系文件基礎之上,順利地推動單位的軟件項目按要求開展。許多單位存在這樣一種情況,各種體系文件和各項規(guī)章制度都制定的很不錯,可操作性也很強,可在項目推進時,卻很少按照體系文件規(guī)定的流程去實施。這種現(xiàn)象的存在,表面上是體系文件無法落地,深層次上就涉及到SEPG成員的改革和創(chuàng)新舉措。每一份系統(tǒng)文件的推進實際上都是對單位原有體制的一次改革,SEPG成員作為軟件工程化的推動者,沒有創(chuàng)新能力是不行的。
SEPG在船舶軟件研制單位的軟件過程改進活動中扮演著極為重要的角色。SEPG成員能力的高低,直接影響著GJB 5000A能否順利推進,也直接決定了組織軟件工程化的水平。本文根據(jù)多年的工作經驗,以船舶軟件研制單位軟件工程化水平的提升為目標,對SEPG成員的要求做了一定的總結和分析。對于GJB 5000A的推進有著一定的幫助作用。