NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

优秀的敏捷项目经理是项目成功的尚方宝剑

A case study

  • 2013-07-19
  • 本文字数:4437 字

    阅读完需:约 15 分钟

如果按照思维定式来考虑已有的 Scrum 框架,项目中本没有敏捷项目经理(Agile PM)这样的角色。而在另一些敏捷方法中——例如特征驱动开发(FDD)人们仍然依仗项目经理(PM)。但项目经理的角色已更多转变为负责项目行政方面,而非负责协调开发团队及其活动方面,或是处理资源问题方面(也远非项目管理知识体系——PMBOK 中所描述的传统意义上的项目经理)。仍旧以特征驱动开发(FDD)为例,以上描述的是开发经理的职责而不一定是项目经理的职责。在战术层面上,敏捷项目经理应该比普通项目经理看得更远,站在战略层面考虑问题。敏捷项目经理不仅应该具备传统项目经理的各项技能,还必须对快节奏、充满变数的敏捷项目及其框架有所见解。

我们可以把敏捷项目经理看成具备多项技能的专业人士,在一定需求下他具备的技能能够使他同时胜任项目中多个角色。从 Scrum 框架考虑,这些角色可以是客户产品负责人(PO)及 Scrum Master。例如,在我们的某个项目中,敏捷项目经理在一个 Sprint 中是 Scrum Master,而在下个 Sprint 中则转变成产品负责人。根据不同需求,敏捷项目经理必须可以胜任 Scrum Master 或产品负责人的角色,而不是去取代这个角色。敏捷项目经理能够凭借自身的项目管理专长胜任任意一个角色(客户的产品负责人及开发团队的 Scrum Master),哪里需要支持,敏捷项目经理就能出现在哪里,永远以达到项目最佳产出为目的。

在敏捷软件开发项目的课程中,人们常常把 Scrum Master 描述成“敏捷流程的负责人”,他会确保团队正确运用 Scrum 及敏捷框架进行开发。当我们考虑近岸开发项目时,由于近岸开发的特点——大多数时候开发团队和产品负责人分布在不同的国家,我们更倾向设多个负责人。这样一来,每个区域的负责人都有责任保证自己团队的进度,从而满足项目的整个日程。举例来说,Scrum Master 和敏捷项目经理可以协同工作共同领导项目,带领团队前进。同样,因为客户的业务合作伙伴往往不和开发团队在同一区域工作,敏捷项目经理将更多地与合作伙伴确认需求,保证项目向正确方向前进。从这方面看,敏捷项目经理代表着客户,他的工作将确保团队满足流程要求并在一定程度上左右近岸开发项目的成败,因此这个角色也变得至关重要。敏捷项目经理的另一职责是协调分布在不同区域的团队。由于项目成员分散,文化也存在差异,不一定都能习惯 “自上而下的沟通方式”,敏捷项目经理将帮助团队成员消除沟通障碍以保证项目顺利实施。

敏捷项目经理的职责包括(但不局限于):挑选合适的团队成员(人事),提供指导和辅导,与产品负责人协商产品 Backlog 的开发,与项目团队协商产品 Backlog 的创建流程,创建、执行并对项目的日程和成本预算进行监控,负责项目的现金流及付款通知,负责沟通,负责风险应对计划以及采购管理等等。

特别是在协作方面,敏捷项目经理将负责主持项目的启动会议,也会按需安排其他的项目会议。敏捷项目经理还会负责为项目干系人及团队成员提供口头的或正式的项目状态报告,并负责为项目文档进行定期更新与归档(例如,企业的项目管理办公室要求按照标准提供相应的项目文档,我们就该在 Backlog 中加入创建这些文档的 story)。

敏捷项目经理还应当具备以下三种能力:辅助客户的产品负责人将企业愿景转换成开发团队能够理解的语句(例如,运用价值工程(Value Engineering)的方法创建并维护排序后的产品 Backlog);帮助 Scrum Master 确保产品负责人正确行使权利(译注:帮助 Scrum Master 顶住来自客户的压力);协助 Scrum Master 确认客户和开发团队的工作都符合敏捷流程。

敏捷项目经理如何工作

想要完全了解敏捷项目经理的工作,我们可以举一个财富 50 强制药公司的例子。公司有过一个软件开发项目,该项目由包含 Scrum Master 的近岸开发团队负责,团队遵循 Scrum 原则逐步完成 Backlog 项。这个团队包括不同背景的三名开发人员(有擅长写代码的,有擅长网站设计的,有擅长数据库的等等),一名测试员及一名软件架构师。我们将敏捷项目经理与产品负责人共同看作项目的“核心成员”,他们在同一地点办公,但与开发团队分处不同的区域。整个项目历时 66 天,由 5 个迭代组成。

项目首先由团队称作“Sprint 0”的 4 天热身阶段开始。在这阶段中,团队一边评审客户创建的需求文档及估计的时间线,一边耐心等待客户讨论决定应用的基础设施。“Sprint 0”阶段的一个目标是通过客户、敏捷项目经理及开发团队之间的充分讨论,理清业务逻辑的问题,保证大家在这方面达成共识。

在此后为期 16 天的 Sprint 中,敏捷项目经理在协调日常沟通方面扮演着举足轻重的角色。这包括为团队妥善安排主持每日例会,安排好与客户的晨会,检查 Backlog 确保每项工作都能按时按质完成,辅导 Scrum Master 预见可能的未知障碍。诚然,典型的 Scrum 项目认为开发团队有能力追踪 Backlog 并按时完成任务。但在这个项目中,近岸团队发现由于客户与团队之间的地域阻隔,设敏捷项目经理这样一个角色在追踪项目任务完成状态方面更能发挥优势。

我要指出的重要一点是,正如传统的 Scrum Master 一样,在这个项目中敏捷项目经理也不会亲自完成任何一项任务,我们的开发团队有自我组织的能力处理所有分配的任务。例如,Backlog 中的有些任务非常复杂当开发人员感到单靠自己能力无法完成时,开发人员会自发地向软件架构师寻求帮助。同样,开发人员在除了本职工作外还会完成诸如单元测试,系统测试及回归测试(互相测试对方的代码)等额外的工作。他们自愿帮助测试人员完成原本属于测试范畴的工作。这表明团队能够相互照应并意识到“边际力量”的重要性,并为着达成组织架构层面上的敏捷程度而共同努力。

每个 Sprint 的第一天通常会包含一个计划环节。在该环节中,开发团队会把从产品 Backlog 中得到的用户 Story 分解成任务,评估这些任务所需时间,并领取任务。客户会同敏捷项目经理以及开发团队共同讨论每个 Sprint 的目标,然后开发团队会把这些目标写在办公室的白板上。

之后的 14 天内,团队除了埋头进行开发外,还需要参加每天早上的 15 分钟 Scrum 立会。在立会上,敏捷项目经理会通过网络摄像头逐一跟团队评审 3 个内容:前一天完成的工作,当天要完成的工作,以及任何会阻碍团队实现 Sprint 目标的障碍。除此之外,敏捷项目经理每天还要参加另一个 30 分钟的电话会议,与产品负责人讨论立会中出现的阻碍及解决方案。每个 Sprint 的最后一天将是历时 1 个小时的演示单元,开发团队会向客户及项目干系人展示此次 Sprint 开发的功能。

扫平地域边界、实现完美沟通

由于开发团队和客户身处不同的区域(在这个案例中,开发团队在巴西,而产品负责人在美国新泽西),敏捷项目经理将对最终的 Sprint 目标负责。需要指出的是,由于在这个案例中项目采用的是与客户只有 1 个时区的近岸团队,这使得敏捷项目经理的工作相对容易。如果我们考虑 8 小时以上时差的离岸项目,那么对敏捷项目经理的挑战将更大。为了更好地沟通,团队设立了不少实时会议和即时通单元,还启用了用户提供的一条 800 电话会议专线。

由敏捷项目经理牵头的有效沟通实现了项目的高效性。在一个高效的团队中,每个开发人员都认同沟通的重要性,并保持着与客户进行密切沟通的习惯。由此保证顺畅的沟通贯穿项目始末,确保了双方的精力都放在实现正确的业务目标上。团队自身的优秀沟通能力以及敏捷项目经理的推波助澜,保证了项目双方的有效沟通。近岸团队能够在所有的 Sprint 中始终保持正确方向并按时交付所需的特性功能。

以史为镜、渐入佳境

之前曾提到过,敏捷项目经理将负责辅导 Scrum Master 和开发团队。在整个项目中,敏捷项目经理自始至终主导着项目进程并负责指导团队在每个 Sprint 结束时进行回顾。回顾单元的目的在于通过审视这次 Sprint 中团队做得出色及不足的地方,寻求更好的工作方式。在 Scrum 框架中,我们认为自我学习的过程与交付最终产品同样重要。

作为回顾单元的成果,开发团队能够从过去经验中得到提升,从而提高自己在客户中的声望,渐入佳境。同时也为其他软件开发团队提供了可参考的工作流程框架,并能够成为其他团队的基准。此外,由于团队频繁地与客户进行回顾,他们也更容易影响客户做出对团队及项目有利的决定。这在相当程度上避免了在不必要的讨论上花额外的时间——而减少这样的花销在高竞争性的开发市场上非常关键。

在开发团队提升客户声望的同时,他们也提升着自身的团队士气,这对敏捷及高效团队来说也很重要。团队开始对自己的工作充满自信,并愿意尝试通过新的方法实现某些任务,这包括对软件相关的业务流程提出改进建议。

成功

这个项目除了让客户感到非常满意之外,团队自身也得到了提高。在敏捷项目经理的成功领导以及合理运用 Scrum 方法的双重作用下,团队很少在“闭门造车”浪费时间,并能及时获得反馈信息。同时,团队能够集中精力在项目的关键组件,并能依据业务价值设置合理的优先级交付产品。正因为团队与客户每天都有交流,客户非常清楚将要交付的正制品及其带来的商业价值。敏捷项目经理还会协助产品负责人一起准备高层需要的报告,向高层解释项目的价值所在。

回顾整个项目,团队意识到,如果没有敏捷项目经理的领导,这个项目很难成功。如果没有敏捷项目经理促进彼此沟通,团队很有可能无法及时发现潜在的问题。而这些问题极有可能演变为更大的问题,导致项目返工甚至延期。如果没有敏捷项目经理保证团队和客户朝着同样的业务目标迈进,双方很可能各自为营,劲儿使不到一处。这将最终导致团队交付的产品并不是客户所想要的,或是交付过程极为低效。

综上所述,Scrum 方法的运用及敏捷项目经理的存在是项目成功交付的尚方宝剑。正因敏捷项目经理与高层的日常沟通,项目干系人很容易追踪项目状态,考察团队能力并对可预见的障碍做出及时快速调整。这种双向的密切沟通也会反过来提升客户对团队的信心。总而言之,高效团队与敏捷项目经理的组合保证了项目能够渐入佳境,最终交付给客户有价值的产品。

关于作者

Leonardo Abdala 是名 Ci&T 公司的项目经理,他曾负责过的敏捷项目有:亚马逊云计算(AWS),微软,Drupal 项目以及移动应用、移动应用相关的网站等。在 Ci&T 期间,他曾为多家跨国企业做过软件开发项目,包括:财富 50 强的制药公司,财富 200 强的广告公司,以及财富 500 强的医疗保健生产企业。他领导着 Ci&T 公司的跨区域开发团队,这些团队遍布巴西,阿根廷及中国。他已有 5 年从事敏捷开发的经验,以及超过 9 年从事 PMI 框架开发的经验。Leonardo 还拥有多项微软认证(MCP,MCTS,MCPD,MCITP),Scrum 联盟的 CSM,CSP 认证,PMI 机构的 PMP 认证。他还是巴西贝洛奥里藏特的大学教授(在休),持有管理信息系统的学士及硕士学位。

原文英文链接: Why the Agile Project Manager is the Secret Sauce for Development Projects


感谢侯伯薇对本文的审校。

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

2013-07-19 07:183908

评论

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

甲方日常 8

句子

工作 随笔杂谈 日常

阿里巴巴发布国内首个公益区块链标准 用技术让公益公开透明

CECBC

区块链 公益

翻转链表,机器学习视觉训练,对数据的人工标注,使信息丢失,John 易筋 ARTS 打卡 Week 16

John(易筋)

大数据 学习 ARTS 打卡计划 翻转链表 Google论文评判人工预处理

读后感之《任正非:以客户为中心》

王新涵

架构师训练营第十三周总结

张明森

ARTS打卡 第15周

引花眠

微服务 ARTS 打卡计划

给DevOps加点料——融入安全性的DevSecOps

禅道项目管理

DevOps 运维 测试 开发 安全性

如何将VSCode变成绿色版本

lmymirror

vscode 教程

用函数式写法精简Java代码的一个例子

Sean

Java 函数式编程

Go: gops如何与Go运行时交互?

陈思敏捷

gops Go 语言

云原生 go-zero 微服务框架

万俊峰Kevin

微服务 microservice go-zero Go 语言

ARTS Week15

时之虫

ARTS 打卡计划

深入理解JVM垃圾回收机制 - GC Roots枚举

SkyeDance

GC Roots枚举 安全点 安全区域 OopMap

商业通识 : 商业为什么能进步?

Walker

学习 得到 个人成长 商业

给大家介绍下,这是我的流程图软件 —— draw.io

程序员小航

工具 流程图 draw.io drawio-desktop 画图软件

程序的机器级表示-数组的分配和访问

引花眠

计算机基础

怎么向女朋友解释什么叫区块链?

艾小仙

比特币 区块链 以太坊 defi

LeetCode题解:239. 滑动窗口最大值,单调队列,JavaScript,详细注释

Lee Chen

大前端 LeetCode

握草,你竟然在代码里下毒!

小傅哥

Java 程序员 小傅哥 bug 有毒代码

不支持原子性的 Redis 事务也叫事务吗?

大头星

Java redis 事务

从湖南“软硬兼施”,管窥三湘水畔的智能浪潮

脑极体

Spring 5 中文解析测试篇-Spring测试

青年IT男

Spring5 JUnit

oeasy教您玩转linux010206 蒸汽机车 sl

o

3. 站在使用层面,Bean Validation这些标准接口你需要烂熟于胸

YourBatman

Hibernate-Validator Bean Validation 数据校验

一点思考|工作十几年了,竟从未用过do-while!

王磊

Java

Golang Package sync 透析

卓丁

sync Go 语言

2020-09-03-第十三周学习总结

路易斯李李李

透彻理解AQS源码分析系列之AQS基础二

InfoQ_d2212957090d

拥抱K8S系列-05-基于docker部署面临的问题

张无忌

Docker 运维

学习 Java,有什么书籍推荐?学习的方法和过程是怎样的?

沉默王二

Java 学习 程序员 书单

有奖征文重磅来袭,来!一起玩把大的!

有只小耳朵

优秀的敏捷项目经理是项目成功的尚方宝剑_研发效能_Leonardo Abdala_InfoQ精选文章