关于改善管理过程的一些思考
----团队中应用SCRUM方法
一、什么是敏捷管理
目前,我们的工作虽然进入了正常轨道,但是在管理过程中还是暴露出许多问题,计划不明确,需求变更频繁,过程监督缺失,交流反馈缺乏,最终导致整个项目计划的延迟。上周,参加了微软技术大会,奕跃讲师介绍了在项目管理中如何运用敏捷管理,就一个小时的时间,就单单想把敏捷管理过一遍都是困难的,更何况要让听众去理解这一套原理和方法。虽然课上奕跃讲师只是提一了下SCRUM,但给我的感觉是相当震撼的,现在和大家一起分享。
提到SCRUM就不能不提Robert C. Martin的《Agile Software Development: Principles, Patterns, and Practices 》,这本书在第一页就写到
个体和交互 | 胜过 | 工具和过程 |
---|---|---|
可以运行的软件 | 胜过 | 面面俱到的文档 |
客户合作 | 胜过 | 合同谈判 |
响应变化 | 胜过 | 遵循计划 |
当然这不是说不要工具、文档和计划了,右边的还是相当重要,只是左边的更加提倡效率,这也是敏捷的核心所在。SCRUM是敏捷管理的一种方法之一,其他的还有AD,XP等,每种方法都有他的优势所在。
二、什么是SCRUM
Scrum has a simple implementation that is designed to increase productivity and reduce the time it takes to benefit from a software/product development. Importantly, it embraces adaptive and empirical systems development。用中文定义来说,就是:Scrum提供了一种经验方法,它使得团队成员能够独立地,集中地在创造性的环境下工作。它发现了软件工程的社会意义。这一过程是迅速,有适应性,自组织的,它代表了从顺序开发过程以来的重大变化。
这种定义是相当抽象和空洞的,关键在于Scrum的实践:
1.Scrum团队(5-7个人的小项目组)
团队的负责人可能担负起Scrum Master的角色。
2.Backlog
急待完成的一系列任务,按优先级定义出来,这些任务可能不是完整的,甚至可能随时 会更改或添加。
3.Sprint(冲刺)
通常为30天的迭代时间,把Backlog中的每一项安排在Sprint中,由团队估算出所需要的时间(按小时记)。
4.Scrum会议
这是与传统方式最大的区别,每天15-20分钟的Scrum会议,通常在每天的同一时间和同一个房间内举行(通常在午饭后举行)。 Scrum团队所有人都参加,也可以有旁听者(但不允许旁听者指手划脚)。 在这个15分钟的会议上,Scrum Master会询问每个成员三个问题:
a) 自上次Scrum会议后的1天里你做了什么?
b) 从现在到下次Scrum会议的1天时间里你准备做什么?
c) 你在工作中遇到了哪些困难?
每个成员在Backlog条目上所花费的时间会被记录到Spring backlog中。 Scrum Master在会上对存在的问题提出即时的解决方案或指导,使团队不断向着目标前进。Scrum会议不同于项目会议,对团队来说,它起到了快速简报的作用。
5.通过Sprint Backlog的分析,可以了解Backlog的进度,尽早的了解所发生的问题
6.管理者不在是项目或者团队的“老板”, 而是帮助团队解决问题的“协调者”或是“助手”。
三、焚烧图
焚烧图既可以直观地显示整体项目的进展情况,包括什么时候可以完成整个项目,或者项目要推迟多少天才能完成,也可以直观地显示团队成员的工作状态,比如工作量是否有增大了,工作任务是否分配轻了。
四、小结
SCRUM方法可以使整个项目可控和可跟踪,并提供良好的交流机会,使工作透明,便于发挥团队智慧。但是对于任务进度取决于外部因素的项目来说,整体可控性就差了些,当然目前还没有更好方法能预测未知任务的时间进度。