《构建之法》阅读笔记02-敏捷开发方法综述

关于敏捷开发,我的了解不是很多,为学习并深入了解敏捷开发,我查阅了书籍和网上的资料。

现总结如下:

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

什么是敏捷开发?

敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。

怎么理解呢?首先,我们要理解它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用规定的环节去一步一步完成项目的开发;而这种开发方式的主要驱动核心是人;它采用的是迭代式开发;

 

为什么说是以人为核心?

我们大部分人都学过瀑布开发模型,它是以文档为驱动的,为什么呢?因为在瀑布的整个开发过程中,要写大量的文档,把需求文档写出来后,开发人员都是根据文档进行开发的,一切以文档为依据;而敏捷开发它只写有必要的文档,或尽量少写文档,敏捷开发注重的是人与人之间,面对面的交流,所以它强调以人为核心。

 

什么是迭代?

迭代是指把一个复杂且开发周期很长的开发任务,分解为很多小周期可完成的任务,这样的一个周期就是一次迭代的过程;同时每一次迭代都可以生产或开发出一个可以交付的软件产品。

 

关于Scrum和XP

前面说了敏捷它是一种指导思想或开发方式,但是它没有明确告诉我们到底采用什么样的流程进行开发,而Scrum和XP就是敏捷开发的具体方式了,你可以采用Scrum方式也可以采用XP方式;Scrum和XP的区别是,Scrum偏重于过程,XP则偏重于实践,但是实际中,两者是结合一起应用的,这里我主要讲Scrum。

 

什么是Scrum?

Scrum的英文意思是橄榄球运动的一个专业术语,表示“争球”的动作;把一个开发流程的名字取名为Scrum,我想你一定能想象出你的开发团队在开发一个项目时,大家像打橄榄球一样迅速、富有战斗激情、人人你争我抢地完成它,你一定会感到非常兴奋的。

而Scrum就是这样的一个开发流程,运用该流程,你就能看到你团队高效的工作。

 

【Scrum开发流程中的三大角色】

产品负责人(Product Owner)

主要负责确定产品的功能和达到要求的标准,指定软件的发布日期和交付的内容,同时有权力接受或拒绝开发团队的工作成果。

 

流程管理员(Scrum Master)

主要负责整个Scrum流程在项目中的顺利实施和进行,以及清除挡在客户和开发工作之间的沟通障碍,使得客户可以直接驱动开发。

 

开发团队(Scrum Team)

主要负责软件产品在Scrum规定流程下进行开发工作,人数控制在5~10人左右,每个成员可能负责不同的技术方面,但要求每成员必须要有很强的自我管理能力,同时具有一定的表达能力;成员可以采用任何工作方式,只要能达到Sprint的目标。

敏捷开发的原则

1: Our highest priority is to satisfy the customer through early and continuous delivery of valuable software

翻译:尽早并持续地交付有价值的软件以满足顾客需求。

 

2: Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage

翻译:敏捷流程欢迎需求的变化, 并利用这种变化来提高用户的竞争优势。

 

3: Deliver working software frequently, from a couple of weeks to a couple of months, with a preference for the shorter timescale

翻译:经常发布可用的软件,发布间隔可以从几周到几个月,能短则短。

  

4: Business people and developers must work together daily throughout the project. 

翻译:业务人员和开发人员在项目开发过程中应该每天共同工作。

 

5: Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. 

翻译:以有进取心的人为项目核心,充分支持信任他们

 

6: The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

翻译:无论团队内外,面对面的交流始终是最有效的沟通方式

  

7: Working software is the primary measure of progress.

翻译: 可用的软件是衡量项目进展的主要指标

 

8: Agile processes promote sustainable development.  The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

翻译: 敏捷流程应能保持可持续的发展。 领导, 团队和用户应该能按照目前步调持续合作下去。

 

9: Continuous attention to technical excellence and good design enhances agility.

翻译: 只有不断关注技术和设计才能越来越敏捷.

 

10: Simplicity--the art of maximizing the amount of work not done--is essential.

翻译: 保持简明 - 尽可能简化工作量的技艺 - 极为重要。英文说 maximizing the amount of work not done.  我的理解是 - 任何还没有明确的工作都会花不可知的时间,因此要 maximize,  不要把那些还没有做的工作和正在做的工作混起来。      

      

11: The best architectures, requirements, and designs emerge from self-organizing teams.

翻译: 只有能自我管理的团队才能创造优秀的架构, 需求和设计.

 

12: At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

翻译: 时时总结如何提高团队效率, 并付诸行动。

敏捷开发流程

第一步:

       找出完成产品需要做的事情---Product Backlog

第二步:

       决定当前的冲刺(Sprint)需要解决的事情--Sprint Backlog

第三步:

       冲刺(Sprint)

冲刺期间,每天要开一个每日例会(Scrum  Meeting),团队成员大多站着开会,所以又称 每日立会 。大家依次报告:

我昨天做了啥

我今天要做啥

我碰到了哪些问题

posted @ 2016-03-27 14:16  _小青年  阅读(239)  评论(0编辑  收藏  举报