敏捷开发(Scrum and XP)
 

2009-09-25 作者:cince 来源:cince的blog

 

我以前有参加一个叫”勇创”网页设计团队(现已退出)。

但是,团队的管理和开发让我很是郁闷。

首先,负责人(有两个,一主一副)和程序设计人员动不动就说:不好意思,我今天很忙!!!最让我郁闷的是明明是定好时候开会,几点开始,到头来负责人迟到了,程序人员也迟了。我刚进团队不久,团队就出现这样子的情况。开始几次我很耐心的,很准时的等他们,甚至有次因为聚会到外地,到了外面才接到晚上要开会的通知,而我直接推掉聚会,去开会。到了后面,我没有耐心了,索性不露面,让他们自己开会去。再加上那时堂妹住院.更没有心情去弄了。在我的心里面想反正迟到了半小时再去开会,他们还没有到齐。

其次,在讨论方案的过程中,不断进行否定。这也不行那也不行。没有做出一个模版来,负责人没有网页设计这方面的知识,可以说是不知道什么叫做网站颜色的和谐,一味按照自己的想法,经常拿出来一个网站出来说这个网站做的不错。我汗了。

不过,只有几个人不好之外,其他人还是不错的,像其中的美工。她的想法和我一样,是不是只有懂的人才有的交流?

我在团里面当任设计的.在我的设计的时候,想方案设计时,也只有美工和我一起弄,而其他人人员则是聊天,聊MM。设计了很多个不同模版,都没有通过。最后我和美工设计出了一个模版出来,交给他们,也通过了,但是程序人员又在这时候出问题了:很忙。还说:内页谁设计?!!

今天看了Scrum,才知道什么叫团队了,电子书看了一大半了。现在做一些记录:

Scrum规则:一切的事情都有时间盒

Scrum基础:团队和负责人之间的直接协作关系

Scrum目的:投入实践中,动手去构建产品,不要停留在理论层次上面对软件进行分析和设计

Scrum的独特之处:注重实践而非理论研究

Scrum不是一个方法学,而是一个框架

我单单只看了半本。但其中,经常出现:交流、会议。

团队是一个高度协作的团队,除了做好自己的本职工作之外,还要求自己能够了解和争取更多的扩展性的工作。这样子也有能力帮助其他成员一起解决突遇性的问题。才能够加速团队的统一的目标.

像上面”勇创”团队,几乎是脱离了团队的本质。我在当任设计的同时还特意去看了一些相关测试方面的书,以便到测试的时候能够帮上一把。负责人一句话:好,测试工作就交给鸡蛋了!我怎就不明白.怎就变成我一个人做了?我还居然答应!

刚加入时,第一个会议,我就提出:整理出一个这次开会的相关信息,好让其他人知道先要干什么,然后干什么。负责人一句话:好,这就交给鸡蛋了!!!!!也就是这时开始所有的会议都是我进行整理提取相关信息。

不过我倒是觉得,最终获利的真的是我。我至少学到如何在N多废话中整理出有用的信息,还扩展了测试方面的知识。

有失必有得嘛,嘿嘿。还是看看一下敏捷的方面的吧:

Scrum中有四个很标致性也很核心的词:backlog , sprint、迭代、反馈。

backlog:是为条目(具体是不是不清楚,但我明白那是干嘛用的。相当于简洁”说明书”一样,但又不同于说明书)

sprint:我就把它理解为运动会中每次比赛的准备工作或扫尾工作吧。

迭代:指产品的开发过程中,一个完整的开发活动周而复始的进行,产品的功能、性能、可用性在周期活动的叠加中不断得到更新和加强。

反馈:指在产品开发任何时期,代表项目业务(Business)的利益干系人(Stakeholder)都要参与到产品的需求分析,设计,以及其他活动的决策制定中来。

Backlog的作用:它是由需求,特性等组成。按照重要性进行排序。其中包括:客户想知道的内容,而且这个内容是用客户能够理解的术语进行描述。

sprint:就是sprint会议,就是开会!

一、如何定制Product Backlog

Backlog组件
ID
Important
Estimate
How To Demo
Notes
组件用处
事件的编号
事件的重要性,用一个分数来表示。分数越高越重要(但重要的事件,内容不一定多)
初始的估算,也就是完成某个事件所需要的工作量。
事件的简单测试
用简洁的语句进行注解、说明等。
Backlog组件
Track
Components
Requestor
BugTrack
 
组件用处
对产品的分类
产品由哪些部份组成
记录最先提出的需求,并在后续的开发过程中进行反馈。
Bug跟踪
 

注:有颜色的组件可以说是必需的!

二、如何准备sprint计划

前提:在开sprint计划会之前,要确保产品的backlog的有序性。

前提这句话中含有一些信息:

1. 产品backlog必须存在。

2. 产品只有一个backlog和一个负责人

3. 产品中重要的条目都被评分。

4. 产品的负责人必须理解每个条目的含义

三.如何定制sprint的计划

1.sprint的目标

2.团队成员名单

3.Sprint Backlog

4.Sprint演示日期。

5.确定每日的sprint会议的时间地点

四.sprint的时间表相关内容

1.开会之前先初步定制一个时间表。

2.初步定制sprint的时间长度,并加以测试(针对新团队)

3.确定sprint的目标

五.决定sprint中要包含的backlog

在backlog中,哪些事要在sprint中完成的。

文章里面的blacklog很像我常用的记事贴纸。小的时候是写在日记里面,记录今天的事,写下心情和感悟,现在是直接用纸贴贴在墙上。某个贴子全部完成了,另一个贴子直接帖在上面。完成部份点用打个勾。

我觉得这种方法大家都可以学学。挺好用的。

照几张:

先记录到这儿。

还没有开学时候我就想在学校里面组建一个团队玩玩。我还特意写了策划书。现在看到这个敏捷框架。我下决心要去建一个团队,按里面的框架实践一下。但是我并不会完全的按里面的标准去做。人是敏捷的实体,敏捷测试是以人为本的。每个人都不同,所用的也不同,不能拘于一点。为了适应不同的团队结构,不同的项目环境,敏捷项目和敏捷活动的实践也应该因人而异,但是,并不是说可以天马行空,我行我素。一旦脱离了正确的敏捷方法、和敏捷原则的指导。就得摸着黑前进了。


火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织