• 《构建之法》阅读笔记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),团队成员大多站着开会,所以又称 每日立会 。大家依次报告:

    我昨天做了啥

    我今天要做啥

    我碰到了哪些问题

  • 相关阅读:
    对this的浅解
    Java设计模式---工厂模式学习笔记
    MyBatis入门
    Java设计模式---单例模式学习笔记
    java设计模式--七大原则
    Servlet request常用方法
    maven中导入jdbc的坑
    Servlet生命周期
    JQuery选择器
    Test
  • 原文地址:https://www.cnblogs.com/L-Damon-v/p/5325554.html
Copyright © 2020-2023  润新知