第三次作业
Scrum的由来
Scrum原始含义是指英式橄榄球次要犯规时在犯规地点对阵争球。争球双方各有8个队员参与,各方出3名前锋队员,并肩各站成一横排,面对面躬身互相顶肩,中间形成一条通道,其他前锋队员分别站在后面,后排队员用肩顶住前锋队员的臀部,组成3、2、3或3、4、1阵形。然后,由犯规队的对方队员在对阵一侧1码外,用双手低手将球抛入通道,不得有利于本队。当球抛入通道时,前排的3对前锋队员互相抗挤,争相踢球给本方前卫或后卫队员,前卫和后卫队员必须等候前锋将球踢回后,方可移动。
1986年,竹内弘高和 野中郁次郎在New New Product Development
Game文章首次提到将Scrum应用与产品开发,他们指出:
传统的“接力式”的开发模式已经不能满足快速灵活的市场需求,
而整体或“橄榄球式”的方法——团队作为一个整体前进,在团队的内部传球并保持前进,这也许可以更好的满足当前激烈的市场竞争。
什么是Scrum?
Scrum 是一个用于开发和维护复杂产品的框架,是一个增量的、迭代的开发过程。在这个框架中,整个开发过程由若干个短的迭代周期组成,一个短的迭代周期称为一个Sprint,每个Sprint的长度是2到4周。
在Scrum中,使用产品Backlog来管理产品的需求。产品backlog按照实现的优先级进行排序,以商业价值作为排序的主要原则。在Sprint中,Scrum团队从产品Backlog中挑选最高优先级的需求进行开发。挑选的需求在Sprint计划会议上经过讨论、分析和估算得到相应的任务列表,称它为Sprint backlog。当Scrum团队完成Sprint backlog列表中的所有任务时,本次Sprint结束,进入下一个Sprint迭代周期。
Scrum有很大的价值,然而在有些公司推行Scrum却困难重重,有些人说Scrum没有什么实质性的作用,然并卵。为什么会有这样的认识呢?深入分析,原因主要有:
项目团队缺乏对敏捷的正确认识,单纯的认为敏捷就是快,就是追赶进度,就可以不受任何制度约束。大家可能听说过这样的对联,“这个功能很简单,怎么实现我不管。”横批:“明天上线”。也曾听说有些公司要开发一个新功能,因为实施了scrum,于是要求项目团队加班加点,将2周甚至3周以上的开发任务在一周内就发布上线。实施Scrum意味着项目团队“漫无天日”的加班,这导致了项目团队对敏捷有一种“恐惧”感;
PO不能胜任工作,无法拆分有效的用户故事,或者用户故事拆分的不合理,无法实现迭代增量开发;
Scrum对于自组织的团队要求很高,但许多同学认为自己达不到自组织的标准;
Scrum倡导工作透明化,项目实时完成情况和每个人的任务认领情况通过项目看板和项目燃尽图一览无余,许多人对此不太适应;
在迭代的过程中无法及时发现问题,或者发现问题,无法有效解决问题,使项目团队有一种挫败感。等等。
如果对Scrum的认识仅仅停留在“上午有个点子,下午就要实现,晚上就能上线,是不恰当的。在我看来,Scrum肯定是有价值的,Scrum的主要作用包括:
Scrum能够保证优先开发对客户具有较高价值的需求,更好的满足用户的需求;
与瀑布流程下的开发方式相比较,通过实施Scrum,能够提升团队一倍的开发效率,最大限度的发挥团队的作用;
Scrum能够缩短开发周期,提高项目的交付效率。
如何进行敏捷开发?#
1、我们首先需要确定一个Product Backlog(按优先顺序排列的一个产品需求列表),这个是由Product Owner 负责的;
2、Scrum Team根据Product Backlog列表,做工作量的预估和安排;
3、有了Product Backlog列表,我们需要通过 Sprint Planning Meeting(Sprint计划会议) 来从中挑选出一个Story作为本次迭代完成的目标,这个目标的时间周期是1~4个星期,然后把这个Story进行细化,形成一个Sprint Backlog;
4、Sprint Backlog是由Scrum Team去完成的,每个成员根据Sprint Backlog再细化成更小的任务(细到每个任务的工作量在2天内能完成);
5、在Scrum Team完成计划会议上选出的Sprint Backlog过程中,需要进行 Daily Scrum Meeting(每日站立会议),每次会议控制在15分钟左右,每个人都必须发言,并且要向所有成员当面汇报你昨天完成了什么,并且向所有成员承诺你今天要完成什么,同时遇到不能解决的问题也可以提出,每个人回答完成后,要走到黑板前更新自己的 Sprint burn down(Sprint燃尽图);
6、做到每日集成,也就是每天都要有一个可以成功编译、并且可以演示的版本;很多人可能还没有用过自动化的每日集成,其实TFS就有这个功能,它可以支持每次有成员进行签入操作的时候,在服务器上自动获取最新版本,然后在服务器中编译,如果通过则马上再执行单元测试代码,如果也全部通过,则将该版本发布,这时一次正式的签入操作才保存到TFS中,中间有任何失败,都会用邮件通知项目管理人员;
7、当一个Story完成,也就是Sprint Backlog被完成,也就表示一次Sprint完成,这时,我们要进行 Srpint Review Meeting(演示会议),也称为评审会议,产品负责人和客户都要参加(最好本公司老板也参加),每一个Scrum Team的成员都要向他们演示自己完成的软件产品(这个会议非常重要,一定不能取消);
8、最后就是 Sprint Retrospective Meeting(回顾会议),也称为总结会议,以轮流发言方式进行,每个人都要发言,总结并讨论改进的地方,放入下一轮Sprint的产品需求中;

浙公网安备 33010602011771号