Scrum敏捷开发方法实操
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Scrum敏捷开发方法实操
作者:宋至钧
来源:《建筑与装饰》2016年第06期
如今的移动互联网时代,商业周期快速变化,市场更迭日趋频繁,极致与快速已经成为对软件项目开发管理的基础要求,传统的软件开发模式越来越不能适应当前的商业需求和市场竞争,轻量型的软件迭代开发方法依托其在简化团队建设、优化项目管理的优势,已经成为商业软件项目开发的主流。
Scrum敏捷开发便是其中一种能够适应各种规模、体量的软件项目开发的敏捷迭代开发模式,尤其是在开发一些快速交付项目的应用中,具有很大的优势。
1 Scrum敏捷开发介绍
Scrum一词原本是一个橄榄球术语,意为“并列争球”。
Scrum敏捷开发是由Ken Schwaber 与Jeff Sutherland在1995的OOPSLA(面向对象技术的高峰会议)上正式提出,之后迅速普及。
简而言之,这是一种以人为核心的,迭代、循序渐进的开发方法,强调以人为本,以需求为中心,注重交互和协作,积极响应需求变化,专注于交付对客户有价值的软件。
Scrum敏捷开发没有统一的开发策略,而是基于实用主义的原则,根据项目团队的规模、人员构成、项目目标等方面的不同,来制定灵活的策略,通常有以下几个原则:最优先的目标是尽早并持续性地交付有价值的软件,这是Scrum的核心价值;欢迎需求变化,通过频繁交付和过程控制提高产品的竞争优势;减少文档,努力实现全局视图和软件源代码一起演化;强调业务人员和项目开发人员的同步性,主动沟通、当面交流,信任团队的自我管理能力;简化;定期反思、调整和校正。
和传统的瀑布式和其他迭代式开发方法相比,Scrum敏捷开发主要有以下几个特点:
团队气氛好:Scrum敏捷开发赋予项目团队更大的自主权,将业务团队、设计团队和技术开发团队融合在一起,最大化降低团队的沟通成本,团队气氛活跃,能动性强。
灵活性强:Scrum敏捷开发方法强调灵活,主动拥抱需求变化,由市场驱动技术开发,能够迅速反馈用户需求。
开发成本低:Scrum敏捷开发方法降低了文档维护成本,交流沟通成本,同时快速交付的开发过程也降低了时间成本。
最大化生产率:Scrum敏捷开发以有价值的交付为核心目标,将产品以最快的速度送达用户,并以最快的速度应对市场的最新反馈,生产率大幅提高。
项目风险低:Scrum敏捷开发方法交付时间短,产品迭代速度快,可以有效降应对市场变化,并且迅速布局调整,降低项目风险。
2 Scrum敏捷开发方法的应用
2.1 Scrum敏捷开发的流程
Scrum敏捷开发过程中,一般根据项目的需求清单(Product Backlog)制定2-4周为一期的开发周期,每个周期称为一个冲刺(Sprint)。
要求团队在每一个Sprint中完成该周期计划的开发任务,即冲刺清单(Sprint Backlog)。
Sprint Backlog包括团队在一个Sprint中的任务清单、每项任务的信息及其负责人,以及该Sprint中任一天时的剩余工作量。
团队成员要进一步将自己手上的Sprint Backlog细化为一个4-16小时的任务清单。
敏捷开发团队每天通过每日站会的形式对每一个成员手上的任务进行评估,并根据需求的变化进行小型迭代。
每一个Sprint结束,即完成了一个大的迭代开发,并进行一次产品交付。
产品交付完成后重新梳理Product Backlog,制定下一个Sprint Backlog。
单个Sprint的流程如下图:
2 Scrum敏捷开发的框架
2.1 三个角色
以人为本是Scrum敏捷开发方法的核心。
Scrum团队的管理要求以项目为中心,为团队提供足够的环境、资源和技术支持,创建信任文化,直面工作中的不确定性,帮助团队取得主动权,同时还要确保团队目标与商业目标一致。
一个Scrum敏捷开发团队中要包含以下三个角色:产品经理、项目经理和团队成员。
产品经理是产品的负责人,这个角色要负责确定产品的功能,决定发布的日期和发布内容,并根据市场价值确定功能优先级,在项目每个Sprint内调整功能和调整功能优先级。
最终,在一个Sprint结束后,评估接受或拒绝接受开发团队的工作成果。
项目经理要承担Scrum Master,即队长的职务,进行开发进度监控,保证开发团队资源的利用率和团队的良好协作。
项目经理要协调并解决团队开发中的障碍,屏蔽外界对开发团队成员的干扰,保证开发过程按计划进行,并对项目每天进展情况进行汇总、公布。
团队成员,顾名思义就是敏捷团队中的每一个成员。
敏捷开发强调团队成员的主观能动性,所以团队成员要有高度的自我管理能力。
团队成员充分理解产品负责人的产品愿景,确定该Sprint的阶段目标和工作成果,并能够向产品经理进行产品演示。
在公司授权范围内,团队成员有权利做任何事情以确保达到目标。
2.2 四个会议
快速迭代和当面沟通是Scrum敏捷开发保证开发效率的两个重要手段,快速有效的会议Scrum敏捷开发框架的精髓。
Scrum敏捷项目开发过程中要包含以下四个会议:
Sprint计划会:Sprint计划会是确定一个Spring的原则性会议。
会议一般很长(经常在四五个小时左右),分为上下两场:上半场挑选Product Backlog;下半场准备Sprint Backlog。
要求产品经理在会议前准备好准产品Backlog,制定Sprint产品Backlog,上半场时,团队从产品Backlog中挑选出自己愿意担当的并且优先级较高工作,若有遗漏,由项目经理统筹分配。
到了下半场,由团队成员独立决定如何将选定的产品Backlog转化为潜在可交付的产品功能增量,制定出Sprint Backlog,即一张包括任务、任务预估及团队开发功能的工作分配清单。
Sprint计划会要确定项目的日程安排、工作安排和完成标准。
每日站会:每天的例会是敏捷开发的重中之重。
不论团队人数多少,例会限时15分钟,一般站立开会,所又叫每日站会,或每日立会。
每日站会由项目经理主持,团队全体成员必须准时出席。
若某位成员因故无法出席,则应电话通报或请其他成员代为报告。
在会议上,每位成员自问自答三个问题:⑴我昨天做了什么?⑵遇到了什么问题?⑶我今天准备做什么?会议围绕这三个问题开展,但不解决具体问题,问题放在会后由相关人员自行解决。
每日站会的结果就是发现并确定最新的开发障碍清单、更新Sprint Backlog、更新工作进度。
每日站会Scrum方法论的核心与灵魂,也是一个敏捷开发项目成败的关键所在,为了保证例会的有效性和趣味性,增加一些惩罚措施如做俯卧撑、下蹲起立等,是非常有效的。
Sprint评审会:Sprint审核的目的是让团队向产品经理和需求方展示已完成的功能,并获得对方的反馈,对产品Backlog进行调整。
会议一般有如下议程:⑴团队成员展示Sprint目标、其承诺及完成的产品Backlog,各成员可讨论Sprint成功和失败的方面。
⑵团队成员展示功能、回答需求方对展示的疑问并记录所期望的更改。
⑶需求方指出未交付或未达到期望值的功能,或增加新的功能需求,并要求将其加入产品Backlog划分优先等级。
Sprint评审会议结束时,项目经理宣布下一次Sprint审核的地点和时间。
Sprint回顾会:Sprint回顾会是项目内部会议,在每个Sprint结束时展开,目的是交流、总结和展望,会议气氛相对轻松,有条件的团队可以配备些零食、小吃,甚至选在室外环境优美的地方。
会议开始后,全体团队成员回答三个问题:⑴上一个Sprint有哪些成功方面?⑵上一个Sprint有哪些不好的方面?⑶下一个Sprint应做哪些改进?Sprint回顾会是一个交流型会议,切忌变成项目经理的训导大会。
项目经理出席会议的目的不是提供答案,而是促使团队发掘Scrum过程的更优方法,并记录队员的回答简要,最后根据讨论明确改进之处及责任人,更新团队的Sprint数据,进行团队总结。
未能有效促使团队进步的回顾会是不成功的。
2.3 三个物件
Scrum敏捷开发方法要求项目的需求管理面向市场,将项目目标向商业目标看齐。
需求的优先级规划和满足情况在敏捷开发中显得尤其重要。
一般敏捷项目团队有三个必不可少的物件:Product Backlog:良好的需求管理是项目迈向胜利的第一步,理想情况下,每个需求项都
要对用户产生价值。
一般使用“用户故事”的方法展现Product Backlog,从用户角度直观表达功能需求,有助于开发团队深入理解需求核心目的,节省交流时间,提高开发的效率。
Product Backlog的优先级由产品经理来排列,并且在每个Sprint结束的时候进行更新优先级。
Sprint Backlog:Sprint backlog定义了每一个Sprint的目标,明确了该Sprint过程中具体需要完成的任务。
制定Sprint Backlog的关键点在于要团队成员自己挑选任务,而不是指派任务,这样能够充分调动团队成员的积极性,发挥他们的特长,提高开发效率。
在项目开发过程中,随着需求的变化,每个团队成员都可以修改Sprint backlog,增加、删除或者修改任务,对于Sprint Backlog中的每一个任务,要求每天更新剩余的工作量估算。
燃尽图:燃尽图(Burn Down Chart)直观地反映了一个Sprint中的剩余工作量情况和进度。
Y轴表示剩余工作,X轴表示时间,随着时间的消耗工作量逐渐减少,最终像蜡烛一样燃烧殆尽。
燃尽图还可以直管展示团队评估的时间进度与实际开发进度之间的走势情况,帮助团队在下一个Spring中优化项目周期预估。
在一个Sprint开始的阶段,由于估算上的误差或者遗漏,工作量有可能呈上升态势。
2.4 两个工具
白板和即时贴是敏捷开发管理中必不可少的两个辅助工具,也是Scrum最传统最直观的管理工具。
尤其是当团队都在同一个办公区域时,将需求清单和燃尽图通过白板和即时贴以任务看板的形式展现,直观、方便、趣味性强。
3 结束语
Scrum联盟和敏捷联盟创始人之—Mike Cohn有句名言: Scrum是一个让我们关注于在最短时间里交付高质量商业价值的敏捷框架。
Scrum敏捷开发方法可以适应各种规模的软件开发项目,以简单的系统应对复杂的变化,尤其适合团队型的开发项目。
其灵活的需求管理,能够应对市场的快速变化,与追求极速、极致、极简的互联网思维不谋而合,具有极大的优势。
如今,Scrum敏捷开发方法不仅仅是一种高效、灵活的项目管理模式,它展现出的基于信任、面向市场的价值定位,已经发展为一种打造高效团队的商业管理文化。
参考文献
[1] 戈尔茨坦.Scrum捷径:敏捷策略、工具与技巧[M].清华大学出版社 2015
[2] 莱西.Scrum实战 [M].清华大学出版社2014
[3] 波丽安娜·皮克斯顿等.敏捷文化:如何打造优秀的高效能团队[M].清华大学出版社.2015。