王 妍,董 曦
(扬州船用电子仪器研究所,江苏扬州 225101)
通常情况下,船舶软件研制单位在准备 GJB 5000A认证之初,软件过程改进活动筹备之时,会设立多个软件过程改进组织机构,各组织机构有不同的工作目标和任务分工。软件工程过程组(Software Engineering Process Group,SEPG)在此过程中起到非常重要的作用。大多数软件过程改进活动,都是在SEPG的指导之下完成的。因此,SEPG成员能力的高低与否,直接关系着船舶软件研制单位是否可以顺利推进软件工程化、实现软件过程改进、通过GJB 5000A认证。
在船舶软件研制单位,SEPG通常由负责GJB 5000A推进工作的部门领导为组长,也有部分单位的SEPG组长由分管软件业务的副职担任。船舶软件研制单位内各部门的软件工程专家和业务骨干为主要成员。SEPG主要负责策划、推动和评估整个单位的软件过程改进活动,定期评估单位软件过程能力是否达到预期计划和GJB 5000A的要求,并协调解决在推进过程中出现的各种组织级问题。
通常情况下,SEPG主要有以下工作职责:
1)制定和不断完善本单位的软件过程管理体系文件并推进体系文件实施。
2)推动本单位的软件过程改进活动,定期评估本单位软件过程能力。
3)收集、整理和确认组织过程资产,维护组织级测量数据库,提供过程改进建议。
4)提供软件过程改进相关培训和咨询,审核组织级培训资料。
5)负责软件过程管理工具的选型、维护、培训和技术支持。
6)组织开展软件开发方法学的研究,选择和评价新的过程、规程、方法和工具等。
新时代认证中心在培养 GJB 50 00A内部评价员的时候要求参培人员必须有5年以上软件开发实践或软件项目管理经验。在船舶软件研制单位,熟练掌握软件技术、对开发流程有工程化的思维,对于SEPG成员相当重要。因此,SEPG成员应该从各业务部门的软件工程专家和业务骨干中进行筛选。此外,船舶软件研制单位还会有一些特定的行业要求。
与通用的应用软件相比较,船舶软件作为特殊用途软件,是不能脱离于硬件设备之上的。研制单位的软件研发必须基于特定的船舶设备来开展。因此,SEPG组成员仅仅作为软件专家是远远不够的,还需要对整个船舶行业、船舶装置或设备的基本功能和架构熟悉。
单位的SEPG成员作为将来软件工程化工作开展的指导者,需在软件专业技术上有一定的权威性,而权威性是在大量工程实践中体现出来的。对单位软件开发流程熟悉、对单位专业方向熟悉,有利于单位制定符合本地化要求的体系文件,也有利于指导其他开发人员去按照规定要求去开发软件产品。自身专业的权威性在一定程度上可以有利的帮助推进工作往前开展。
GJB 5000A的推进工作实际上是对单位原有的相对落后、无序的软件开发过程进行一次彻底的改革。如果作为SEPG成员没有软件工程化的思想,那推进工作无疑是停滞不前的。要想软件工程化工作在全单位自动自发的开展,那就需要形成软件工程化的企业文化。因此,需要软件工程化的制度作为保障,而制度又需要有具备软件工程化素养的人去制定。所以,作为单位体系文件的编写、发布、推进主体的SEPG成员,必须时时刻刻具备软件工程化的思想。
涉及软件开发、软件管理以及软件文档编写等软件相关的国家标准、行业标准和军用标准甚多,并且标准会在一定周期内更新、替代以及作废。船舶软件研制单位的SEPG成员应该做到能阅读标准、理解标准、吸收标准并以标准指导单位其他人员工作。
软件行业引领产业创新、科技进步,软件行业的技术革新速度极快。从编程语言、系统架构的不断更新到大数据、AI的应用,无不反映出软件从业人员需要极强的学习新知识的能力。虽然船舶软件相对稳定,但未来船舶装备软件化是重要趋势,SEPG成员需具备较强的学习能力以跟上发展的步伐。
软件技术的进步也推动软件工程化的不断更新,软件工程化的发展也将进一步推动软件技术的工程化与成熟化,两者相辅相成。所以,软件工程的思想也在不断进步,需要软件从业人员不断学习和实践。
不管是技术还是思想层面,都要求SEPG成员拥有良好的学习能力,才能适应整个行业的需要,从而更好的推动整个船舶软件研制单位软件整体能力的提升。
任何项目的实施,都离不开团队的努力合作。软件过程的改进、软件工程水平的提高更是个系统性的大工程。因此,SEPG成员必须要有一定的团队合作能力。
GJB 50 00A二级有7个过程域,三级新增11个过程域,四级又增加2个过程域。一个人掌握全部过程域知识和实施要领,指导整个单位的软件推进工作几乎是不可能的。通常情况下,每个 SEPG成员对各自负责的GJB 5000A过程域术有专攻,发挥各自的特长,同时整个小组通力合作,将整个SEPG的效能发挥出最大优势。
软件过程改进工作要求一丝不苟、稳步推进,同时,这也是一个充满创新性的工作。首先,需要在理解GJB 5000A的基础之上,制定出一套符合单位本地化特色的体系文件。标准只有一个,但每个单位有自己的行业特点、研究方向和软件文化。如果生搬硬套标准,那这种体系文件几乎没有可操作性。如果直接抄袭或拿来别家单位的体系文件,势必会造成体系文件不适应自身单位的软件工作实际情况,软件过程改进推进困难,最后存在“两张皮”的现象。
其次,需要在制定的体系文件基础之上,顺利地推动单位的软件项目按要求开展。许多单位存在这样一种情况,各种体系文件和各项规章制度都制定的很不错,可操作性也很强,可在项目推进时,却很少按照体系文件规定的流程去实施。这种现象的存在,表面上是体系文件无法落地,深层次上就涉及到SEPG成员的改革和创新举措。每一份系统文件的推进实际上都是对单位原有体制的一次改革,SEPG成员作为软件工程化的推动者,没有创新能力是不行的。
SEPG在船舶软件研制单位的软件过程改进活动中扮演着极为重要的角色。SEPG成员能力的高低,直接影响着GJB 5000A能否顺利推进,也直接决定了组织软件工程化的水平。本文根据多年的工作经验,以船舶软件研制单位软件工程化水平的提升为目标,对SEPG成员的要求做了一定的总结和分析。对于GJB 5000A的推进有着一定的帮助作用。