敏捷开发方法综述

这周老师介绍了关于敏捷开发的详细,在软件编程日益巨大的今天,敏捷开发必定会给开发者们带来很大的机遇,但是与此同时,也会是严峻的考研。

敏捷开发是什么呢!简单意义上说:一个团队的问题讨论后编程的迭代,将一个问题从简单出发渐入佳境。

敏捷开发SCRUM开发方法:

让团队坐在一起:

1.  互相听到:所有人都可以彼此交谈,不必大声喊,不必离开座位。

2.  互相看到:所有人都可以看到彼此,都能看到任务版

3.  隔离:如果你们整个团队突然站起来,自发形成一个激烈的设计讨论,团队外的任何人都不会打扰到。

产品负责人应该离团队很近,既方便团队成员走过来讨论问题,他也能随时踱到任务版前面去。但是他不应该跟团队坐在一起。为什么?因为这样他就无法控制自己不去关注具体细节,团队也无法凝结成整体(即达到关系紧密、自组织、具有超高生产力的状态) 

怎样更新任务版

无论sprint backlog是什么形式,都要尽力让整个团队参与到保持sprint backlog及时更新的工作中来,我们曾经试过让Scrum master自己维护sprint backlog,他就不得不每天都去询问大家各自剩余的工作估算时间。这种做法的缺点是:

1.  Scrum master把太多时间用在了管理之类的工作上,而不是为团队提供支持,消除他们的障碍

2.  因为团队成员不再关心sprint backlog ,所以他们就意识不不到sprint的状态,缺少了反馈,团队整体的敏捷度和精力的集中程度都会下降。

如果sprint backlog设计得很好,那每个人都应该很容易修改它。 

怎样进行sprint演示

Sprint演示是Scrum中很重要的一环。一次做的不错的演示,即使看上去很一般,也会带来深远影响。

1.  团队的成果得到认可,他们会感觉很好。

2.  其他人可以了解你的团队在做些什么。

3.  演示可以吸引相关干系人的注意,并得到重要反馈。

4.  演示是一种社会活动,不同的团队可以在这里相互交流,讨论各自的工作。这很有意义。

5.  做演示会迫使团队真正完成一些工作,进行发布(即使是只在测试环境中)。如果没有演示,我们就会总是得到99%完成的工作。有了演示以后,也许我们完成的事情会变少,但它们是真正完成的。这比得到一堆貌似完成的工作要好得多,而且后者还会污染下一个sprint

Sprint演示检查列表

1.  确保清晰阐述了Sprint目标。如果在演示上有些人对产品一无所知,那就花上几分钟来进行描述。

2.  不要花太多时间准备演示,尤其是不要做花里胡哨的演讲,把那些玩意扔一边去,集中精力演示可以实际工作的代码。

3.  节奏要快,也就是说要把准备的经历放在保持演示的快节奏上,而不是让它看上去好看

4.  让演示关注于业务层次,不要管技术细节。注意力放在我们做了什么,而不是我们怎么做的

5.  可能的话,让观众自己试一下产品。

6.  不要演示一大堆细碎的bug修复和微不足道的特性,你可以提到一些,但是不要演示,因为他们通常会花很长时间。而且会分散大家的注意力,让他们不能关注更加重要的需求。 

Scrum回顾

 回顾是Scrum中第二重要的事件(最重要的是sprint计划会议),因为这是你做改进的最佳时机。如果没有回顾,团队就会不断重犯同样的错误。

 回顾组织:

1.  根据要讨论的内容范围,设定为13小时

2.  参与者:产品负责人,整个团队。

3.  在不受干扰的情况下讨论。

4.  一般不要在团队房间中进行回顾,因为这往往会分散大家的注意力。

5.  制定某人当秘书。

6.  Scrum master 向大家展示sprint backlog ,在团队的帮助下对sprint做总结。包括重要事件和决策等。

7.  轮流发言,每个人都有机会在不被人打断的情况下讲出自己的想法,他认为什么是好的,哪些可以做的更好,哪些需要在下个sprint中改变。

8.  我们队预估生产率和时机生产率进行比较。如果差异比较大的话,我们会分析原因。

9.  快结束的时候,Scrum master对具体建议进行总结,得出下个sprint需要改进的地方。

我们的回顾会议一般没有太规整的结构,不过潜在的主题都是一样的:我们怎样才能在下个sprint中做的更好

结对编程

1.  结对编程可以提高代码质量。

2.  结对编程可以让团队的精力更加集中

3.  结对编程令人精疲力竭,不能全天都这样做。

4.  常常更换结对是有好处的。

5.  结对编程可以增进团队间的知识传播。速度快到令人难以想象。

6.  有些人就是不习惯结对编程。不要因为一个优秀的开发人员不习惯结对编程就把他置之不理。

7.  可以把代码审查座位结对编程的替代方案。

8.  领航员”(不用键盘的家伙)应该自己也有一台机器。不是用来开发,而是在需要的时候稍稍做一些探索尝试、当司机”(使用键盘的家伙)、遇到难题的时候查看文档,等等。

9.  不要强制大家使用结对编程。鼓励他们,提供合适的工具,让他们按照自己的节奏去尝试。

下面的对团体工作有所鼓励:

         个体与交互                胜过                 过程与工具

         可以工作的软件            胜过               面面俱到的文档

             客户协作                     胜过                  合同谈判

             响应变化                     胜过                  遵循计划

原文地址:https://www.cnblogs.com/zjj123456/p/5327145.html