欢迎访问江阴职业技术学院计算机科学系 江苏软件与服务外包实训基地 收藏本站 学院首页
当前位置:首页 > 新闻中心 > 推荐资讯 > 正文

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

日期:2013-07-22 17:36:41
如果按照思维定式来考虑已有的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认证。他还是巴西贝洛奥里藏特的大学教授(在休),持有管理信息系统的学士及硕士学位。