写点什么

在人事管理办公室应用敏捷方法

2011 年 6 月 03 日

政府部门应用敏捷方法

敏捷宣言说明:

个人和协作胜于过程和工具

可工作的软件胜于面面俱到的文档

客户合作胜于合同谈判

响应变化胜于拘泥于计划

虽然右边的条目也有价值,但我们认为左边的具有更大的价值 [1]

然而,联邦政府部门通常倾向于右边的条目。因为相比商业世界中更期待交付价值,政府部门通常关注降低风险。在这种环境中,采用敏捷方法的机构能否为联邦政府交付价值?

这份报告阐述了敏捷思想和流程如何在人事管理办公室(OPM)的项目中得以应用,帮助 OPM 对问题多多的退休系统现代化(RSM)计划进行改革和交付价值。

RSM 的历史

目前 OPM 平均需要 138 天才能处理完退休申请 [2] 。关键的问题在于,处理退休申请所需的各种信息仍然在纸质表格上。

RSM 计划的目标是将目前基于纸质表格的联邦退休管理系统和系统基础架构升级到电子化在线系统,这个新系统被称为 RetireEZ。这个计划曾经尝试过至少三种“大爆炸”式的实施方案。 [3] 最后一次尝试中采用了传统的需求分析、设计、实施和测试循环的方法来开发系统。在测试阶段暴露出很多严重的问题。这些严重的问题最终导致 OPM 和开发商达成了终止 RetireEZ 合同的决定。 [4]

新方案

{OPM 主管 John }Berry 说,OPM 仍会尝试开发自动化的退休管理系统,但会采用增量式开发模式,而不是试图一次性重新构建整个系统。“我不想让以前的错误重演”他说。 [5]

在与上一家开发商终止合同后,OPM 提出了一个新的解决方案,尝试解决之前困扰 RSM 计划的各种问题。新解决方案的要点包括:

  • 识别最有价值的交付物
  • 建立 OPM 领域专家和外部数据提供方之间的沟通和协作闭环
  • 采用迭代式的敏捷过程

识别价值

困扰之前所做的努力的一个问题在于,RSM 计划尝试一次性解决所有问题。很多并行的工作同时开展,为了:

  • 创建电子数据源,以转换纸质表格
  • 实现电子化的退休审核
  • 开发在线退休管理工具
  • 开发退休计算器
  • 实施数据清理
  • 为退休管理系统建模

作为从过去汲取的教训,OPM 的首席信息官办公室(OCIO)决定不再试图一次解决所有问题。而是尝试首先解决最重要的问题:数据。数据本身对其它所有工作来说是最为关键的,上述列出的所有工作都依赖于解决数据问题。也就是说,优先级最高的工作是解决数据问题。了解了这个情况后,RSM 数据处理项目成为优先级最高的工作,目标是为退休数据源制定标准。

沟通与合作

示例图 1 - 退休申报流程

领域专家了解退休流程 —— 从告知领域专家系统如何工作转向理解他们对数据的要求,以便数据提供方提供何种数据 —— 工作重点从收集需求转向确认需求

如示例图 1 所示,当前的退休处理流程要求数据提供方为 OPM 退休审核人员提供纸质的数据。退休审核人员处理纸质文本然后将处理后的数据录入退休管理系统。初始的工作会上,项目团队每天与不同的数据提供方制定退休系统数据源格式。在和各个数据提供方的会议和对系统不断理解的过程中,项目团队很快发现真正的用户是退休审核人员。这些退休审核人员是真正的 OPM 领域专家,他们对退休审核相关的数据和流程有着更深入的理解。于是 RSM 数据处理项目团队改变了工作会,团队每周与领域专家开两次会,制定数据源标准。类似的,一次召集所有的数据提供方确认需求和数据规范比从每个数据提供方单独收集需求更有效率。

在与 OPM 的领域专家紧密合作的过程中,RSM 数据处理团队取得了显著进展。特别是:

  • RSM 数据处理团队真正理解了数据和 RSM 计划的需要
  • RSM 数据处理团队与领域专家建立了合作关系
  • SME 作为 RSM 计划的成员
  • SME 作为团队的一部分参与 RSM 数据处理团队与数据提供方的会议

充分发挥领域专家的价值并将之纳入项目团队,是 RSM 计划走入正轨并开始交付价值的一个重要的指标。领域专家成为 RSM 数据处理项目的重要贡献者。

迭代式解决方案

“OPM 不会只完成纸质文档处理模块,”{OPM 主管}Berry 说道,“{OPM}正在考虑如何在目前数据处理模块及未来解决其它技术问题中采用敏捷开发方法。” [6]

基于前车之鉴,OPM 首席信息官办公室转向迭代式开发流程,Scrum 方法本质上正是基于迭代式开发流程的。RSM 项目组聚集了优秀的业务分析师、开发人员和有敏捷经验的 Scrum Master。项目组的首要任务是制定退休管理系统数据源标准,并开发一个系统从数据源接收、校验、存储和检索数据。

图1 - 敏捷宣言签署人Alistair Cockburn 参观RSM 数据处理团队的Scrum 墙

项目组的Scrum 流程定义了每两周作为一个迭代周期。每个迭代周期的第一天用来做迭代计划,包括回顾product backlog,从中选择当前sprint 的用户故事(user story)并将用户故事分解为开发任务(task)。在每个迭代周期中,项目组成员首先制定数据源格式标准,然后开发相应的系统功能,然后每周有两天时间部分项目组成员和领域专家召开工作会。工作会的内容包括实时协作和开发数据源系统,同时也包括验证系统。每个sprint 的最后一天,项目组评审系统和sprint 的工作情况并进行项目回顾。最终项目组能够在一天之内完成迭代计划、评审和回顾。

示例图2 - 迭代计划

找到Product Owner

团队最大的问题在于他们没有一个典型的Scrum Product Owner。最终项目团队决定把Program Manager 当做Product Owner。项目组组长在和Program Manager 的会上使用来自与领域专家工作会上获得的信息和政府部门主管的意见,与PM 共同制定用户故事的优先级并对项目目标和sprint 目标达成一致。

Program Manager 把上述目标信息传达给项目团队,因此关于项目优先级等方面团队能够统一意见,这些信息也告诉团队项目的进展方向。项目团队也通过和领域专家的会议来验证迭代周期的工作。

项目治理

对于联邦政府项目,必须遵循项目治理的要求。幸运的是,对于 RSM 数据项目来说,项目组和 RSM 项目管理办公室(PMO)建立了良好的工作关系。项目组和 PMO 充分合作以满足项目治理的要求。对于项目治理来说,最重要的两个要求是月度项目进展报告和挣值管理(EVM)数据更新。

对项目组来说,编写月度项目进展报告比较简单。因为 RSM 数据处理项目组已经使用项目跟踪系统和 Scrum 故事墙来跟踪 backlog 的内容,所以编写进度报告是小菜一碟的事。更新挣值数据相对困难一些。敏捷方法在本质上并不排斥挣值管理,而且可以找到敏捷挣值管理的出版物 AgileEVM [7] 。然而,很多挣值管理的实现都遵循瀑布模型:需求分析、设计、开发、测试和发布。这就和 Scrum 方法倡导的基于产品特性而非基于开发生命周期顺序来管理工作相矛盾。另外如果重新制定工作优先级将会破坏挣值管理中设定的基线。如果在挣值管理中一项工作计划于本月完成,但项目组希望在下个迭代完成,EVM 就会显示该工作为红色,这时项目就有麻烦了。项目团队发现解决这个问题最有效的方式是帮助联邦政府的管理人员理解调整项目中工作优先级的原因是根据项目自身的需要做出的。这时候项目团队和 OPM 的领域专家们的密切合作关系发挥了作用。领域专家们成为帮助联邦政府管理者理解项目进展和项目组工作情况的关键人物。

在“妥协的艺术:Scrum 和项目治理”一文中,Mike Cohn 对于如何解决项目治理的问题给出了很好的建议,他说:

  1. 谈判并设置对于项目的期望
  2. 报告要符合期望
  3. 邀请他们参与到过程中来
  4. 参照一个成功的案例 [8]

联邦政府中的 CIO 们面临调和 OMB、领域方面干系人和技术人员之间不同的关注点的挑战。OPM 采取的慎重的方法和在 RSM 计划中取得的成果让所有这些不同的听众都非常满意。

结果

早先提到过,制定退休管理系统数据源标准是 RSM 数据处理项目的首要任务。好消息是,项目组完成了这项工作,OPM 在《退休管理系统数据报表指南》 [9]

(简称 GRDR)中发布了数据源标准。这套指南通过了联邦政府内部和外部的退休管理领域专家审核,是个可工作的解决方案。目前该计划正在收集反馈和进行测试,这些反馈意见将会用来不断更新 GRDR。

图 2 - 《退休管理系统数据报表指南》

同时,项目向领域专家们展示了数据检索和校验软件,项目团队仍在继续定义和开发系统的业务规则。项目团队取得的成果是 RSM 计划于 2008 年完成的目标,前几次尝试均告失败而停止。

敏捷方法的新成果

经过慎重考虑,OPM 的 OCIO 决定通过简化组织流程使 OPM 交付更快速、出资方满意度更高,同时也避免和机构一直以来更熟悉的非敏捷流程的文化相违背。OCIO 在慎重的寻找敏捷和组织文化间的平衡,并计划小幅逐步向敏捷方法转型。

RSM 数据项目并不是 OPM 刻意尝试敏捷方法,而是试图采用敏捷方法推进项目进展并取得成效。2010 年,OPM 启动了两个新的敏捷项目:一个是短期的财政项目,另一个是新网站迁移项目。在这两个项目中,OPM 从 RSM 数据项目中抽调了实施敏捷方法的关键人员,用他们的经验在 OPM 内部实施敏捷方法。OCIO 将会依据这些敏捷项目的成效和教训帮助今后在 OPM 内部实施敏捷战略。

[1] Manifesto for Agile Software Development

[2] OPM announces another overhaul of federal retiree system, Joe Davidson, October 20, 2010

[3] OPM shakes up retirement office to improve claims processing, Jason Miller and Max Cacas, October 21, 2010

[4] OPM and Hewitt Make Nice on RetirEZ, Alyssa Rosenberg, February 9, 2009

[5] At OPM, an overhaul of retirement processing, Joe Davidson, October 21, 2010

[6] OPM shakes up retirement office to improve claims processing, Jason Miller and Max Cacas, October 21, 2010

[7] AgileEVM: Measuring Cost Efficiency Across the Product Lifecycle, Tamara Sulaiman, October 5, 2007

[8] The Art of Compromise: Scrum and Project Governance, Mike Cohn, December 22, 2009

[9] Guide to Retirement Data Reporting, Office of Personnel Management, June 30, 2010


关于作者

Richard Cheng Excella Consulting 的管理咨询师,为华盛顿特区的商业和政府客户提供咨询服务。Richard 在下面的项目中成功的实施敏捷原则:

  • 管理互联网项目
  • 实现数据交易服务
  • 创建内部通用账务应用程序
  • 实现企业级财务软件包
  • 为非技术团队和组织开发流程

作为管理咨询师,Richard 指导和培训客户采用并实施敏捷方法和 Scrum。Richard 同时领导 Excella 的敏捷卓越中心(Agile Center of Excellence)。目前,Richard 正在将敏捷方法引入联邦政府,正在与人事管理办公室合作进行敏捷项目。

查看英文原文: Agile at the Office of Personnel Management


感谢崔康对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家加入到 InfoQ 中文站用户讨论组中与我们的编辑和其他读者朋友交流。

2011 年 6 月 03 日 00:002231
用户头像

发布了 32 篇内容, 共 71527 次阅读, 收获喜欢 0 次。

关注

评论

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

熟悉又陌生的 k8s 字段:finalizers

郭旭东

Kubernetes

合约跟单模式系统开发,交易所合约跟单源码

13530558032

拥抱K8S系列-06-K8S如何解决docker部署的问题

张无忌

Docker Kubernetes 运维 service

USDT支付通道搭建,USDT承兑商跑分系统

13823153121

Pulsar Flink Connector 2.5.0 正式发布

Apache Pulsar

flink 开源 flink 消费 kafak Apache Pulsar

不要以为Bug写的好就是好程序员,其实这只占不到15%

小Q

Java 学习 程序员 架构 面试

从零开始搭建完整的电影全栈系统(四)——restfulApi用户的认证授权及用户注册

刘强西

RESTful API yii

USDT承兑支付系统,区块链跨境支付源码

13530558032

JavaScript引擎的事件循环机制是怎样工作的?

Walker

Java 前端 运行时栈帧 事件循环

我四面字节跳动,拿下1-2级offer,太感谢这份“神仙级面试真经pdf”

云流

编程 计算机网络 架构师 java面试

oeasy教您玩转linux010210管理应用aptitude

o

多线程与高并发之锁

彭阿三

多线程 多线程与高并发

大数据任务调度 - 有向无环图(DAG)之拓扑排序

海豚调度

数据结构 大数据任务调度 DAG 拓扑排序 Apache DolphinScheduler

这13道面试题,哪怕背你也要背过来。别说我没提醒你

小Q

Java 源码 架构 面试 多线程

字节跳动半夜给员工发钱,全员沸腾了

程序员生活志

字节跳动 职场 薪资

年薪150万的阿里大佬工资全部上交!家务全包!却被老婆嘲讽嫌弃!网友:你老婆外面有人!

程序员生活志

互联网 职场 大厂 薪资

区块链数字钱包开发,数字钱包app

13530558032

这篇文章,把中国科技的真实底子讲透了

CECBC区块链专委会

中国 科技 产业竞争

朱嘉明:全球科技革命正在逼近“奇点”,区块链影响未来人类社会的走向

CECBC区块链专委会

人工智能 科技 科技革命

大厂面试爱问的「调度算法」,20 张图一举拿下

小林coding

算法 操作系统 内存 进程

滴滴AR实景导航背后的技术

滴滴技术

人工智能 滴滴技术 实景导航 地图与公交事业群分享月

如何利用Chrome DevTools优化网页性能

熊斌

学习

区块链支付通道系统搭建,USDT跑分承兑商系统

13823153121

大项目写代码写到晕头转向?敏捷多项目框架解君愁

Philips

敏捷开发 程序设计 软件架构

数字货币交易所开发方案,交易所源码

13530558032

探路人与解题者:腾讯数字生态大会上AI语音助手+X的无限可能

脑极体

LiteOS间歇计算技术:IOT终端真正感受“电量自由”

华为云开发者社区

物联网 LiteOS

云小课 |选定合适的证书,做“有证”的合规域名

华为云开发者社区

证书 课程练习 ssl

[翻译]Go Code Review Comments

卓丁

超酷! Atlas给黑白视频“上色”

华为云开发者社区

视频 Atlas

MySQL最全整理(面试题+笔记+导图),面试大厂不再被MySql难倒!

Java成神之路

Java MySQL 编程 程序员 面试

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

在人事管理办公室应用敏捷方法-InfoQ