首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

互联网敏捷开发-scrum实践

互联网公司推崇敏捷开发快速迭代,敏捷开发的方法也有很多,主要包括极限编程(XP)、Scrum、水晶方法(Crystal Methods)、自适应软件开发(ASD)、特性驱动开发(FDD)、动态系统开发(DSDM)、轻量级RUP、测试驱动开发(TDD)等等。而在众多的敏捷开发方法中,尤以实施Scrum比较流行。所在公司目前采用的也是scrum敏捷开发方法,所以我将我的观察和感悟总结在这篇文章中。

scrum是什么?

Scrum起源于橄榄球运动的一个专业术语,表示“争球”的动作;在敏捷中,把一个开发流程的名字取名为Scrum,主要寓意在于提现整个团队的积极奋战的开发状态。是一个用于开发和维护复杂产品的框架,是一个增量的、迭代的开发过程。在这个框架中,整个开发过程由若干个短的迭代周期组成,一个短的迭代周期称为一个Sprint,Sprint是短距离赛跑的意思,这里面指的是一次迭代,每个Sprint的长度是2到4周。

scrum的核心思想?

Scrum坚持如下敏捷开发原则:保持简单、接受变化、不断迭代、不断的反馈和改善、 协作和减少浪费 , 其中有以下几个原则:

Get early Feedback:尽早获得反馈

2.Delivery Value:每个 Story 必须可以独立产生价值

3.Focus on one thing at a time:一次专注做一件事,并把它做好

4.Avoid Inventory:不留存货。完成一件事,再进行下一件,不要进行返工

5.Pay Tech Debt early:技术债要尽早偿还,因为「债」会产生利息,技术债也一样

6.Sustainable Pace:保持可持续发展的节奏。创造优秀的产品是一场马拉松,不是 110 米栏

Scrum的一些关键概念

3个角色:Scrum master、Product Owner和Team,这三个对等的角色形成scrum中平衡的关系,保证项目正常推进。

Scrum master:Scrum Master不是项目经理,但他要维护每个sprint的流程,确保每个sprint能够顺利的实施以及完成,并且负责主持召开sprint期间的每一个会议。Scum Master 的核心职责是发现 Scrum Team 的实践敏捷开发的问题,并牵头改善,包括是否按照符合认可的价值观的方式做事,促进团队自组织,组织 Sprint 回顾,例如:鼓励人人关心 Sprint 的风险,人人关心产品是否能够成功,大家坦诚交流等。

2.Product Owner:PO是管理产品backlog的责任人,够把握产品的方向,担负起产品短期以及中长期的规划与管理;能够根据战略要求,进行用户研究和产品功能规划,深度跟踪、分析、挖掘不断变化的需求。 当项目组成员完成某个需求后,是product owner进行功能测试,进行验收,他认可后才能认为某个需求完成了。

3.Team:是技术的责任人,他们负责实现这个系统,他们是自我管理的,不需要外部的管理者来管理他们。

3个文档:

Product Backlog:Product backlog 中列举了本项目应该实现的需求,需求采用了用户故事的方式进行描述,用户故事是一句简短的采用用户熟悉的术语表达的需求,是用户讲给开发人员的故事,Story 应该包括几个要素:1、用户角色;2、需要的功能;3、功能的目的;4、用户故事的验收标准,或者叫用户故事的测试要点

2.Sprint Backlog:Sprint Backlog就是任务列表,这个任务列表是根据优先级从Product Backlog中选取的,包含以下要素:

3.Burn down chart:翻译为燃尽图或燃烧图,很形象,是Scrum中展示项目进展的一个指示器。燃尽图可以每天画,表示完成某个迭代的进展趋势,也可以某次迭代结束的时候画,表示完成整个项目的进展趋势,此时横坐标就是迭代的顺序号:

scrum需要准备什么

Story :这一列代表的是用户故事,用户故事是敏捷开发中的需求表达方式,每个用户故事代表了从产品的用户视角表达的一条用户需求。用户故事这一列放的是这个迭代需要完成的所有用户故事,这些故事加在一起就是这个迭代的目标。这些故事通常按照优先级从上到下排列。

在Scrum中,使用产品Backlog来管理产品的需求。产品backlog按照实现的优先级进行排序,以商业价值作为排序的主要原则。在Sprint中,Scrum团队从产品Backlog中挑选最高优先级的需求进行开发。挑选的需求在Sprint计划会议上经过讨论、分析和估算得到相应的任务列表,称它为Sprint backlog。当Scrum团队完成Sprint backlog列表中的所有任务时,本次Sprint结束,进入下一个Sprint迭代周期。

scrum的流程是什么样的?

产品负责人首先将需求按照优先级进行排列,产生一个Product Backlog。作用类似于传统开发中项目经理先确定需求文档。

有了ProductBacklog列表,我们需要通过Sprint Planning Meeting(Sprint计划会议) 来从中挑选出一个Story作为本次迭代完成的目标,这个目标的时间周期是1~4个星期,然后把这个Story进行细化,形成一个Sprint Backlog;

Sprint Backlog是开发人员的任务,每个成员根据SprintBacklog再细化成更小的任务(细到每个任务的工作量在2天内能完成);

在开发人员完成计划会议上选出的Sprint Backlog过程中,需要进行 Daily Scrum Meeting(每日站立会议),每次会议控制在15分钟左右,每个人都必须发言,并且要向所有成员当面汇报你昨天完成了什么,并且向所有成员承诺你今天要完成什么,同时遇到不能解决的问题也可以提出,每个人回答完成后,要走到看板前更新自己的 Sprint burn down(Sprint燃尽图);

scrum怎样进行风险控制?

用户 Story 尽量细分。每一个能单独产生价值、单独上线,且有相当工作量(大于 1 人天)的模块,都应该拆分为不同的 Story。

每个 Story 都应该有优先级。

每个 Sprint 评估时间时,要留出充分的测试时间。

4.每日站立会,如果燃尽图上出现风险(高于预期线半天),则 Scrum Master 应该考虑是否需要与 PM 一起重新评估优先级和排期

scrum的缺陷

1、如果pm就是scrum master,整个team就是在一个不平等的环境下,可能会造成团队任务推进不力的问题

2、快速发布实际上导致 Scrum 团队的抗风险能力弱于瀑布模型团队,因为一个人的离职或病假都可能对单一功能的进度造成影响,不利于短期频繁发布,这就需要在Sprint Plan Meeting 时重点确认是否有人员有休假或离职计划。

总结

scrum是一套完整的方法论,不仅阐释了项目的开发流程,而且是敏捷开发需要遵守的团队准则。一句话送给大家:No matter what you want to do, choose what is good for your team.(无论你选择做什么,选择对你的团队有利的事)

最后祝大家项目需求都能按时上线,从不延期.

以上内容来自于“高三零班” 明明同学

如果你周围也有产品经理,这篇文章应该对他会有帮助

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180819G1FXD700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券