浅谈「敏捷」开发

敏捷软件开发宣言

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

  • “人”以及“人与人的互动” > “过程”和“工具”;
  • 可运行的软件 > 面面俱到的文档;
  • 客户合作 > 合同谈判;
  • 响应变化 > 遵循计划。

基于《敏捷软件开发宣言》的思想,其共有12条原则,这里不一一叙述,可以在这里查看详情。

敏捷过程模型

1. 特点

开发过程中的“变化”无处不在,也是不可避免的。在实际项目中,很难预测需求和系统何时以及如何发生变化,并且对于开发者来说,要将变化的意识贯穿在每一项开发活动中。面对这写要求,敏捷开发应运而生。所有敏捷过程模型都遵循敏捷软件开发宣言和敏捷原则,每种模型又各有特点,一下介绍两种:XPSCRUM

2. XP(extreme programing)

  • 背景:
    1996年由Ken Beck等人提出,著名书籍:
    《Extreme Programing Explained:Embrace Change》
  • 基本观点:
    软件开发是人与人合作进行的过程,因此成功的软件开发过程应该充分利用人的优势,而弱化人的缺点,突出人在软件开发过程中的作用。
  • 适用范围:
    XP适合规模小,进度紧,需求变化大,质量要求严的项目。功能需求可以固定的,可以作比较精确的需求设计的,生命周期很长的,超大型软件项目不适于适用XP方法。
  • 核心价值观:
    • 沟通问题往往是由于开发人员与设计人员,设计人员与客户之间的沟通不畅造成的;
    • 简单在系统可运行的前提下,做最简单的工作。时刻保持代码的简单,无冗余;
    • 反馈尽快获得用户反馈,越详细越好,使得开发人员能够保证自己的成果符合用户的需要;
    • 勇气“拥抱变化”对于用户的反馈,要用于对自己的代码进行修改,丢掉坏的代码。
  • XP设计过程:
    • XP Planning:计划阶段
    • XP Design:设计阶段
    • XP Coding & Testing:编码与测试阶段
浅谈「敏捷」开发_第1张图片
XP process

3. SCRUM

  • 背景:
    1990年代由Schwaber & Beedle提出并实践。
  • 特点:
    整个开发过程由若干个短的迭代周期组成,一个短的迭代周期称为一个Sprint,每个Sprint的建议长度是2到4周。使用产品Backlog来管理需求,是一个按照商业价值排序的需求列表,列表条目的体现形式通常为用户故事。在Sprint中,Scrum团队从产品Backlog中挑选最高优先级的需求进行开发。挑选的需求在Sprint计划会议上经过讨论、分析和估算得到相应的任务列表(backlog)。在每个迭代结束时,Scrum团队将递交潜在可交付的产品增量。
  • 基本过程:
    • 找出完成产品需要做的事情;
    • 决定当前的冲刺需要解决的事情;
    • 冲刺冲刺Sprint;
    • 每日站会。
  • 常用方式:
    • Sprint Burndown Chart
    • Task board

个人总结

我个人认为敏捷开发中最重要的因素是:
  通过对《敏捷软件开发宣言》的学习,“人与人的合作交流”就一个敏捷软件开发项目是否成功的主要因素。所以在软件软件开发过程中,开发者的编程环境需要做到尽量的开放,而且尽量实现“结对编程”,这样才能使得开发过程变得不易于原计划脱轨,大大增强了开发的成功率。
  而对于较为典型的SCRUM和XP这两种敏捷过程模型,Scrum注重的是管理和组织实践,而XP关注的是实际的编程实践,两者都聚焦于信息价值流和信息沟通除了迭代长度稍有差别外,大多数Scrum实践与XP是兼容且相互补充。
  所以说:组合使用Scurm和XP会有显著收获!

你可能感兴趣的:(浅谈「敏捷」开发)