敏捷开发 之我见

概念:

敏捷软件:是1990年被大家广泛讨论的一种软件开发,解决的主要是应对软件开发当中的变化。和“非敏捷”比起来其中主要区别是提倡业务专家与开发人员协同工作,尽可能的面对面进行沟通频繁的交付新的版本紧凑的自组织型团队良好的应对需求变化方法

 

历史:

敏捷一词来源于2001年初美国犹他州雪鸟滑雪圣地的一次敏捷方法发起者和实践者(他们发起组成了敏捷联盟)的聚会。

 

价值观(宣言):

个体与交互 重于 流程工具

可用的软件 重于 跟踪文档

客户协作 重于 合同谈判

响应变化 重于 循规蹈矩

 

敏捷原则:

1.         无论是团队内还是团队间,最有效的沟通方法是面对面的交谈。

2.         我们的最高目标是,通过尽早和持续地交付有价值的软件来满足客户。

3.         欢迎对需求提出变更——即使是在项目开发后期。要善于利用需求变更,帮助客户获得竞争优势。

4.         要不断交付可用的软件,周期从几周到几个月不等,且越短越好。

5.         项目过程中,业务人员与开发人员必须在一起工作。

6.         要善于激励项目人员,给他们以所需要的环境和支持,并相信他们能够完成任务。

7.         可用的软件是衡量进度的主要指标。

8.         敏捷过程提倡可持续的开发。项目方、开发人员和用户应该能够保持恒久稳定的进展速度。

9.         对技术的精益求精以及对设计的不断完善将提升敏捷性。

10.     要做到简洁,即尽最大可能减少不必要的工作。这是一门艺术。

11.     最佳的架构、需求和设计出自于自组织的团队。

12.     团队要定期反省如何能够做到更有效,并相应地调整团队的行为。

 

敏捷实践:

Xp极限编程

Scrum

 

Scrum:一种迭代式增量软件开发过程,英文的意思是“橄榄球 争球”。

 

Scrum历史:1986年日本人竹内弘高 野中郁次郎阐述了一种新的整体性的方法 ,该方法能够提高商业新产品开发的速度和灵活性。

                            1990 肯·施瓦伯在其公司使用了一种方法Advanced Development Methods(先进开发方法),这种方法后来发展为Scrum

                            2001年施瓦伯与 麦克·比窦Mike Beedle)合著了《敏捷软件开发-使用Scrum过程》一书,介绍了Scrum方法。

 

Scrum特性:Scrum定义了三个角色,Master、技术团队、产品负责人。

         Master:团队的教练,负责组内外沟通,排除障碍。

         开发团队:所有参与的开发人员。

         产品负责人:需求人员,确定产品的愿景,定义产品当中的优先级别及交付时间。

一次冲刺当中确定要开发的任务量,其中任务量是由产品负责人员根据优先级别确定出来的。整个团队需要根据具体的开发任务开会讨论时间安排及任务量,开发团队承诺完成多少订单,当确定之后任务既冻结。

 

Scrum具体实施:

白板、任务(产品订单、用户故事)、燃尽图、站立会议。

 

敏捷开发与瀑布模型比较:

瀑布模型:Widget Factory理论基础是以XX理论激发人,认为人是懒惰的,工作越少越好,甚至是逃避工作。基于这个理论自然整个项目就被一个人所替代,把项目经理放到那个位置,让其负责整体项目,分配任务,跟踪进度等。

敏捷开发:Film Crew 理论基础是以人为中心,认为人的潜力是无穷的。并且认为一个自适应团队是更强大的。项目经理在其中是提供环境,排除障碍的角色。

 

自适应团队:

通过自我学习,自我适应成长的团队。制定一个目标,团队当中的所有成员往目标前进。

通常这样可以激发人的动力及潜能,首先是信任,其次是自我学习解决问题能力的提升。

与传统方式的团队区别是:项目经理通常主要是确定需求,并进行工作分配,开发人员往往只是服从命令。

posted @ 2011-07-31 19:52  13路易的  阅读(352)  评论(0编辑  收藏  举报