最近,一篇名为《乌克兰滴滴打的炮击软件将反应时间降低至30秒 已超美军水平》在 上受到很大关注,文中介绍了这款炮击软件可以像滴滴打的出租车订单系统那样,将炮兵支援的“呼叫”分发到地理位置最近的炮兵单位,快速摧毁目标。这款软件的 主要特征包括:
据说这个炮击软件的使用,使得乌军火炮的准确性和速度超过了俄军,同时分布式的炮兵单位也使得俄军的反炮兵系统无用武之地。
作为GJB5000的研究者,让我感兴趣的是这款软件的开发过程。
文中是这样描述的:
自乌克兰东部开始敌对行动以来,乌克兰武装部队的火炮的准确性和速度与俄军没有差异,但在某个时候,乌克兰“战神”开始展示出令人惊讶的准确和有效的结果——这要归功于为乌克兰武装部队开发的GIS炮兵软件。
俄乌战争从2月24日开始大规模爆发后,迄今为止仅2个多月,如果这款软件是在大规模地面战争开始后,甚至是在乌军发现自己炮兵的弱势才开始提出的需求,那么这款软件的开发绝对是敏捷开发的经典之作。
如果仅用2个月的时间,就能结合战场环境,开发出能够使用甚至影响局部战争的软件,这是怎么做到的?
- 优秀的软件开发人员
快速地开发可交付的软件离不开优秀的开发人员。这款软件的开发人员一定具备丰富的软件开发经验,有着深厚的软件工程能力,熟练运用各种开发/测试工具,而且其中不乏“大神”级的人物。
这就是敏捷开发的基础——一个精英团队。
文中提到一个开发人员的名字,如果这款软件只由他一个人开发完成,那他绝对可称之为“大神”。
- 更好地与顾客交流
如果乌军迫切需要扭转战场上的不利局面,那么对这个软件的需求会非常急切。这可能会使得乌军有人员经常与开发人员沟通、确认需求,这就是敏捷开发另一个要素——顾客现场参与。
- 快速准确的需求开发
乌军对己方炮兵的规模、装备、分布、优势和劣势以及对手俄军炮兵的优势和劣势等都有非常清楚的认识,他们能够向开发人员清楚地表述自己的需求,开发人员通过使用简单的原型、建立共同的术语环境等技术,使得软件需求得以快速地开发完成。
- 健壮灵活的软件架构
基于软件分布式和多信源等的特点,开发人员建立了一个健壮而又灵活的软件架构——使用多配置文件的结构设计,使得不同的信源同步开发、验证,加快了软件开发进程。
- 快速有效地验证与确认
为了对软件功能进行快速有效地验证与确认,除了乌军提供测试环境外,开发人员也可以使用测试驱动开发、自动化测试等技术手段提高验证与确认的速率。
- 复用技术的使用
虽然这是一款全新应用的软件,但经验丰富的开发人员还是可以从自己的资产库中找出一些可以复用的单元或者模块。因为软件复用是提高开发速率的最佳工程实践。
- 模型驱动开发
作为大神,也一定掌握了模型驱动开发技术。通过需求模型可以帮助快速地开发需求,设计模型可以直接导出代码,测试模型可以导出测试用例,模型的使用也会极大地加快开发的进程。
当然,以上都是基于敏捷开发对这款软件开发过程的猜想。
最后,如果我们遇到类似情况,我们的软件开发人员能不能基于敏捷开发的技术手段完成类似的短周期内开发出可以适应当前战场的、影响局部战争的军用软件?
这正是:
软件开发多重要,扭转战局驱火炮
倘若国家有需要,类似软件能否搞
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!