敏捷流程包括一系列的价值观和方法论。
敏捷流程的原则
- 尽早并持续的交付有价值的软件以满足顾客需求
- 欢迎需求的变化,并利用变化来提高用户的竞争优势
- 经常发布可用的软件,间隔从几周到几个月,能短则短
- 业务和开发人员应每天共同工作
- 以有进取心的认为项目核心,充分支持和相信他们
- 无论团队内外,面对面沟通是最有效的沟通方式
- 可用的软件是衡量项目进展的主要指标
- 保持可持续发展,领导、团队和用户应能够按照目前的步调持续合作下去
- 不断关注技术和设计
- 简化工作量,保持简明
- 能自我管理
- 时时总结如何提高团队效率,并付诸行动
Scrum方法论
第一步:找出完成产品需要做的事情——Product Backlog
产品负责人领导大家对这个backlog中的条目进行分析、细化、理清相互关系、估计工作量等工作,每项工作的时间估计单位为“天”。
各个需求和任务之间有负责的依赖关系,除了优先级之外,还要考虑项目的依赖关系。
第二步:决定当前的冲刺需要解决的事情——Sprint Backlog
整个产品的实现被分为几个相互联系的冲刺,进一步被分解为以“小时”为单位(WBS分解),超过16个小时的任务必须进一步分解。任务由团队成员根据自己的情况来认领。
第三步:冲刺
外部人士不能直接打扰团队成员,只能通过Scrum Master来完成。冲刺期间,团队通过每日例会来进行面对面的交流,以此报告:
- 我昨天做了啥
- 我今天要做啥
- 我碰到了哪些问题
在每日立会中,任务的完成必须被明确定义,完成这个任务还需要的时间,已经花掉的时间为“沉没成本”,关键要看当前离目标还需要多远。
Scrum Master根据项目情况,用简明的图表展现整个项目的进展,每天传达给各个成员。冲刺阶段是时间驱动的,时间一到就结束,有效的断了各种延期想法的后路。
第四步:发布增量版本的软件给用户,并计划进一步的增量的新功能和改进。
敏捷的团队
自主管理:自己挑选任务,每次Sprint结束后,要总结不足,提出改进,并实施这些改进
自我组织:每个人要联合起来对项目负责,有人落后了要帮助他改进,项目缺少的资源自己要顶上去
多功能型:每个人都全面负责,自己搞定说明书,和别人沟通,同时自己搞定测试