敏捷开发综述

资料原文地址:http://www.cnblogs.com/kengqiangmeiguiye/p/3612149.html?utm_source=tuicool&utm_medium=referral

      本周课堂上 第一次接触到了敏捷开发的概念 所以课后就查询了关于敏捷开发的一些资料和案例 希望能更好地理解它

      (一)什么叫敏捷开发方法

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

      敏捷开发路线图

Test Diven Development:
       测试驱动开发的基本思想就是在开发功能代码之前,先编写测试代码,然后只编写使测试通过的功能代码,从而以测试来驱动整个开发过程的进行。这有助于编写简洁可用和高质量的代码,有很高的灵活性和健壮性,能快速响应变化,并加速开发过程。
Continuous integration:持续集成
       大师Martin Fowler对持续集成是这样定义的:持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚软件

Refactoring重构

优点:

  • 能改进软件设计使软件更容易被理解
  • 能帮你找到bug
  • 提高软件的开发速度

Pai-Programing:结对编程技术

       是指两位程序员肩并肩地坐在同一台电脑前合作完成同一个设计、同一个算法、同一段代码或同一组测试。与两位程序员各自独立工作相比,结对编程往往只需花费大约一半的时间就能编写出质量更高的代码。

Stand up:站立式会议

     是一种新型的会议方式,为一些新兴科技公司所开创。它提倡员工可选择以站姿而不是坐姿来开会,以身体的放松来带动精神的放松,一方面提升工作效率,另一方面也有助员工身体健康。

Frequent Releases:小版本发布

敏捷开发中,尽量多的发布以周、月为单位的产品,这样客户每隔一段时间就会拿到发布的产品进行使用,通过反馈信息来改进产品。这样可以与客户的需求和变化进行很好的互动。

Minimal Documentation:较少的文档

敏捷开发中并不是没有文档,而是由大量的文档,即测试。这些测试代码真实地反映了客户的需求以及系统API的用法,如果有新人加入团队,最快的熟悉项目的方法就是给他看测试代码,如果用书面文档或者注释,某些代码变化了,需要对文档进行更新。

Collaborative Focus:以合作为中心,表欣慰代码共享

在敏捷开发中,代码是贵团队所有而不是某些人,每个人都有权利或的系统任何一部分的代码然后修改它,如果有人看到某些代码不好的话,拿她能够对这部分代码重构而不需要征求代码作者的同意,很可能也不知道谁写的这部分代码。这样每个人能够熟悉系统的代码,技师团队的人员变动,也没有风险。

Customer Engagement:现场客户

在敏捷开发中,客户是与开发团队一起工作的,团队到客户现场进行开发或者邀请客户到团队公司李开发。如果开发过程中有什么问题或者产品经过一个迭代后,能够以最快的速度得到客户的反馈。

Automated Testing:自动化测试

为了减小人力或者重复劳动,所有的测试都是自动化的,这对QA人员提出了更高的要求。他们要熟悉开发语言、自动化测试工具,能够编写自动化测试脚本或者实用工具录制。

Adaptive Planing:可调整计划

       敏捷开发计划是可以调整的,需求分析-概要设计-详细设计-开发-测试-交付,每一个阶段都是有计划的进行。 

      总而言之 敏捷开发与传统开发过程有很大不同,在这过程中,团队是有激情和活力的,能偶适应较大的变化,做出更高质量的软件。      

     如敏捷开发的宣言所说:

         个体和交互        胜过  过程和工具
         可以工作的软件  胜过  面面俱到的文档
         客户合作           胜过  合同谈判
         响应变化           胜过  遵循计划
原文地址:https://www.cnblogs.com/lyhao/p/5326444.html