敏捷开发(Agile Development)

敏捷开发基本概念

  • 什么是敏捷开发?

    • 敏捷开发是一种以人为核心迭代式(循序渐进)的开发方法,也就是一种软件开发流程
  • 为什么说是以人为核心?

    • 相对于瀑布开发模型,它是以文档为驱动
    • 敏捷开发只写有必要的文档,或尽量少写文档,敏捷开发注重的是人与人之间,面对面的交流,所以它强调以人为核心;
  • 什么是迭代?

    • 指把一个开发周期很长且复杂的开发任务,分解成多个开发周期短且可完成的任务,其中每一个短周期就是称为一次迭代(一般为两周);
    • 同时保证每一次迭代结束后有一个可交付的软件演示产品;

关于Scrum和XP

  • 前面说的敏捷开发是一种指导思想或开发方式,它没有明确告诉我们到底怎么做,而Scrum和XP就是敏捷开发的具体方式
  • Scrum:一种迭代式增量软件开发过程
  • XP(极限编程):任何一个软件项目都可以从四个方面入手进行改善:加强交流、从简单做起、寻求反馈、勇于实事求是
  • Scrum偏重于过程,XP则偏重于实践, 实际开发中两者结合使用,这里主要讲Scrum;

Scrum

Scrum开发流程中的三大角色

  • 产品负责人(Product Owner)
    • 主要负责确定产品的功能,指定软件的发布日期和交付的内容,同时有权力接受或拒绝开发团队的工作成果
  • 流程管理员(Scrum Master)
    • 主要负责整个Scrum流程在项目中的顺利实施和进行,清除挡在客户和开发工作之间的沟通障碍,使得客户可以直接驱动开发
  • 开发团队(Scrum Team)
    • 负责开发工作,保质(可交付性)的完成每个迭代(Sprint)的任务;

如何进行Scrum开发?

  • 首先由产品负责人确定一个Product Backlog(按优先顺序排列的一个产品需求列表)
  • Scrum Team根据Product Backlog列表,做工作量的预估和安排
  • 下面就是开迭代会议,从中挑选出一个Story(可交付的任务)作为本次迭代完成的目标,这个Story一般控制在两周(我上家公司是这么执行)
  • 开发团队成员从Story中认领自己的任务(认领任务过程中有一个纸牌游戏
  • 将自己这个迭代的任务再细分,拆分成多个小任务,一般精确到每人天,将自己分类的这些小任务贴到任务墙上,任务墙分三栏:未完成的任务、正在进行的任务、已完成的任务

  • 在迭代过程成要进行每日站立会议,一般控制在15分钟以内,会上主要汇报你昨天完成了什么,并且向所有成员承诺你今天要完成什么,同时遇到不能解决的问题也可以提出,会议结束后到任务墙上更新自己的任务进度板

  • 做到每日集成,至少保证单元测试通过;(单元测试很重要,主要保证一些可预知的bug不会发生)
  • 每个迭代任务完后要进行一次交付演示会议,也称为评审会议,会上产品负责人和客户都要参加
  • 演示会议后团队内部还要针对这次迭代开一次总结会议,说说这次迭代中遇到的问题,以及在下面的迭代中避免类似的问题再次发生

results matching ""

    No results matching ""