航天软件集成产品研发模式
2019-10-23杨威任慧敏吕京伟北京航天自动控制研究所
杨威、任慧敏、吕京伟 /北京航天自动控制研究所
航天产品和导弹武器产品科技含量高、研发过程复杂、研发周期紧张。同时,航天产品具有高度的定制性,未形成大批量生产模式,且航天的硬件产品、软件产品的研制成本都相对较高。近年来,伴随着我国航天事业的快速发展,特别是党的十九大明确提出建设航天强国的伟大构想,航天企业迎来了新的机遇期,但综合国内外形势的变化以及商业航天迅猛发展的现状,航天企业也同样面临着严峻形势。因此,在研制和生产过程中必须思考如何在多样化产品中聚焦精品产品,如何在高度定制化与压缩成本之间寻求统一。尤其是软件,其作为其中一类特殊的产品,是研发人员高度脑力劳动的成果,在宇航型号和导弹武器型号中承担的功能越来越重要。
目前,随着型号项目数量的不断增长,北京航天自动控制研究所开发的软件呈现出研制方案多样、开发周期缩短、需求迭代频繁等新特点。如何从个性定制化中寻求软件产品的通用化,并逐步发展产品化软件研制模式、打造精品软件,满足航天任务量快速增加、成本不断压缩的需求成为当前一项重要课题。
一、面临的主要问题
1.航天型号软件研制周期紧张,与现有研制模式不匹配
近年来,航天软件开发和测试的任务量激增,多型号并举、高密度发射,航天控制系统软件设计人员人均承担配置项个数、测试人员人均承担测试轮次数都远超行业平均水平。但航天软件的质量要求不能降低,需求分析、设计编码、测试验证、走查复查等软件研制和质量保证工作均需按时保质完成。因此,随着任务量的持续增长和研制周期的日趋紧张,当前研制模式和人员配置模式难以满足型号项目研制需求。
2.对软件产品平台和共享技术研究的资源投入不够
各型号间系统方案制定相对独立,系统硬件(芯片、总线、接口)选型、制导姿控算法等方面存在一定差异,导致软件系统方案产品化程度不高,且对型号软件共性需求提炼不足、对软件产品平台研制投入不够。目前形成的复用资产应用层次较低,主要是构件级复用、框架级白盒复用,较难形成平台级的高层次软件复用产品,复用率提升遇到瓶颈。
3.软件任务需求更多,软件设计不断进行重复迭代
型号软件任务需求变化频繁,在当前型号软件研制要求下,软件受控后一经更改需要经历多个研制保障环节(变更影响分析、设计变更、评审走查、开发方测试、第三方测试、试验验证、软件入库出库生产等),涉及多个相关方,频繁的变更会带来大量的设计和管理成本。
4.软件产品研发仅对技术负责,不对市场和成本负责
研究所未全面开展客户需求的分类分级分析,以及作出相应的产品规划。建立多层级的软件产品开发和共享,仅限于对不同型号软件产品技术要求的实现。未明确区分货架产品、平台产品、面向特定客户群的产品和面向某一客户的定制产品,因此对某些型号的需求难以作出快速响应。
控制系统软件研制模式与目前新的现状特点之间存在诸多不适应,因此亟待进行软件集成产品研发(SIPD)模式的探索,以进一步提升航天软件研制效率。
二、工作与实践
1.思维模式转变
当前,软件研制的主要矛盾已发生转变,只有同步转变航天软件研制思维模式,进而探索新的软件集成产品研发模式,才能跳出如今的软件研发困局、解决主要矛盾,以不断提升软件研制效率和质量。
一是不计成本式的研发项目管理需向投资性项目管理转变。在航天型号研制早期,对成本等资源投入相对较大,但资源消耗大和研发周期长、效率低将削弱其在世界航天市场的竞争力。因此,需要转变思维,将产品研发作为一项投资来管理,开展相应的投资管理活动。
二是单点的产品研发思维需向系统产品研发理念转变。航天型号软件研究工作历来强调客户意识和技术创新,但仅仅从功能和性能角度定义产品,且创新依赖于关键个人和技术的尝试性创新,研发重点不突出,缺乏系统性。为适应新形势,需要转变思维,认识到产品研发是一种执着的、长期的追求,产品工程需要从市场和客户角度从功能、性能、体验、包装、服务的广义角度去定义产品研发。
三是被动产品规划需向前瞻性的产品规划转变。由于航天软件研制任务历来是被动地由上游型号牵引,系列化、平台化不足,必须从被动接受型号研制任务的观念向主动提供货架产品的观念转变。平台产品研发和核心技术攻关是未来发展的重点,须逐步采用主动的基于充分市场研究的、具有前瞻性的产品线规划,建立共享平台支撑,使产品研发计划具备清晰的路线指引。
四是技术研发融合于型号产品研发需向产品核心技术独立研发转变。在以往型号研制中,核心技术研发融合在型号软件研制中,未实现完全独立,一方面导致型号在研发中要突破技术难题,由此带来较大的质量进度风险;另一方面容易片面关注型号单点软件产品,缺乏专业领域团队保障,制约了技术研发体系的建立,关键技术和核心技术难以积累和提升。
五是单一职能团队孤军研发需向跨职能团队协同研发转变。产品研发是一项需要跨职能部门协作的综合性活动,只有多职能团队或部门协同运作,才能实现有效沟通、协调以及决策,最终成功推进产品研发。
2.划分软件产品层级和建立产品货架
开展多层级的产品开发和共享,必须清楚货架产品、平台产品、面向特定客户群的产品和面向某一客户的定制产品的定义和区别。通常需要在组织内明确货架产品的界定以及产品的分级分类。
(1)货架产品
货架产品是对组织的所有产品进行成熟度评价后,按照一定的层级结构进行统一的管理,以利于产品开发时方便地共享前期形成的成果。
不同层次或级别的产品(技术)都是货架的一部分,在货架上标注不同产品的属性,产品开发设计时就可以通过查看技术说明书、产品规范报告等来确定货架上的成熟产品(技术)是否能够直接应用,这样就可以便捷地、最大限度地实现共享和快速交付,并减少重复开发造成的浪费和新开发模块的不可靠性,以提高产品的可靠性和质量。
控制系统软件按照分级分类思路整理货架产品信息表,根据箭上软件、地面软件、通用软件进行领域划分,每个领域分成软件配置项级复用产品、复用框架、复用构件3 类,对每类产品进行成熟度评价,完成货架信息表的整理。
(2)产品分类
按照面向的用户及层级的不同,还可将货架产品分为内部共享产品、面向特定客户群产品、解决方案级产品3 类。
内部共享产品即内部共用基础模块,是可在不同软件产品之间共用的技术、部件、模块及其他相关的设计或成果。通常指与专业技术相关的内部共享产品,如可共享的软件制导姿控算法模块、通信协议算法模块、软件架构等,部分该层级的产品可直接对外销售,但系统方案解决级的企业更多的是提供更上层的产品进行共享。
面向特定客户群的产品是满足某一客户群的软件平台、子系统,可以作为上一层软件系统产品的共享模块,对于系统集成能力强的企业,该部分产品可提交为共享资产。控制系统软件领域产品中,按照面向的客户群不同可区分为面向运载型号的软件通用框架、通用产品,以及面向战略战术武器型号的软件通用框架、通用产品等;也可以区分为面向弹箭上系统的通用软件产品、面向地面测发控系统的通用软件产品。如果按照第一种客户群不同的分类方法及地面测发控领域的主控软件框架,目前主流的W 型和A 型两型框架即可分别满足运载型号、战略型号的不同需求。然而,在同一客户群(型号)内部,也存在大量需求的差异,需要对同一客户群软件产品平台进行进一步提炼,并且做到底层平台相对独立,运行稳定不轻易更改,与上层应用接口清晰,在实际应用中只做上层的个性化定制更改。当然,随着专业技术研究的持续深入,面向不同客户群同一技术领域的产品平台可不断合并规整,目标是形成一型或几型能够满足不同用户群的平台产品,降低维护成本,扩大产品应用广度,以更好地提高软件产品成熟度,保证产品质量。
解决方案级产品一般是跨几个领域,需要进行系统集成的产品组合,此级别产品可作为共享资产,但最终提交用户的系统基本上都需在已有产品的基础上进行一定的定制,航天产品即为面向具体型号项目的软件系统配置项产品,弹箭上软件系统和地面软件系统最终进行集成组合。目前,型号项目的软件产品以定制形式形成的居多,直接形成解决方案级产品,后续应逐步提升同一客户群(领域群)内共享产品的层次,形成在同一客户群(领域群)内共享的软件产品平台。
3.实施方案
SIPD 是针对软件专业中长期研制模式转型而提出的一种研制模式,分别从组织、流程、产品、技术、布局和基础6 个维度定义了软件研制的核心要素,并将这6 个核心要素的工作融合于SIPD的“2-7-4”运行架构中。
(1)6 个核心要素
组织——对现有的组织结构进行优化,建设以产品研发为中心的立体多维制组织结构。
流程——SIPD 的推进,需要将传统的V 型软件研制流程转为基于平台产品的双V 字异步软件研制流程,建立产品研发和型号研制异步研发流程。
产品——结合当前阶段型号控制系统软件特点,对未来的控制系统软件产品型谱进行规划,分阶段研制控制系统软件体系架构及核心/关键产品,构建软件系统架构(SSA)+共用基础模块(CBB)高可信软件货架产品型谱。
技术——按照产品核心技术、产品研发技术、产品验证技术3个维度,聚焦4 个专业技术方向,突破信息智能领域核心技术。
布局——探索分布式软件研制模式,借助外部资源提升任务完成能力;提前规划布局产业链条,积极接洽上下游潜在合作伙伴,打造具备快速响应能力的低本高效分布式产业布局。
基础——提高产品级、系统级集成调试验证效率,提升软件项目管理、研制测试的信息化水平,形成“管研测”一体的软件专业基础能力。
(2)“2-7-4”架构模式
研究所必须围绕产品研发,对组织结构调整、研制流程优化、专业技术创新、产业化布局和基础能力建设等方面进行创新和改革,最终形成SIPD 研制模式,使组织完成从项目级到平台级的能力提升。SIPD 总体架构如图1所示,“2-7-4”运行架构模式分别代表两大工程、七大团队和四大流程。
一是两大工程。
SIPD 的推进,必须将传统的V 型软件研制流程转为基于平台产品的双V 字异步软件研制流程,如图2 所示。
型号软件多以定制开发为主,开发成本较高、研制周期长且技术风险大。基于平台产品型号软件研制流程强调领域工程与应用工程的独立研发,包括平台产品研制流程和型号软件研制流程两大部分。重视产品线规划、共性需求分析、平台独立验证、产品质量控制等环节,型号软件研制则可充分利用已有货架产品进行二次开发,有效减小软件系统设计和开发的复杂性,提高开发效率。
二是七大团队及其职责定义。
集成组合管理团队(IPMT)。
软件室集成组合管理团队由室主任领导,是本部门产品研发的最高决策机构。其主要职责包括:制定本部门产品研发使命、愿景、目标、战略和规划;组建组合管理团队、产品开发团队、技术开发团队、需求管理团队、生命周期管理团队,并实施管理和考核;建立产品投资标准并管理投资,对产品投资策略负责;对新产品线、新产品的产生进行决策,批准产品线及产品研发计划,确保与战略保持一致;指导和监控各产品线研发的运作,审核产品开发团队、技术开发团队、需求管理团队、生命周期管理团队产品研制工作产品;审批产品线研发资源计划,根据需要跨产品线调配资源,安排资源的优先分配顺序,实现各产品线的资源优化配置;解决跨产品线、跨部门的问题,为产品研发提供业务指导;推动软件产品研发与型号软件项目研发的全流程协作;支持产品研发流程改进。
组合管理团队(PMT)。软件室组合管理团队由主管产品化副主任领导,是本部门产品研发的规划、管理团队。其主要职责包括:熟悉部门产品战略,制定产品研发组织架构及团队职责、规划产品研发业务流程;收集用户需求,开展需求组合分析,编制部门中长期产品发展规划;关注软件技术发展趋势,对新需求、新技术进行调研和分析,提出新产品线、新领域的发展规划;挖掘产品线研制需求,提出产品线的研发规划,确定产品线研制计划,并组织推动计划实施;选拔产品研发团队负责人;评估产品线研制计划的执行情况,提出改进措施和计划建议;审核产品线的技术规划,提出修改意见,保证技术规划与产品规划的一致性;对产品线研发计划的执行情况进行评估,向IPMT 提出纠正措施建议;建立软件产品和型号软件研发的接口,制定并执行计划,使软件产品成为型号项目解决方案的一部分。主管产品化副主任负责对以上工作的组织实施,是组合管理团队的第一责任人。
图1 SIPD运行架构图
产品开发团队(PDT)。软件室产品开发团队是跨型号的产品研发团队,从产品项目确立时正式组建,由产品研发团队负责人领导产品开发团队成员开展产品研发项目。其主要职责包括:负责编制产品研制的技术规划和研制计划;负责产品研制,如需求分解、设计实现、文档编制、测试验证;负责V级产品的更改、版本升级工作;负责为型号选用产品提供技术支持,参与使用产品的型号软件的评审及代码审查工作,对产品的使用进行技术把关。产品开发团队负责对以上工作的组织实施,是产品开发团队的第一责任人。
图2 双V异步软件研制流程图
技术开发团队(TRT/TDT)。软件室技术开发团队是跨型号的技术研发团队,由技术开发团队负责人领导团队成员开展技术研发项目。其主要职责包括:根据部门产品研发战略制定技术发展路线;进行各技术路线可行性分析,制定项目预算;负责技术研发、验证,编制设计文档、使用说明;保证技术研发成果向产品的过渡,为产品研发提供技术服务,实现业务目标。技术开发团队负责人负责对以上工作的组织实施,是技术开发团队的第一责任人。
需求管理团队(RMT)。软件室需求管理团队职责包括:负责用户需求收集,保证需求得到正确理解和及时响应;负责需求分析与分类;根据需求的类型进行需求分发:将长期需求、跨产品需求、新产品需求传递给组合管理团队,纳入产品线研制计划;将当前产品的单产品需求分发给产品开发团队,用于指导产品研发团队开展需求的实现和验证;保证有序、及时地将需求通过规范的渠道传递到组合管理团队、产品开发团队;加强对需求实现和验证的监控,实现需求的闭环管理。
生命周期管理团队(LMT)。软件室生命周期管理团队职责包括:负责产品服务与支持;提出现有产品的改进意见,如改善产品缺陷、降低产品成本,并推动改进工作;向集成组合管理团队给出上下货架产品、停止研发、停止服务等方面的建议,由集成组合管理团队作出继续/终止的决策。
产品应用团队(PAT)。软件室产品应用团队职责包括:根据型号需求从货架选取货架产品;根据型号特殊需求二次开发,形成M 级产品;提出对货架产品的改进意见,如改善产品缺陷、升级产品功能、降低产品成本等。
三是四大流程。
产品管理流程由组合管理团队负责,根据本单位战略规划形成一套以型号需求为主的发展规划,在此基础上对各项资源整合,制定软件中长期产品发展规划,并形成标准作为执行依据,将产品纳入产品型谱,为市场提供有竞争力的产品及服务,实现业务的成功。
产品研发流程由产品开发团队负责,流程包括概念立项、需求分解、制定研发计划、进行软件研发、软件测试验证,最终完成软件发布。
技术研发流程由技术开发团队负责,研发流程包括技术发展路线的制定,对各技术路线进行可行性分析,制定项目预算;对研制技术进行调研、攻关,完成技术研发、验证,并将新技术应用推广。
反馈流程由生命周期管理团队负责,该流程是软件产品与型号应用之间的交流过程。在软件产品推出后,生命周期管理团队及时且持续对产品在型号应用中的表现进行监控,收集产品在型号应用中的用户体验,将结果反馈产品开发团队及集成组合管理团队。
图3 SIPD组织架构与现有组织模式结合关系图
三、实践效果
目前,根据SIPD 模式下组织架构构建和岗位职责设置的总体要求,研究所软件室制定了SIPD 研发模式的组织架构、人员配置及重点产品研制计划。组建了由软件室领导5 人为成员的集成组合管理团队,开展集成产品研发高层决策评审。组建了由主管产品化副主任、班组长为成员的组合管理团队,开展软件室产品型谱规划、产品研发业务流程策划。按照产品型谱规划,组建了10型产品开发团队,目前产品开发团队、技术开发团队、产品应用团队人员既服务于型号项目研制,同时要开展集成产品研发工作。组建了需求管理团队,即现有组织的总体组。组建生命周期管理团队,即现有组织内的运维组。SIPD 组织架构与现有组织模式结合关系如图3 所示。
对在研的10 项核心软件产品进行SIPD 研发模式试行,成立了10 个产品研发产品开发团队,10 型核心产品实行产品开发研发管理模式,组织制定中长期发展规划和年度业务计划,并对产品研发计划的执行情况进行评估,确保产品年度目标实现。SIPD 模式有效推进了各产品开发研发团队工作的进展,产品均已不同程度地进入研制、推广应用、成功首飞等阶段,为后续型号应用提供了有力保障。
该模式已在10 型软件产品的研制中进行应用,但如何与航天软件研制现状进行结合,在不影响型号工程研制的前提下将产品研发、技术研发队伍独立,并进一步细化四大流程过程,推动模式的全面落地实施,高效服务于现有型号工程项目的研制,尚需进一步探索。后续,研究所将在集成产品研发与型号工程实践中将二者结合,以期最终提升型号软件产品研制效率和质量。