软件工厂既可以是一种软件研发的创新模式,也可以是一种软件研发组织。在洛克希德马丁公司,软件工厂是软件研发组织更是创新模式。

一、简介

站在创新模式的角度来看,在敏捷开发和云技术成为主流后,可以将软件工厂定义为“应用低成本、基于云的计算环境,通过利用一系列现代化的资源、工具,并采用和执行敏捷的流程、规范,使开发人员、用户和管理人员每天能够在一致的节奏中协同工作”。站在研发组织的角度,美国国防部采用评估认定的方式,将形成规模并应用创新方法的软件研发团队认定为软件工厂,即为官方公开认定的软件工厂。

美国洛马公司软件工厂示意图(美国洛马公司图片,中国航空工业发展研究中心,作者部分汉化)

从企业角度来说,更重要的是软件研发转型问题,而不是相关的组织管理问题,所以洛马公司将软件工厂主要视为一种软件研发的创新模式,其次才看作组织机构。该公司从2022年启动周期为7年的“洛马全面升级”(One LM Transformation)计划,启动公司全部4个业务域的整体数字化转型,该计划将软件工厂(也称为下一代软件)视为全面升级的5个重大事项之一,和数字工程、数字使能、数据即战略资产、先进制造并列。洛马公司在多个业务线中都应用了“软件工厂”这一创新模式,同时也为一些研发团队打上了“软件工厂”的标签。

二、洛马公司对软件研发的认识

洛马公司认为,软件现在定义了大部分关键任务能力,在许多情况下,提供了装备的决定性优势,尤其是在武器系统和传感器集成方面,软件已经成为空中装备优势的重要构成技术。

该公司认为,通过利用“软件工厂”模式中的开发安全运维一体化等敏捷方法,让软件研发团队能够利用通用代码,以更低的成本快速交付任务功能,同时也满足美国国防部的软件工厂的技术和组织管理要求:

(1)在软件开发使用“软件工厂”模式嵌入所有流程,能够使用其基础架构自动化能力在几分钟内构建软件研发环境,后期可以使用容器化来持续更新软件,而无需全面进行系统集成后再交付。

(2)通过持续集成持续交付的可靠管道系统,可以无缝地发布软件更改,改进故障,最终任务功能能够在几天和几周的时间周期内交付,而不是几个月或者几年。

(3)通过基础架构即代码 (IaC) 等实践,实现软件自动化部署,并满足相关研发速度和重用需求,基础架构即代码还能够提供软件跟踪、审查、测试和部署的自动化能力。

(4)通过集成相关安全机制,在开发的每一步都考虑安全设计和实践问题,提高安全、测试、鉴定的整体效率,避免安全问题形成技术债务。

(5)利用软件运行的自动化监控,还能够支持定制软件针对需求的快速响应和持续迭代更新。

(6)在容器化的基础上应用微服务架构能够支持模块化开放系统架构,同时简化测试和部署,并形成更加硬件无关的软件解决方案。

(7)软件工程的快速发展,需要开展迭代培训和持续学习,尤其是软件工厂创新模式不仅影响软件研发技术,也影响软件研发管理和用户交互。因此,公司的一个重要工作是构建相关的培训和学习的环境。

具体变革实践中,该公司提出了“洛马全面应用软件工厂”(One LM Software Factory)的思路,希望利用软件工厂构建基于人员、工具和流程的敏捷文化,支持其装备和产品达到以下能力:高网络安全性、高互操作性、以相应速度交付。思路具体包括:

(1)使用一套规范的“软件工厂”工具和流程,无处不在的支持公司的各项产品和各个研发团队。

(2)与国防部相关机构直接合作,参与并提供“软件工厂”的软件平台和技术栈。

(3)利用“软件工厂”最佳实践支持软件的快速原型设计、实施部署和功能弹性,形成竞争优势。

三、几个洛马公司软件工厂实践案例

1、下一代导弹拦截器软件工厂

下一代导弹拦截器软件工厂是洛马公司明确定义为软件工厂的软件研发团队。2022年10月该团队向导弹防御局交付了第一个下一代导弹拦截器飞行软件包,也即需求所要求的最小可行产品(MVP),据称,为了开展该工作,洛马公司在阿拉巴马州新建了导弹系统集成实验室,应用了软件工厂模式,包括开放架构、敏捷开发流程、开发安全运维一体化框架,这次交付比原计划提前了一个多月,同时能够支持未来更高效的开发。

2、支持美空军“蓝色侠盗”软件工厂建设

2021年,洛马公司协助美空军寿命周期管理中心组建了“蓝色侠盗”软件工厂。该软件开发工厂研发任务规划和指挥控制软件,以支持全球打击和产品支持(GSPS)合同,为美国战略司令部的任务规划分析系统提供核指挥、控制和通信规划能力。通过与美国空军寿命周期管理中心和美国战略司令部的合作,公司利用敏捷开发技术和开发安全运维一体化方法,在三个不同的实验室建立了12个支持持续集成、持续交付、自动化测试的软件研发管道,并创建了一个基于云的敏捷环境,创新了微服务模式组件架构,这些工作支持软件功能交付周期从六个月缩短到两周。新的软件研发环境包括快速开发和自动化测试的技术设施,用于部署打击计划辅助系统(SPA)2.0,以取代美国战略司令部旧的打击计划辅助武器系统。

3、多域作战软件研发

多域作战需要连接不同作战域的不同平台,构建弹性网络,快速连接跨多个域的关键数据,以预测、破坏和致残对手的作战能力。该公司采用软件工厂相关的敏捷开发方法构建和迭代出具有分布式数据管理的架构,推进将定义下一代作战的软件技术。该公司计划利用开发安全运维一体化方法,研发一个通用参考架构,来适配开放任务系统(OMS)和通用命令控制接口(UCI)等开放架构标准,最终形成一套通用任务服务、连接和接口。

(中国航空工业发展研究中心 李亮)

主编:张洋

制作:顾鹏程

声明:本文来自空天防务观察,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。