编者按:美国防部借鉴商业领域的最佳实践,正在采用各种增量软件开发模型,如敏捷、瀑布、螺旋、增量等,以加快项目的研发和更新进程。国防部传统方式过于信任最终解决方案,测试时间迟滞导致大量的工程和软件变更,进而造成项目经费和日程超限,而敏捷软件开发模式则可及早发现问题,并在开发全周期内根据反馈快速修复更新,最终交付满足需求的产品。美国政府问责局(GAO)最新报告显示,仅有少数国防部采购项目达到敏捷软件开发要求。专家认为,国防部根据具体情况,尤其是武器装备的特殊性,在某些领域采用敏捷软件开发方法。奇安网情局编译有关情况,供读者参考。

一、美国国防部采购项目采用的软件开发模型

美国政府问责局(GAO)6月3日发布的国防采购年度评估报告称,国防部采购项目采用了广泛的软件开发模型,包括了国防创新委员会在其2019年报告中建议的各种增量模型。

  • 瀑布(waterfall)。该模型依赖于严格的阶段,并且每个阶段都需要先完成才能进入下一阶段。这些阶段包括需求定义、设计、执行、测试和发布。每个阶段都依赖于上一个阶段的信息。此模型是线性顺序流,其中进度被视为在软件实施的各个阶段稳步向下(如瀑布般)流动。

  • 增量(Incremental)。该模型在初期就设定了高层次的要求,并分阶段交付功能。多个增量可提供整体项目所需能力的组成部分。为了满足已批准要求,通常必须进行数次构建和部署。

  • 螺旋(Spiral)。该模型从增量模型及其副本中汲取灵感,还结合了“瀑布”模型的结构化和系统化开发,并着重于风险分析。项目以“螺旋”方式反复穿越四个阶段(识别、设计、构建和评估、风险分析),直到完成为止,从而可以进行多轮改进。

  • 敏捷(Agile)。该模型将产品分解为组件,在每个周期或迭代中交付组件的工作模型。该模型会产生持续的发行产品,每次都会对先前的发行版本进行小的更改。在构建产品的每次迭代过程中,还将对其进行测试,以确保在迭代结束时可交付产品。敏捷模型强调协作,因为客户、开发人员和测试人员在整个项目过程中会一起工作。

  • 开发-运维(DevOps)。DevOps结合了开发和运维,强调了软件开发人员和用户之间的沟通、协作和持续集成。

  • 开发-安全-运维(DevSecOps)。DevSecOps是一种迭代软件开发方法,将开发、安全和运维结合为向软件用户提供有用功能的关键要素。

  • 混合(Hybrid)。该方式是两个或多个不同方法或系统的组合,以创建新模型。

二、少数美国防部采购项目达到敏捷软件开发要求

美国政府问责局(GAO)报告数据显示,自称“敏捷”的五角大楼项目很少是敏捷的。但是,硅谷的软件战略如何很好地转化为武器计划?

在五角大楼努力追赶硅谷的情况下,高层官员们高调接受名为“敏捷”的私营部门软件开发策略。但是,GAO针对42个大型武器项目所做的年度调查显示,虽然有22个项目声称采用敏捷方式,实际上只有6个达到了私营部门的标准,即每6周(最多)向用户提供软件更新。

GAO并未发布针对所有项目的此项数据,只能找到其中10个项目的数据。这些项目中,只有3个项目(其中1个后来被取消)符合6个星期的时间要求。其他7个项目更新周期处于3个月到1年以上之间。

达到要求的3个突出项目都报告称,每2周或3周向最终用户(不仅是内部测试人员)交付软件。这三个项目具体包括:

  • 陆军的IVAS智能护目镜(又称集成视觉增强系统)。被称为是商业产品Microsoft HoloLens的军事版本。这使其比常规武器项目更容易应用私营部门的最佳实践。陆军士兵正在与微软工程师并肩工作,以对该技术进行现场测试并进行频繁的改进。

  • 海军的联合精确接近和着陆系统(JPALS)。这是一种纯粹的军事产品,可通过自动制导帮助飞行员在沙尘暴中或在航空母舰甲板上安全着陆。该项目由传统的国防承包商雷神公司开发。但其仍然是电子产品,与开发民用战斗机或导弹相比,它与民用科技领域的项目更加相似。

  • 空军的高超音速常规打击武器(HCSW)。HCSW是一种导弹,推动了高速、高空航空技术的前沿发展。HCSW将检验民用软件开发流程是否能应用于艰巨、无情的环境。但此计划在2月份被取消,转而采取了更加雄心勃勃的方法。

努力达成敏捷但未实现6个星期周转时间要求的7个项目多种多样。相关项目涉及“统一平台”(基本上是用于网络战的计算机硬件和软件包)、PTES卫星通信终端、用于陆军直升机的ITEP引擎和海军的远程Triton无人机。

为什么敏捷软件开发很重要?因为与硬件相比,现代技术的作用(无论是在商业领域还是在战场上)通常同等或更加依赖于软件。正如两个物理相同的iPhone手机会因用户下载应用程序不同而在功能上产生巨大差异一样,两个物理上完全相同的飞机的空战方式也可能产生差异,比如取决于其雷达能否分析敌方对策并筛选出真正的信号。

例如,F-35战斗机每次软件更新都扩展了飞机功能。开发、测试、制造和安装新的雷达、导弹或喷气发动机可能需要数年时间,但一夜之间就可以更新这些系统中的软件。

但是应该这样吗?硅谷可以推出精简的“最低可行产品”(Minimum Viable Product),获得用户对哪些管用、哪些无效的反馈,快速修复报告的错误,然后增加新功能。军事系统不仅比大多数iPhone应用程序复杂,而且在出错时更容易使人丧命:对软件开发人员和直升机飞机员来说,“致命错误”和“崩溃”等术语的意义完全不同。

三、专家认为国防部可以在某些领域采用敏捷方式

有三位专家一致认为,国防部可以在某些领域采用敏捷方法。但他们对国防部实际表现以及推进程度意见不一。

戴维·伯特奥

前五角大楼官员、现任专业服务委员会(一个IT和服务承包商协会)负责人戴维·伯特奥(David Berteau)警告称,敏捷是一把“双刃剑”。伯特奥称,“商业市场中的敏捷性是由竞争动态所驱动的,其中包括保持竞争优势、抢占市场先机,尽快发展等”,“结果是,更新(始终)需要再过一两个星期进行纠正。”

伯特奥表示,国防部的敏捷是由一组更为复杂的动态驱动的。与像俄罗斯或中国这样的大国竞争者之间的竞争是截然不同的,甚至比亚马逊和微软间最激烈的斗争还要危险。预算提前几年锁定;法律法规难以将开发、生产和测试等不同活动结合在一起;而承载软件的高科技硬件需要多年开发时间。伯特奥称,“为什么要在能够安装或使用前准备好软件?更快并不总意味着更好。”

伯特奥认为,GAO报告侧重于知名的武器项目,但并未真正关注敏捷软件开发最适合五角大楼的领域。他称,“在整个国防部日常运营中,敏捷软件更新的真正好处很多将来自于MDAP(大型国防采购项目)之外的流程、系统、后勤和支持”, “在那些领域,私营部门的最佳实践目标可能更有意义。”

比尔·格林沃特

相比之下,撰写了许多现行的采购改革法律的前国会工作人员比尔·格林沃特(Bill Greenwalt)更加热衷于在国防部运用敏捷开发。他表示,国防创新委员会的软件研究清楚表明,国防部在软件开发方面做得很差,并且有一些真正的最佳实践可用于敏捷开发,国防部整体上都没有这样做。

格林沃特表示,敏捷可能无法满足某些需求,我们不能驾驶配有敏捷软件开发的首个最低可行产品的飞机,显然在飞机员冒着生命危险前需要在模拟器中反复多次运行软件,测试至关重要。

但是,格林沃特认为,当前的五角大楼采购系统实际上在测试方面做得并不好。商用软件通常过早推出,测试不足且存在漏洞,而传统武器项目在完成设计和开发后才开始认真测试,过于迟缓。这导致了昂贵且耗时的问题修复,如果早点发现,问题可以以更加便宜且快速的方式予以解决。

格林沃特表示,国防部的传统方式信任最终解决方案,测试很晚,大量的工程和软件变更导致项目经费和日程超限;采用敏捷方式要好得多,在开始时就谦虚地承认并不了解最佳方案,尽早且经常开展测试,并在整个设计和开发过程中基于真实用户的反馈进行修改,而不是等着最终交付一个完整产品。

安德鲁·亨特

五角大楼可以做到这一点吗?位于华盛顿的智库战略与国际研究中心(CSIS)国防工业研究负责人安德鲁·亨特(Andrew Hunter)表示,国防部很难进行敏捷采购,(获取)自适应系统;考虑到五角大楼官僚机构采用私营部门实践的困难,GAO报告实际上令人鼓舞。

亨特称,IVAS、JPALS和HCSW项目实现了商业创新周期,这表明国防部可以实现敏捷;其他七个时间线较长的项目也不是令人沮丧的现象,即使是该研究中更具挑战性的案例,其适应速度也比国防部传统情况快得多,此前更新周期往往以“年”而不是以“周”来计量。

亨特称,并非每个国防部系统能够或将需要每两到六周进行一次更新,但应确保能适应的项目通常可以在两到六个月内完成更新。这是许多此类项目实际上需要达到的基准。

声明:文章仅供交流参考,不代表本机构立场。

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