换个角度看敏捷2-敏捷软件开发概述

敏捷软件开发概述

如同前文所述,可以把敏捷看做一种问题解决方式。下面我们就从敏捷问题解决方式的角度解读敏捷软件开发。

敏捷软件开发

软件开发是问题本身和问题解决能力不确定的一种典型情况。软件项目起源于人的构想,随着时间不断变化。项目团队对项目的认识随时间不断加深,成员能力不断提升,工作方式和过程改变导致团队开发能力不断变化。


敏捷软件开发分为3个层次。

产品层

1.         问题与问题参与者

问题是产品构想。问题提出者是客户(业务负责人),问题解决者是特性团队。

2.         问题分解与检验

a)         问题分解

将问题从产品构想分解到业务特性。业务特性是问题提出者客户可检验的单位问题。

b)        问题检验

在可工作的软件中检验完成的业务特性。可工作的软件是客户检验问题完整性的基础。

3.         迭代

迭代的大小从1周到4周不等,这是一个客户可接受的频率(节奏)。

业务特性层

1.         问题与问题参与者

问题是业务特性。问题提出者是特性团队,问题解决者是特性团队或负责业务特性的相关人员。

2.         问题分解与检验

a)         问题分解

将问题从业务特性分解到单元。单元是特性团队可检验的单位问题。

b)        问题检验

在可工作的业务特性中检验单元的完成情况。

3.         迭代

迭代的大小从小时到天,这是一个特性团队可接受的频率(节奏)。

单元层

1.         问题与问题参与者

问题是单元。问题提出者是开发人员,问题解决者是开发人员自身或另一个开发人员(结对编程)。

2.         问题分解与检验

a)         问题分解

将问题从单元分解到单元职责。

b)        问题检验

在预期的单元测试中检验单元职责的完成情况。

3.         迭代

迭代的大小从分到小时,这是一个开发人员可接受的频率(节奏)。

常见敏捷软件开发方法学

Scrum


Scrum和敏捷软件卡发有很多共同点。而对比敏捷软件开发,可以看到Scrum的敏捷实践侧重于高层,而缺乏低层的敏捷实践。

极限编程XP


XP与敏捷软件开发的吻合度更高。它是由一系列简单却互相依赖的实践组成,这些实践结合在一起形成了一个胜于部分结合的整体。

posted on 2011-01-30 14:59  大卫张  阅读(410)  评论(2编辑  收藏  举报

导航