zoukankan      html  css  js  c++  java
  • 敏捷开发

    敏捷软件开发是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。敏捷,顾名思义,就是具有快速,灵活,高效等特点。敏捷过程很容易适应变化并并且做出调整,在保证质量的前提下做到文档适度适量。

    ----------敏捷开发的背景

    一:现在软件越来越复杂

    二:需求越来越多变

    三:过程越来越规范

    -----------敏捷开发的价值观

    * 注重个人以及互动胜过过程和工具

    *注重可用的软件胜过详尽的文档

    *注重客户协作胜过合同谈判

    *注重响应变化胜过恪守变化

    -----------敏捷宣言12条

    我们遵循以下原则:  We follow these principles:

    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 to 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.
    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.
    敏捷开发的方法:
    极限编程XP、Scrum、精益软件开发、动态系统开发、特性驱动开发和水晶开发。
    极限编程是一个轻量级的、灵巧的软件开发方法;同时它也是一个非常严谨和周密的方法。它的基础和价值观是交流、朴素、反馈和勇气;即,任何一个软件项目都可以从四个方面入手进行改善:加强交流;从简单做起;寻求反馈;勇于实事求是。XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。
    Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。包括了一系列实践和预定义角色的过程骨架。Scrum中的主要角色包括同项目经理类似的Scrum主管角色负责维护过程和任务,产品负责人代表利益所有者,开发团队包括了所有开发人员。
    精益软件开发一词起源于Mary Poppendieck 和Tom Poppendieck写的一本同名书籍。这本书将传统的精益原则以一种新的方式呈现---作为22种敏捷开发实践工具之一,并且和其他工具进行了比较。
    Mary 和 Tom's 在敏捷软件开发社区中提出的改进,包括在敏捷开发会议上的几次演讲,已经形成了被敏捷开发社区广泛接受的概念。 例如:咨询公司NetObjectives 和C.C. Pace 就使用了“精益-敏捷”以及其他一些列入的概念。
           特征驱动开发FDD-Feature Driven Development)方法是敏捷软件开发过程中的一种,它强调特性驱动,快速迭代,即能保证快速开发,又能保证适当文档和质量,非常适合中小型团队开发管理。它提出的每个功能开发时间不超过两周,为每个用例user case限定了粒度,具有良好可执行性,也可以对项目的开发进程进行精确及时地监控。它抓住了软件开发的核心问题领域,即正确和及时地构造软件。FDD还打破了传统的将领域和业务专家/分析师与设计者和实现者隔离开来的壁垒。分析师被从抽象的工作中解脱出来,直接参与到开发人员和用户所从事的系统构造工作中。
           C rystal Methods(水晶方法族)由Alistair Cockburn在20实际90年代末提出。之所以是个系列,是因为他相信不同类型的项目需要不同的方法。虽然水晶系列不如XP那样的产出效率,但会有更多的人能够接受并遵循它。其目的是发展一种提倡“机动性的”方法,包含具有共性的核心元素,每个都含有独特的角色、过程模式、工作产品和实践。
    以上几种方法的共同点如下:
      迭代式开发

      增量交付

      开发团队和用户反馈推动产品开发

      持续集成

      开发团队自我管理

    敏捷团队包括3个核心角色: PO(Product Owner)、Scrum Master(Scrum教练)和Team(开发产品

  • 相关阅读:
    环境配置 | 安装Jupyter Notebook及jupyter_contrib_nbextensions库实现代码自动补全
    环境配置 | mac环境变量文件.bash_profile相关
    Django | 解决“(1146, "Table 'mydb.django_session' doesn't exist")”报错的方法
    Django | pycharm 提示 unresolved attribute referene 'objects' for class 'xxxx'
    站点中添加企业qq的几种方式
    div自适应高度
    SVN服务器搭建和使用(三)
    SVN服务器搭建和使用(二)
    SVN服务器搭建和使用(一)
    宽度为100%,缩小窗口,右侧的区域背景图片变成空白
  • 原文地址:https://www.cnblogs.com/VanRomance/p/3623769.html
Copyright © 2011-2022 走看看