what is Agile development ?

在英国找工作的这段时间,接触到最多的词就是Agile。基本软件工程方面的工作要求都会提到Agile,参加过的几场面试,面试官也问到啦一些有关Agile development的一些问题。今天打算借这篇博客介绍下什么是Agile development.

为了更清楚的介绍Agile,我想先介绍下更传统一种软件开发模式——Waterfall,然后来个对比。


1.Waterfall 的工作流程可以用wiki的一张图描述,基本就是从:需求分析--系统设计--实现--测试--维护。

  waterfall 流程图

waterfall的这种实现方式有什么问题呢?它在整个软件开发过程中没有涉及到需求和设计的变更,没有和客户以及最终的用户有一个交流的过程。 在这种情况下,如果发现最终实现的效果并不能满足客户的需求,那么整个流程就要重新来一遍,这样就会导致项目延期,同时也会增加预算。


2. Agile开发过程是由多个waterfall的iteration组成。相对与Waterfall这种从上而下的流水式软件开发methodology, Agile则更加灵活。

交流在Agile团队中尤其重要,不管是项目团队成员之间的交流还是与客户之间的交流,有效的交流可以提高项目的进度以及少做很多无用功。Agile很看重与最终用户的密切交流,以求让客户参加到开发的每一个进程中来,这样就能有效快速的沟通以开发出满足客户要求的产品。因此,相较与waterfall,Agile节省啦开发用户不需要东西的时间。

Agile的几点重要的特性可总结如下:

  • Individuals and interactions over processes and tools (项目成员以及成员之间的互动比流程和工具重要)
  • Working software over comprehensive documentation(软件开发本身比综合文档重要)
  • Customer collaboration over contract negotiation(开发工程总与客户的交流合作比合同似的谈判重要)
  • Responding to change over following a plan (对各种变化的快速反应比依循计划重要)

Agile Sprint Backlog是Agile管理模式中一个重要的概念,翻译过来主要就是一个阶段性的任务列表,从分析用户需求,然后根据优先级划分任务列表,每个任务都制定一个执行计划,即每个时间段需要完成什么, 分配给谁去完成,项目组成员根据计划来完成各种任务并更新任务进度。

Agile是一个好的软件开发管理模式,但是并不是完美的。在Agile模式中,所有的项目团队人员是被认为可以随意调换的。一般的项目团队里面,每个成员都有自己擅长的方向,例如,有人擅长设计,有人擅长测试,有人擅长前端开发,有人擅长后台开发。对于一个Agile团队来说,擅长前端开发的人也可能会被拉去做设计、测试之类的,做设计的也可能拉过去做开发。


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值