在PMI项目管理知识体系里,把项目管理分为整合管理、范围管理、进度管理、成本管理、质量管理、资源管理、沟通管理、风险管理、采购管理、相关方管理十大知识体系,可是这套项目管理的理论,在软件开发过程中遇到越来越大的困难。在敏捷开发兴起之后,我们不再照搬原有的PMI项目管理理论,而是建立了一套新的项目管理框架。
敏捷项目管理首先需要遵循三个基本原则:价值胜过约束,团队胜过任务,适应胜过遵循。
价值胜过约束
这让我们重新思考评估项目绩效的方式和方法。通常人们总是关注容易测量的因素,比如范围和时间,而忽视了真正重要而难于量化的特征,比如价值和质量。敏捷开发要改变这种状态,首先需要关注的是价值。当我们把项目目标聚焦为价值和质量时,我们的目标包括了产品构想和商业价值,我们去交付可靠的、可适应的(可工作且易于修改的)产品。这时,范围、进度、成本成为约束条件,它们也很重要,但是它位于价值和质量之后。在敏捷开发中,时间是最重要的约束,而范围是可调整的。作为敏捷项目经理,需要培养团队以价值为导向的理念,改变过去以范围、进度、成本为导向的理念。
团队胜过任务
敏捷项目经理领导团队,而非敏捷项目经理管理任务。许多项目经理喜欢任务型管理方式,把所有的任务在excel表格里列出来,每天检查筛选任务的完成情况,因为它具体、明确,而且任务看起来是有限的。领导团队似乎抽象模糊,不可捉摸,而工作又是无穷无尽的。因此,自然会有些人选择更容易的方式--管理任务。
敏捷项目管理强调团队管理,提倡建立自我组织团队和发展服务型领导方式。这比管理任务更加困难,但最终结果会更令人满意。在敏捷项目中,团队关注任务,而领导关注团队。
适应胜过遵循
传统的项目经理视计划为目标,而敏捷项目经理视客户价值为目标。以客户价值和质量为目标,计划就是实现这些目标的方式,而不是目标本身。计划中的约束依然重要,依然指导项目的完成,人们想要了解计划的变化,但计划不再是神圣不可侵犯,计划应该灵活,应该是依据,而不是约束。
团队必须适应,但是不能脱离最终的项目目标。团队需要在过程中评估流程:
在发布产品的同时,是否交付了价值?
是否实现了创造可靠的、具有适应性的产品质量目标?
项目进程是否满足可接受的要素范围?
团队是否在有效地适应管理、客户和技术等方面的变化?
适应和变化是不同的。变化没有固定目标,而适应是朝着既定目标的方向做调整。变化时盲目的,而适应是深思熟虑的。适应可以看做是对变化做出的深思熟虑的回应。
相较于PMI的项目管理体系,敏捷项目管理简化了过程。在遵循三大基本原则的基础上,敏捷项目管理分为五个阶段:
启动:确定产品构想、项目目标和控制要素,项目团队以及协作方式;
规划与分析:搜集需求并进行分析,制定基于性能和功能的发布计划,确保交付构想的产品;
开发与交付:在短期内交付计划的功能并演示,接受用户的审核,不断致力于减少项目风险和不确定性;
回顾与改进:回顾当前情况和团队绩效,必要时做出调整;
结束:终止项目,交流主要的学习成果并庆祝。
启动
一直以来,项目启动和目标设定被认为是项目成功的关键因素。
在项目启动时,项目的范围和设计可能是模糊的,但是企业目标和产品目标必须是明确的。没有明确的目标,敏捷项目的适应性本质会导致项目陷入无休止的试验当中,明确的目标必须限定探索的边界。
在启动阶段,除了明确产品目标之外,我们还需要明确产品构想,在产品构想里,要明确最重要的三个功能。明确了产品中最重要的三个功能后,我们可以确定项目目标,制定项目约束,组建项目团队,选择交付方法,确立协作方式。
规划与分析
敏捷开发也制定计划,但是他们的计划是欢迎变化的工具,所以敏捷开发会经常做计划,会周期性地做计划。计划根据什么来制定?计划根据我们的产品目标和功能、性能清单来制定。在规划与分析阶段,我们会不断地搜集需求,统一放在需求清单里进行分析和规划。规划与分析会跟着迭代一起走,每个迭代都去规划和分析下一个迭代发布的功能。
开发与交付
此阶段旨在交付可运行的、已测试和已验收的功能。敏捷项目经理关注怎么创建自我组织和自律的团队,从而交付可发布的产品,而不关注实现这一目标的技术细节。此阶段包含迭代计划,每日站会,迭代演示,浮现式设计,代码开发,自动化测试,重构,持续集成,验收测试,交付上线。在这个阶段,工作主要由开发团队完成,敏捷项目经理的主要工作是领导团队,保护团队,让团队能够集中精力,不被外界打扰;逐渐将一群人塑造成一个团队;开发和提升个人技能。
回顾与改进
在每个迭代结束之后,会有一个回顾与改进的阶段。在这个阶段,敏捷项目经理领导大家回顾当前迭代的目标达成情况,团队协作的情况,跟大家心目中的高绩效团队相比,当前还有哪些地方可以做提升的。回顾之后,确定下个迭代的改进目标,改进目标需要满足smart原则,确定下个迭代达成的情况,并明确一个团队成员作为跟踪及促进人。
通过持续地回顾和改进,团队能力以及互相直接的协作会越来越好,团队逐渐成长为高绩效团队,高绩效团队带来高质量的交付产品,实现最终的产品目标和商业目标。
结束
在软件项目中,很多项目容易陷入“未能结束”的困境。我们在规划与分析阶段,会持续地搜集需求,在交付部分功能给客户后,客户会持续地提出新的需求。同样地,当我们的项目没有结束,客户也会持续地提出新的需求。无休止、没完没了的项目对团队士气是一个很大的打击。所以我们需要花一点时间,来进行项目结束的活动。首先需要进行庆祝,庆祝产品目标的达成,对为了该项目付出努力的成员表示感谢,邀请重要客户参加以表达项目已完结之意。结束时还需要对当前项目进行评议,可以形成一些优秀实践,提供给团队之间互相学习。
软件开发项目管理中,不可避免的是对项目进行绩效评估。在PMI的项目管理中,会对时间、范围、成本、变更等方面进行绩效评估,而在敏捷项目管理中,我们遵循着交付价值胜过满足约束、领导团队胜过管理任务、适应变化胜过遵循计划,不适合用时间、范围、成本、变更等因素作为绩效评估。那么,我们怎么进行绩效评估呢?
对于敏捷项目评估,我们需要满足三个关键的理念:
1、我们必须承认我们的绩效系统影响组织的敏捷性;
2、我们必须从过于关注时间改变为重视结果也就是对客户的价值;
3、我们必须把结果绩效评估和产出绩效评估分割开来。
通常可以用如下几个指标来进行绩效评估:
价值:价值命中率,客户满意度;
效率:交付周期、交付频率;
资料利用率:吞吐量,即单位时间内的交付需求数量;
质量:内部质量和外部质量;
网友评论