写点什么

公共单位中的敏捷实施:FBI 和鹿特丹港

  • 2013-04-02
  • 本文字数:2035 字

    阅读完需:约 7 分钟

公共单位正在越来越多地使用敏捷方法,从而满足在可用的预算和时间条件下开发软件的需求,并在面对不断变化的需求时变得更加灵活和实用。本文通过对公众领域如何采用敏捷方法作为其需求的解决方案进行了探索,并通过两个案例分析展现了敏捷开发如何运用于 FBI 及荷兰的鹿特丹港。

在这篇来自于计算机世界政府IT 新闻(栏目)的文章《随着预算的削减,联邦政府转向敏捷开发》中,高级编辑 Patrick Thibodeau 表示,美国联邦政府机构有必要使用敏捷软件开发方法:

IT 经理正在通过转向敏捷开发来加速项目并快速体现他们的价值。大型、笨拙、多年期的政府 IT 项目的日子正在缓慢地面临终结。

(联邦政府)机构的预算被削减,由于年度预算尚未批准,所以他们必须在短期预算下运作。这些预算方面的不确定性驱动政府机构寻找新的途径来规划和管理他们的 IT 项目:

敏捷方法论强调开发者、管理者与客户之间的协作——任何一个与项目产出相关的人——随着迭代开发周期以较短的增量方式产出交付成果。

Matthew Weigelt 和 Camille Tuutti 在 FCW 上描述了如何通过敏捷开发帮助公共单位管理好演进的需求。文章《开始敏捷实践?让你的 IT 经理们做好准备》以阐述在传统“瀑布”模型中那些他们认为必须被处理的问题作为开始:

联邦 CIO Steven VanRoekel 和联邦采购政策办公室管理员 Joe Jordan 于 2012 年 7 月在 OMBlog 中写道:长久以来,政府被失控的 IT 项目拖累,损失了数十亿美元并滞后于进度计划。而当一些技术创新发布时,它们(失控的项目)便只能被放弃。

“在许多情况下,这些失败可以追溯到漫长的收购,以及多年来为了交付大规模新系统而在 IT 开发上作出的努力,而不是以增量的方式提供新的功能——如同私营单位那样”,VanRoekel 和 Jordan 写道。

敏捷开发能够帮助政府机构更好地管理其软件项目:

敏捷开发使项目更快发布“而不是对它分析过度并构建一些客户不需要的东西”,

敏捷开发的另一个重要方面,是为用户提供了在项目中识别问题的机会,而且还有机会来解决这些问题。通过选择敏捷开发,官方能够接受与政府内外部利益相关者持续沟通的重要性,从而吸收变更并解决任何变更带来的问题。

Jason Bloomberg 在 CIO.com 上发表的文章《 FBI 如何证明敏捷方法适用于政府机构》展示了一个公共单位使用敏捷方法的例子。它描绘了 FBI 的哨兵项目是如何通过使用敏捷软件开发方法论来调头走上正轨的:

[FBI 的 CIO Chad Fulgham] 选择将项目切换到了由长度为两周的 sprint(scrum 的一个核心最佳实践)组成的迭代 Scrum 方法。尽管错过了最初拟定的 2011 年 9 月这个截止期限,但 Fulgham 的团队仍然使项目处于掌控之中,并成功在调整后的 4.51 亿美元预算内完成了项目,这应该归功于敏捷开发。

Jason 援引了一份报告,其中政府问责局(GAO)调查了若干美国政府机构的敏捷方案。这份报告的内容在此前 InfoQ 的《政府敏捷实施指南》中已经介绍过。

John Foley 也在《 FBI 的哨兵项目:学到的五点经验》中描绘了敏捷开发是如何帮助 FBI 的。来自该项目的经验之一是“敏捷开发能够使事情完成”:

其思路是,一个亲身实践的增量方法之所以更快是因为在两周的“sprint”中,功能得以实现,调整得以完成。FBI 错过了它的目标完成期限——2011 年 9 月——但最终任务能够完成应该归功于敏捷方法论。

另一个来自 FBI 项目的经验是敏捷开发能够帮助政府省钱:

[Fulgham 和 Johnson] 将项目维持在给定的预算内(……)敏捷开发不仅更快,而且更便宜。

另一个公共单位敏捷实施的例子来自于荷兰。Mark Chillingworth 在 CIO.co.uk 上发表的文章《 CIO LourensVisser 将鹿特丹港的系统管理得井井有条》,展示了如何使用敏捷方法开发用于管理鹿特丹港的软件。他引用了 CIO LourensVissers 的话,解释了改变 IT 管理方式的需求:

“当提出港口的愿景计划时,我感到我们必须为其谋划一个 IT 战略,而它也确实需要。之前的项目是基于先到先得方式的。维护预算也在持续增长,而我期望着革新,”

基于来自商业的要求,新信息系统的内部开发最终决定采用敏捷方法。

港口主管理和信息系统(HaMIS)取代了已经使用了 19 年的解决方案,该系统的开发也许是 Visser 这次改革的最大成果。HaMIS 由 Visser 团队于内部开发(……)开发团队采用了敏捷开发实践,并且为了保证产品的高质量,鹿特丹港与软件改进团体(SIG)达成了合作关系,而 SIG 担当了开发过程中 Java 代码的独立评审员。

敏捷实施促进了鹿特丹港 IT 部门与其内部客户之间的协作:

Visser 说,其中一个好处是 IT 部门现在与组织机构中的其他部分有了更多的互动。“我们拥有着一个混合文化,如同一个政府部门和一个咨询公司,我们还像是一个拥有许多资产的公用事业公司,”Visser 补充道。

查看英文原文 Agile Adoption in the Public Sector: FBI and Port of Rotterdam


感谢赵震一对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2013-04-02 10:381893
用户头像

发布了 256 篇内容, 共 78.5 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

Linux下OpenCV出现错误:ASSERT false in file qasciikey.cpp, line 501

Geek_7ubdnf

Linux OpenCV

盘点16款跨平台应用程序开发框架

FN0

跨端框架 跨端运行 跨端发展

测试开发 | 跨平台设备管理方案 Selenium Grid

霍格沃兹测试开发学社

使用 DataEase 制作动态轮播仪表板

搞大屏的小北

透视华为云云原生数据库的演进,能给行业带来哪些启发?

华为云开发者联盟

数据库 云原生 后端 华为云 企业号 1 月 PK 榜

ModuleNotFoundError No module named 'PIL'问题解决

Geek_7ubdnf

Python

Java中Get和Post的使用

Geek_7ubdnf

Java

WXSS 如何进行编译?

FN0

小程序 微信

当你输入网址,小手一点,然后发生了什么

华为云开发者联盟

前端 HTTP 华为云 企业号 1 月 PK 榜

一文搞懂Spring,堪称Spring源码终结者

小小怪下士

Java spring spring源码

软件测试/测试开发 | Jenkins 如何参数化job ?

测试人

软件测试 持续集成 jenkins 测试开发 测试开发自动化测试

小令观点 | 去中心化可没那么难,古代令牌就已经做到了

令牌云数字身份

身份 Web3.0

软件测试/测试开发 | Jenkins 节点该如何管理?

测试人

软件测试 持续集成 jenkins 自动化测试 测试开发

Kratos微服务框架实现IoT功能:设备实时地图

golang 微服务 物联网 IoT Kratos

大银行数字化升级之后,火山引擎VeDI这次要把能力带给中小金融机构

字节跳动数据平台

大数据 金融 数字化 金融行业

Dubbo3 在同程旅行的实践

阿里巴巴中间件

阿里云 云原生 dubbo

Kratos微服务框架实现权鉴 - Casbin

golang 微服务 鉴权 rbac Kratos

走好这三步,不再掉进云上安全的沟里!

亚马逊云科技 (Amazon Web Services)

亚马逊云科技 Builder 专栏

pip安装后仍有ImportError No module named XX问题解决

Geek_7ubdnf

Python

Java基本语法

Geek_7ubdnf

Java

我理解的金融级数据库

宫博

分布式数据库 金融行业 oceanbase 金融信创 金融科技创新

备份谷歌或其他浏览器插件

Geek_7ubdnf

浏览器 Google

华为云发布CodeArts Check代码检查服务 守护软件质量和安全

科技热闻

10分钟在 Rainbond 上部署 mall 电商项目

北京好雨科技有限公司

从数据到价值,DataOps精益数据运营概述

阿里技术

数字化 DataOps

写作的“收益”超乎想象

王中阳Go

深度思考 学习方法 写作 写作技巧 写作感悟

Kratos微服务框架实现权鉴 - OPA

golang 微服务 鉴权 OPA Kratos

pip安装报错:Command python setup.py egg_info failed with error code 1

Geek_7ubdnf

Python

MegCC 新版本来啦!新增 Benchmark 等工具,性能大幅提升!有奖征文活动同步启动

MegEngineBot

深度学习 benchmark MegEngine MegCC 模型编译器

SpringBoot实例

Geek_7ubdnf

Java springboot

公共单位中的敏捷实施:FBI和鹿特丹港_Scrum_Ben Linders_InfoQ精选文章