在当今世界,快速部署软件能力来支持作战人员,比以往任何时候都更加重要。竞争对手正在快速打造军事能力,挑战美国的技术优势。

——美国国防工业协会(NDIA),2023年7月

2018年,美国防部国防科学委员会发布了《国防系统软件的设计与采办》,提出美国应该抛弃传统的瀑布式开发模式,立即采用商业成熟的迭代式敏捷软件开发模式。2019年,美国防部国防创新委员会发布了《软件永不止步:重构代码采办以获得竞争优势》,该报告根据美国防部长要求,特别“对简化软件开发和采办法规进行研究”,提出10项主要建议和16项附加建议。

这两份报告影响很大,此后2019年的《美国防部软件现代化战略》,2020年新的软件采办指令5000.87《软件采办路径的运行》的发布都肇始于此。

几乎在同一时期,还有一项重要的试点工作也同步推进了美国国防软件研发改革。这就是2018年美国国会以国防授权法案立法提出,由美国国防部推动实施的敏捷软件开发试点项目。

一、《2018财年国防授权法》安排了2批试点项目

在美国《2018财年国防授权法》安排了2批敏捷开发模式的试点项目,包括一批长期项目(5年以内完成)和一批短期项目试点(1年以内完成)。其中长期项目试点只针对大型采办项目,涉及8个参与试点,包括陆军的综合防空导弹防御、空军的F-22能力管道、海军的宙斯盾武器系统等,持续5年到2023年。短期项目持续1年,涉及7个参与试点,包括空军的空天作战中心寻路者、陆军的防御性网络行动/任务规划、海军的海上战术指挥与控制、信息系统局的国家背景调查服务等。

(一)短期试点的思路

短期试点的目的是通过敏捷最佳实践来加速软件研发流程,从国防部或军部中挑选了4到8个与软件开发相关的项目进行试点。

1、团队与角色

试点要求项目团队由不同角色的专业人员组成。其中,项目经理将负责关键决策,包括资源、资金、人员配置,以及在必要时建议终止合同。产品经理将管理产品的设计和功能优先级,并直接向项目经理汇报。工程主管将负责软件的实施和运行,而设计主管则专注于识别用户需求并进行沟通。团队成员不一定要有特定的教育背景,但必须具备交付软件产品和理解敏捷概念的技术和经验。

2、试点计划

试点计划将简化流程以适应敏捷方法,忽略与敏捷精神相悖的合同和业务要求,如挣值管理或制定综合主计划。计划中将定义产品愿景和路线图,包括短期和长期目标,以及实现这些目标的技术解决方案。此外,计划还包括使用快速招标程序,识别最终用户,并与之持续互动,进行频繁和迭代的功能验证。

3、试点执行

合同在需求确定后的三个月内授出,并计划在合同授出后的三个月或更短时间内交付功能原型或最小可行产品(MVP)。随后,将以不超过四周的周期进行迭代开发和持续交付,周期中包括安全测试和配置管理。项目将使用现代跟踪工具来跟踪积压待办事项,并提出敏捷指标要求,以监控工作进度和质量。

4、技术和工具

试点项目将采用商业最佳实践中的先进软件工具,包括自动化测试、持续集成和持续部署,以及内置应用监控。软件将兼容商业可达标准,支持多个现代浏览器版本,并可在常用终端设备上查看,包括移动设备。

5、合同和资金

试点项目将不再使用按代码行数等传统方法进行软件资金评估。同时,鼓励采用灵活的合同安排,而不是基于最低价格或成本加成的合同。

这个短期试点项目计划尝试通过创新的方法和工具,提高软件开发的速度和质量。

(二)长期试点的思路

长期试点的目的是采用敏捷或迭代开发方法来定制重要软件密集型作战系统和国防业务系统。试点计划在2023年9月30日结束,若届时尚未完成,将根据后续试点项目的工作计划继续执行。

1、遴选要求

试点项目的遴选要求非常具体。对于作战系统,试点中包括全军系统一个和各军兵种系统各一个。优先考虑的系统是那些已确定软件开发为高风险、出现成本增长和进度延误,以及上一年没有形成任何运行能力的系统。对于国防业务系统,试点要求优先考虑那些同样出现成本增长和进度延误,上一年没有形成任何运行能力,以及业绩不佳的系统。

2、试点要求

国防部长需在法案颁布后30天内,与各军部部长协商,制定长期试点项目的实施计划。实施计划需要定制和简化软件开发要求和方法,并在120天内完成。试点项目原工作计划将被调整,通过使用敏捷或迭代开发方法将系统分解为更小的增量发布。每次增量发布应在调整后的180天内形成实用有意义的功能,并在后续180天内继续提供此类功能。

3、多专业联合团队

试点项目还要求组建一个多专业联合团队,专注于软件产品研发,优先考虑用户需求,控制总成本。团队领导层将配备经过高素质技术培训的专家和管理/业务流程专家,以支持需求修改、采办策略和项目决策。

4、用户团队接触

试点强调与用户团队的定期接触,从用户群体中选出代表,支持项目管理和软件研发工作。此外,确保调整后的采办策略包括技术评价标准,支持基于成效进行需求定义,支持能力即服务。

5、试点项目培训

试点计划还包括培训要求,确保参与试点计划的每个军部和国防机构中相关组织的人员——包括负责工程、预算、承包、测试和评估、需求验证以及确认和认证的组织人员——接受敏捷或迭代开发方法的培训。培训内容将涵盖对敏捷或迭代开发方法的所有职能角色和依赖关系的理解,以及参与为特定项目的开发集成、敏捷或迭代开发方法的练习。

这项长期试点项目计划尝试通过敏捷和迭代的方法来改善软件密集型系统平台的发展,强调团队合作、用户参与和持续学习。

二、短期试点的情况

(一)总体情况

短期试点项目包括7个项目,项目试点周期为1年:

(1)空天作战中心寻路者(空军)

(2)网络任务平台(空军)

(3)防御性网络行动/网络分析(陆军)

(4)防御性网络行动与任务规划(陆军)

(5)海上战术指挥与控制(海军)

(6)海军陆战队招募信息支持系统II(海军陆战队)

(7)国家背景调查服务(信息系统局)

在项目试点中,美国国防部开展了评估、规划和执行三个阶段的工作。在评估阶段,国防部组织人员接触了每个试点项目,以确定其敏捷成熟度的初始水平,并根据需要提供额外的指导。在试点计划阶段,相关人员评估了试点团队的准备情况和试点执行计划。在试点执行阶段,国防部与试点团队合作,开展数据驱动的洞察分析,并研究形成建议。国防部主要以“轻触”的方式介入项目,重点利用已有项目管理工具和报告机制,没有增加过多的数据报告。

为了推进试点项目,美国防部成立了敏捷采办试点核心团队。并为每个试点都分配一名试点顾问,在整个试点周期为团队提供敏捷主题的专业知识。国防部之前组建的开发实践社区不仅为试点项目人员提供帮助,还提供了一个试点核心团队、敏捷专家和项目人员共享信息的环境。后期计划在社区中引入更多外部团队,并与国防采办大学、军兵种、国防工业基地开展更多培训、交流等合作。

(二)执行情况

2018年的美国国防授权法提出了一系列执行要求,项目根据要求开展试点,执行情况如下:

1. 在简化流程方面

所有试点项目都根据授权法要求,减少了在挣值管理、综合主计划、传统项目周期管理、前期详细需求等方面的要求。在试点期间,这种简化成为重要的提速因素,得到了项目的验证。

2. 在试点人员角色方面

所有试点都能按照执行计划分配了必要的角色。不过,因为所需时间和参与程度等原因,产品经理的作用对一些试点来说尤其具有挑战性。一些试点在将决策权下放给项目层时也遇到困难。

3. 制定计划方面

所有试点均按照授权法的要求,制定了计划,并提交采办主管批准,作为其后期执行和监督的依据。

4. 采办项目进度方面

所有试点均对开发的功能及其可用性进行了频繁和迭代的最终用户验证。所有试点均在合同授予后3个月内交付了原型或最小可行产品,随后按不超过4周的周期,继续交付能力。

因为软件确认和配置管理的限制,许多情况下是将功能性原型交付到代理环境(较高保真度的、认定的模拟环境,而不是生产环境)。

试点项目发现并认识到,需要应用开发安全运行一体化(DevSecOps)实践,才能一致、快速地向作战人员提供高质量的价值。

5. 工具和指标应用方面

所有试点均使用了敏捷工具来帮助管理积压待办,发现工具设置和工具使用的一致性和质量各不相同。每个试点在不断扩大指标的使用,并侧重于对整体指标方法的改进。

(三)一些成功经验

1. 试点能够按照已明确的迭代过程反复交付能力

一些试点,特别是有自动化和基础设施支持的试点,比法案要求更早交付可用软件(在授予后3个月内交付最小可行产品,连续迭代间隔不超过4周)。

一些试点被选定前已经开始向敏捷和开发安全运行一体化过渡,也就是说,他们已经应用了合同工具,通过持续努力采用了敏捷流程。试点发现,在直接向操作环境交付代码过程中,现有开发安全运行一体化基础设施已经到位,这是一个重要促进因素。还存在更好的情况,已经建立起自己的开发部署基础设施的试点将工具提供给其他项目,可以帮助其提升开发安全运行一体化能力。

2. 多种敏捷方法能够适用于国防部

所有试点在实现他们选择的敏捷方法(包括Scrum、大规模敏捷框架、极限编程等)方面都取得了显著的成功。试点项目根据自身具体情况,选择相适用的方法,以支持项目获得所期望的结果。例如,有的需要支持可扩展的敏捷方法,选择了大规模敏捷框架,有的侧重于建立有机软件开发技能,选择了极限编程方法。为了提高应用可能性,试点项目在选择敏捷框架时考虑了其组织文化。

3. 与用户社区有效合作

试点使用敏捷方法改善了与用户社区的互动。试点团队了解用户参与的重要性,积极请求和组织用户提供支持。用户参与了软件演示和积压待办的整理活动。据试点项目报告,其用户参与水平高于敏捷之前的水平,设计和开发工作从用户积极参与中受益。若干试点能够克服挑战(例如,对不断出现的用户新需求的理解)并相应地调整其最小可行产品和路线图。试点项目展示出了应对变化、调整工作、满足用户需求的能力。

4. 决策下沉至合适的管理人员

一个重要的敏捷原则是将决策下沉至恰当的最低级别,让能够接触和理解相关数据和经验的人做出决策。如果更高级别做出决策,可能会带来严重的延误,并给快速交付能力带来阻碍。在试点中,设计和开发问题通常由产品经理解决,使团队能够按计划推进。许多采办项目执行办公室将决策权授予项目经理,这使得团队在实现用户合作和解决用户问题时更加迅速。

5. 持续交付的一个关键要素是连续运行授权

如果采用一种连续的或交互性的运行授权,试点项目就能够快速地将软件部署到生产中。避免对每个软件版本执行完整运行授权流程,团队能够更频繁地交付工作软件。

6. 测试鉴定左移可以避免项目延迟

多数试点在早期开发阶段都开展了开发和测试的整合工作,将开发、运行测试以及安全/运行部分的功能鉴定进行整合。在规划和执行阶段引入这些测试利益相关方,使试点能够提早开始工作并持续解决问题,从而避免后期瓶颈,并随着时间的推移改进流程。然而,要实现连续不断的能力交付,还需要整合更多的运行测试和安全鉴定工作。

7. 培训和辅导是有效的

所有试点团队都接受了敏捷培训或者中小企业的辅导和协助。随着团队向敏捷方法过渡,对不同培训模式的需求也随之变化。培训帮助构建了所有试点利益相关方对敏捷过程、术语和期望的共识。根据试点报告,培训有助于外部利益相关方(高级决策人员、合同管理人员等)与试点人员一起参加培训,以更好地理解敏捷的目标和过程。

当试点开始进行模式转变时,专门辅导很有作用。而当流程和基础就位后,团队仅需要较少频率但更有针对性的指导,这时可以过渡到按需咨询。

8. “开发测试”成为开发的一部分

让开发测试成为开发过程内的一部分,能够实现更快速、更自信的软件开发。自动单元测试不仅能给予开发人员对测试工作的信心,也能证明频繁的、早期的测试能够支持软件质量控制。

三、长期试点的一些情况

(一)总体情况

长期试点项目包括8个项目:

(1)综合防空反导(陆军)

(2)合同撰写系统(陆军)

(3)空军的F-22能力管道(空军)

(4)国防企业会计管理系统(空军)

(5)项目主后勤能力行动(空军)

(6)宙斯盾武器系统-基线10(海军)

(7)信息筛选和发布子系统8.0 (海军)

(8)国防退役和养老金支付系统(国防后勤局)

(二)一些试点项目信息

长期试点计划于2023年9月30日结束,但目前仍缺乏报道,仅获知零星信息。

1. 国防退役和养老金支付系统

该项目由于缺乏资金支持而终止,被取消试点。

2. 陆军的综合防空反导项目

该项目的软件部分通过试点项目向软件采办路径的过渡。根据项目办公室的说法,在试点期间,该项目将承担的软件开发和能力的责任由总承包商转移到由政府领导的团队,并与利益相关方密切合作,重新定义角色和责任,建立新的节奏,确定预期。研究发现,让用户参与早期的敏捷规划和过渡工作,最终可以更好地研发满足用户需求的产品,并在开发过程中最大限度地提高用户支持。项目办公室计划每季度发布新的增量软件,以便接受用户的评价和反馈。更灵活的需求开发和更频繁的软件发布,可以更早地发现错误并优化软件。

但根据美国政府问责办公室的说法,该项目将软件开发视为高风险并经历了成本增长和进度延误,从而被纳入试点。虽然项目使用了敏捷开发,但项目办公室报告软件交付周期为10到12个月,并未达到授权法提出的180天要求。在2021年的推进中,项目仍然在经历着向敏捷软件开发实践的转变。相比之下,陆军的集成视觉增强系统项目(为作战人员提供增强现实头盔,以进行战斗、演习和训练)是另一个使用敏捷软件开发方法例子,实现了3个月以内的软件交付周期,这个项目采用微软的开发实践来交付以商业软件为基础的定制功能,软件每3周将增量功能交付给最终用户进行反馈,并将可用软件部署给战斗员进行评估。

3. 空军的F-22能力管道项目

按试点要求,该项目使用了敏捷、持续交付和开发安全运行一体化的软件开发方法。在2020到2022年的评估中,该项目的可用软件大约每月一次部署到实验室测试环境中进行反馈,但大约每12个月交付给作战中队,据称该交付计划与其测试能力、用户偏好保持一致,但并未达到授权法提出的180天要求。但项目办公室认为该项目软件测试基础设施给敏捷开发造成了障碍,限制了自动测试的执行,阻碍了开发工作的开展。项目办公室认为软件开发工作的测试和交付节奏要求很高,因此项目在用户和承包商之间建立了支持测试和发布需求的工作组,并实施了用于集成测试的软件工具。

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

本篇供稿:工业技术研究所

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