写点什么

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

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:184264

评论

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

Android 面试必备 - 系统、App、Activity 启动过程

android 程序员 移动开发

Android-Handler机制详解

android 程序员 移动开发

Android-音视频学习系列-(三)-Shell-脚本入门

android 程序员 移动开发

Android-音视频学习系列-(十)基于-FFmpeg-+-OpenSLES-实现音频万能播放器

android 程序员 移动开发

AndroidAPP启动速度优化;冷启动和热启动解析

android 程序员 移动开发

Android中关于Context的三言两语,源码强势分析带你了解Context!

android 程序员 移动开发

Android中自定义下拉样式Spinner

android 程序员 移动开发

Android 自定义软键盘实现 数字九宫格(1)

android 程序员 移动开发

Android 获取设备信息

android 程序员 移动开发

Android中自定义ViewGroup

android 程序员 移动开发

Android 集成讯飞SDK实现语音拨号、语音导航、语音启动应用

android 程序员 移动开发

Android-kotlin的继承

android 程序员 移动开发

Android-R-中的heap新分配器——Scudo

android 程序员 移动开发

Android-多渠道打包配置;你了解吗?

android 程序员 移动开发

Android-技术的下半场

android 程序员 移动开发

Android 自定义软键盘实现 数字九宫格

android 程序员 移动开发

Android 设置默认Launcher

android 程序员 移动开发

Android 这座山,我一定要爬到顶

android 程序员 移动开发

Android-自定义图像资源的使用(2)

android 程序员 移动开发

Android----Matrix-与坐标变换

android 程序员 移动开发

Android-Volley完全解析(一),初识Volley的基本用法!

android 程序员 移动开发

android下赚钱的几个方式

android 程序员 移动开发

Android与单片机---开发板---智能硬件---智能设备---数据协议--开发总结

android 程序员 移动开发

加速SaaS规模化演进,餐道基于K8s的云上创新底座

阿里巴巴云原生

阿里云 Kubernetes 云原生 SaaS 智慧餐饮

Android-举一反三:12个View绘制流程高频面试题,带你全面理解View的绘制流程

android 程序员 移动开发

Android-高级-UI-进阶之路-(五)-看完该篇文章-Canvas-你应该会了

android 程序员 移动开发

android下拉刷新——swipeRefresh的使用

android 程序员 移动开发

Android-ContentProvider实例详解(1)

android 程序员 移动开发

Android 调用相机拍照,适配到Android 10

android 程序员 移动开发

Android-系统预设-App,有什么难的?

android 程序员 移动开发

Android-音视频学习系列-(八)基于-Nginx-搭建(rtmp、http)直播服务器

android 程序员 移动开发

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