Agile development Scrum

 

Go to: http://www.cnblogs.com/taven/archive/2010/10/17/1853386.html

 

What is agile development?

Agile development is a human-centered, iterative and step-by-step development method.

How to understand it? First of all, we must understand that it is not a technology, it is a development method, that is, a software development process, it will guide us to complete the development of the project step by step with the specified links; The driving core is people; it adopts iterative development;

 

Why is it said to be human-centered?

Most of us have learned the waterfall development model, it is document driven, why? Because in the entire development process of waterfall, a large number of documents need to be written. After the requirement document is written, developers develop according to the document, and everything is based on the document; while agile development only writes the necessary documents, or Write as few documents as possible. Agile development focuses on face-to-face communication between people, so it emphasizes people as the core.

 

What is iteration?

Iteration refers to decomposing a complex development task with a long development cycle into many tasks that can be completed in small cycles. Such a cycle is an iterative process; at the same time, each iteration can produce or develop a deliverable software. product.

 

About Scrum and XP

As mentioned earlier, agile is a guiding ideology or development method, but it does not clearly tell us what process to use for development, and Scrum and XP are the specific methods of agile development. You can use Scrum or XP. The difference between Scrum and XP is that Scrum focuses on process, while XP focuses on practice, but in practice, the two are applied together, and here I mainly talk about Scrum.

 

What is Scrum?

The English meaning of Scrum is a professional term in football, which means the action of "fighting the ball"; name a development process Scrum, I think you can imagine that when your development team is developing a project, everyone is like Scrum. It's going to be exciting to play football as fast as you can, with a lot of fighting spirit, and everyone vying to get it done.

And Scrum is such a development process, using this process, you can see the efficient work of your team.

 

[Three roles in the Scrum development process]

Product Owner

It is mainly responsible for determining the functions of the product and meeting the required standards, specifying the release date of the software and the content of delivery, and has the power to accept or reject the work results of the development team.

 

Process Manager (Scrum Master)

Mainly responsible for the smooth implementation and progress of the entire Scrum process in the project, as well as clearing the communication barriers between customers and development work, so that customers can directly drive development.

 

Development Team (Scrum Team)

Mainly responsible for the development of software products under the Scrum specified process, the number of people is controlled at about 5~10 people, each member may be responsible for different technical aspects, but each member must have strong self-management ability, and at the same time have certain Ability to express; members can work in any way, as long as they can achieve the goals of the Sprint.

 

 

Scrum Flowchart

 

//------------------------

Next, we start to talk about the specific implementation process, but before speaking, I have to explain an English word.

What is a Sprint?

Sprint means a short-distance race, which refers to an iteration, and the cycle of an iteration is 1 month (that is, 4 weeks), that is, we need to complete the development content of an iteration as quickly as possible. , this process we call it Sprint.

 

How to do Scrum development?

1. We first need to determine a Product Backlog (a list of product requirements in priority order), which is the responsibility of the Product Owner;

2. The Scrum Team estimates and arranges the workload according to the Product Backlog list;

3. With the Product Backlog list, we need to select a Story as the goal of this iteration through the Sprint Planning Meeting. The time period for this goal is 1 to 4 weeks, and then carry out this Story . Refinement to form a Sprint Backlog;

4. The Sprint Backlog is completed by the Scrum Team, and each member is further refined into smaller tasks according to the Sprint Backlog (the workload of each task can be completed within 2 days);

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的产品需求中;

 

 

下面是运用Scrum开发流程中的一些场景图:

上图是一个 Product Backlog 的示例。

 

上图就是每日的站立会议了,参会人员可以随意姿势站立,任务看板要保证让每个人看到,当每个人发言完后,要走到任务版前更新自己的燃尽图。



任务看版包含 未完成、正在做、已完成 的工作状态,假设你今天把一个未完成的工作已经完成,那么你要把小卡片从未完成区域贴到已完成区域。


 

每个人的工作进度和完成情况都是公开的,如果有一个人的工作任务在某一个位置放了好几天,大家都能发现他的工作进度出现了什么问题(成员人数最好是5~7个,这样每人可以使用一种专用颜色的标签纸,一眼就可以从任务版看出谁的工作进度快,谁的工作进度慢)

 

 

 上图可不是扑克牌,它是计划纸牌,它的作用是防止项目在开发过程中,被某些人所领导。

怎么用的呢?比如A程序员开发一个功能,需要5个小时,B程序员认为只需要半小时,那他们各自取相应的牌,藏在手中,最后摊牌,如果时间差距很大,那么A和B就可以讨论A为什么要5个小时...

 

敏捷开发的4句宣言

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

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

客户协作 胜过 合同谈判

响应变化 胜过 遵循计划

 

 

 

 

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326102198&siteId=291194637