一、 什么是敏捷?

Agile在中文的字面意思是敏捷、灵活、利落。相应的“敏捷开发”也可以通俗地理解成为快速高效地进行开发。但敏捷不是开发的具体方法,它是一套能够指导企业进行高效开发的价值观与原则。

二、产生

瀑布模型

瀑布开发就相当于服务员将所有的菜在最后一起端上来。它将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。虽然瀑布模型提供了按阶段划分的检查点且前一阶段完成后,只需要去关注后续阶段,但是这种方法要求产品规划必须早于后续工作完成,一旦规划中有失误,很有可能使整个项目重新规划。 且各个阶段到结束后发现问题再返回上一阶段往往导致产品开发耗费非常多的时间。

瀑布开发模式的项目周期往往比较长,一般为3-6个月,甚至更长时间。

当项目开发完成后,最后交付成果往往不是产品经理或是客户真正想要的,最后只能重新从项目的需求开始。

经过一系列的建设、测试、部署等过程,那样的话,项目周期就会更长,然而又需要尽快投入市场,最后只能是稍微改动一下,差不多接近项目需求就行。

使用瀑布开发模式很容易出现这样的结果,开发周期很长,不可控的因素和风险很大,最终会偏离最初想法。

敏捷开发

敏捷开发相当于先把主菜给你上来,然后在上一些小菜。

为了使开发过程更加高效,在传统的开发模式下,出现了新的模式。 2001年在美国犹他州雪鸟滑雪胜地,17位程序员凑在一起同起草了敏捷软件开发宣言及敏捷12条原则,给软件开发提供了新的思路,组织可以灵活地使用许多可用的框架来进行高效的工作,如利用Scrum,看板,精益,XP等等进行工作。

三、敏捷开发-Scrum方法

敏捷开发中比较具有代表性的就是Scrum,本文以Scrum为例子像大家讲述敏捷思想。

在英文中Scrum原指橄榄球运动中队伍成员一起合作争球,而在软件开发中则是指敏捷开发的一种具体的方式。它包含“3个角色”、“3个可视化文档”、“5种不同形式的会议”以及“5个价值观”核心要点,简称“3355”。

在了解Scrum之前,要先知道Sprint,它原本是短距离赛跑的意思,而在Scrum中相当于迭代(Iteration),每一个迭代周期通常为4个星期左右,这个周期我们称为Sprint。根据项目得情况,Sprint数量不等,完成一个Sprint再进行下一个,每一个Sprint都会产生一个交付物,然后不断重复进行直到完成开发。

1. 三个角色(roles):

PO(Product Owner) :即产品负责人,在接到客户的需求后,产品负责人会将需求进行整合排序,持续定义最优先的任务并交付给团队进行工作,并对每个迭代的产品进行判定,是一个领导者的角色;
Scrum Master:即敏捷教练,了解并熟悉敏捷理念和Scrum运作,在工作的过程中帮助团队遵循Scrum 框架,按照框架进行工作,同时协调各个成员,保证敏捷开发的实施,引导大家又好又快的工作;
Team团队成员:是一个跨职能的小团体,包含研发、测试、设计等不同角色,共同客户需求努力,在PO的领导下阶段性工作,人数一般在5~11人左右;

2. 三个可视化文档(Artifacts):

Product Backlog(代办项/产品需求列表):由产品负责人维护,通过优先级排序来制定迭代计划,其中User Story(用户故事)是一种最佳实践,PO可以根据用户故事确定优先级并分配任务。
Sprint Backlog:优先级别最高的用户故事会进入到Sprint Backlog,而Sprint Backlog则构成本次冲刺周期内要完成的任务。Team成员再根据Sprint Backlog进一步划分职能分工,来完成代办项。
Burndown:即燃尽图,显示Sprint期间团队总的任务剩余时间,每天都重新估算,准确跟踪记录任务变化。


3. 五种不同形式的会议:

Sprint Planning:即计划会,在工作开始前需要明确工作计划,Sprint Planning就是Team与PO的内部会议,在会议中讨论且PO罗列出最重要的任务,以此来确定接下来的Sprint中Backlog有哪些,Team分工是什么。

Daily Scrum:即站会/晨会,每天在固定的时间集中在一起开小会,Team用15分钟左右的时间相互报告各自工作进度使每个人对大体工作进度有一个概念。 每名队员都要总结他昨天做了什么、今天将要做什么,以及是否遇到了障碍。被称为站会是因为要求站着开日会,但并不是强求,形式有很多种,最主要的是为了简化会议流程。

Sprint Review:即评审会议,**每个Sprint结束时团队召开Sprint评审会议,向产品负责人和其他有兴趣了解的人演示可工作的产品增量。这个会议应该是现场演示,而不是作报告。**项目负责人应当检查完成情况,并对未完成的任务重新放入Product Backlog。

Retrospective:即回顾会议,发生在Sprint的最后,由Scrum Master负责召集团队召开。会中大家回顾和小结这个Sprint做的好的地方以及有哪些不足。保证团队能够持续改进,不断提高。

Backlog Refinement:即列表维护,在执行Sprint过程中团队对于Product Backlog上面的东西进行评估与拆分,清楚地拆分比较大的条目,可以发生在整个Scrum周期的任何时间,为下一阶段Sprint做准备,可以提高效率,节约时间。

4. 五个价值观

勇气Courage:有勇气面对在工作中遇到地各种挑战与困难并勇于解决。
专注Focus:每个Sprint只专注于提前制定安排好的任务。
承诺Commitment:在Sprint开始前对制定目标做出承诺
尊重Respect:团队是一个整体,任何目标都要相互尊重与合作才可以完成。
开放Openness:每个人的工作进度、困难与成果都是公开透明的,成员之间没有隐瞒。

过程

实施Scrum的过程简单介绍

  1. 将整个产品的backlog分解成Sprint Backlog,这个Sprint Backlog是按照目前的人力物力条件可以完成的。
  2. 召开sprint planning meeting,划分,确定这个Sprint内需要完成的任务,标注任务的优先级并分配给每个成员。注意这里的任务是以小时计算的,并不是按人天计算。
  3. 进入sprint开发周期,在这个周期内,每天需要召开Daily Scrum meeting。
  4. 整个sprint周期结束,召开Sprint review meeting,将成果演示给Product Owner.
  5. 团队成员最后召开Sprint retrospective meeting,总结问题和经验。
  6. 这样周而复始,按照同样的步骤进行下一次Sprint.

优点

  • 在每一次迭代周期结束后,都可以产出一个可以交付给客户的产品,这样客户可以先体验这些产成品,并给予一定的反馈,而Team则可以随时根据客户的需求与反馈进行灵活改变。
  • 在整个开发的过程中,将大的项目拆分成一定数量的Sprint来完成,客户可以随时查看工作进度,使过程可视化。
  • 与传统瀑布式开发不同,当外在地环境市场与客户地需求发生变化时,不用将所有地工作都返工重新设计并进行,而是通过每个迭代与客户需求紧密相连,灵敏地应对现有地变化。
  • 面对面地交谈方式与每日总结一方面较传统工作方式更灵活,另一面也加强了团队人员之间地协作与沟通效率。

敏捷开发scrum模型相关推荐

  1. 敏捷开发-Scrum与精益相得益彰

    摘要: 瀑布模型是软件工程中最初的经典模型.这种方法对于那些在初期需求就很完整清晰,并且在开发过程中不会有太多变化的项目非常适用.但是,大多数情况下在 软件开发过程中需求会不断变化,而瀑布式开发很难适 ...

  2. 敏捷开发scrum学习笔记(更新中)

    敏捷开发宣言.原则和方法(20/05/12更新) 开发宣言 个体和交互胜于过程和工具 可以工作的软件过程胜过面面俱到的文档 用户合作胜过合同谈判 响应变化胜过遵循变化 在每组对比中,后者并非全无价值, ...

  3. 浅谈敏捷开发scrum工具leangoo(三)

    之前两篇有说到敏捷开发及Scrum的一些概念及实施,现在再来记录下我们在敏捷开发实施中使用的一些工具,主要说下leangoo 工具不是敏捷开发及Scrum的必须品,但有了工具,可以让敏捷开发更好的实施 ...

  4. 敏捷开发Scrum及其适用场景

    敏捷和线性的本质区别 如上文所说,个人认为冲探索轻预测是敏捷和线性开发方式的本质区别.如下所示: 敏捷开发:关照不确定性→探索式,注重应变→价值中心 线性开发:关照确定性→遵守规程,注重良好设计→过程 ...

  5. 什么是敏捷开发Scrum

    瀑布式开发的流程如下图所示: 这种开发流程存在着一个问题,就是在开发的过程中,如果市场的需求出现了变动亦或者在计划阶段没有很好的理解需求,就意味着产品可能会需要从头开始进行开发,亦或者为了增加新的功能 ...

  6. 敏捷开发-Scrum过程模型

    Scrum过程模型 Scrum过程: Scrum的三个主要元素:角色(role).活动(activity).产出物(artifact) 三个角色: 1. Product Owner(PO) 定义产品需 ...

  7. 敏捷开发Scrum学习

    官方:http://baike.baidu.com/link?url=VGFzdJpuHX3g90kIX6l1QABWMmBNyf30sTGuEcJ6OJVMq0Cot1G9Imbu1gls-xpI6 ...

  8. 【系统分析与设计】软件开发模式之敏捷开发(Scrum)分析

    文章目录 1 敏捷开发 2 传统的开发模式和敏捷开发模式的对比 2.1 瀑布模型: 2.2 敏捷模型: 3 敏捷开发scrum的实施 4 敏捷工作件 5 敏捷管理实践 1 敏捷开发 敏捷开发以用户的需 ...

  9. 设计方法(原型法、敏捷开发)

    原型法和敏捷开发 [快速]原型法 就是按照客户写的demo. 分类 1. 抛弃型原型 - demo的需求客户确认后就抛弃. a)探索性 - 为了确认需求: b)实验型 - 为了确认规格说明是否可靠. ...

  10. 单团队敏捷开发项目管理示例

    概述 单团队敏捷开发主要是针对10人以下.只有一个Scrum团队的小型产品或项目的敏捷开发. 对于小型团队来说,在Leangoo中创建一个单团队敏捷开发项目就可以很好地支持团队产品或项目的开发. 适用 ...

最新文章

  1. indexof方法_[ 翻译 ] ES6中数组去重的三种方法
  2. maven静态资源导出(Ctrl+C+V)
  3. SpaceVim 语言模块 dart
  4. SAP Spartacus 登录超链接的 slot 并未出现在 page OCC API 响应里
  5. 聪明的ET,更多的是阿里的人工智能布局
  6. Lucene 与 Elastic
  7. eclipse安装Android模拟器genymotion及其插件
  8. 2017.9.30 CF #R4 D 思考记录
  9. mysql 日期计算,今天,明天,本周,下周,本月,下月
  10. 开机出现grub rescue
  11. 认识linux,走进开源世界。
  12. 手动杀毒,SOLA病毒(也称之为worm.script.bat.Agent、Trojan.Win32.Sola病毒)
  13. 记一次某制造业ERP系统 CPU打爆事故分析
  14. WeLink协作文档:办公协作再快一档
  15. 实习每日总结_20161222
  16. Objective-C学习篇03—继承
  17. python: del函数
  18. python求圆的周长和面积
  19. 获取当年的法定节假日和周末_通过可配置的周末和节假日添加工作日
  20. dell G7 7588安装ubuntu双系统

热门文章

  1. 相关系数excel_数学建模笔记——相关系数
  2. wps怎么把ppt里的字体一起保存_WPS怎样将PPT中的文字导出为Word文档?
  3. Powerdesigner下载安装
  4. JDK1.8下载安装(Windows版)
  5. SWOT分析流程图模板分享
  6. 视频修复工具修复损坏avi视频文件
  7. WebService接口大全
  8. 文本框里面加删除按钮
  9. 启发式搜索A * 算法
  10. 卸载计算机安全证书,卸载https证书详细的步骤有哪些