前言
软件开发行业中常用的两种方法,一种是目前非常热门的敏捷开发 (Agile),如 Scrum,Kanban 和 Lean 等,另一种是大家耳熟能详的传统瀑布模型 (Waterfall)。在 2017 年做自动化运维平台的项目中,我非常荣幸成为初始成员之一完整经历了项目的生命周期,感受到 Scrum 和 Kanban 的强大魅力。虽然项目已经过去很久了,但是敏捷开发 Agile 的思想在平时的工作中都能带给我非常多的帮助,我想把自己的心得和体会做下分享,本文主要通过分享几个简短有趣的视频让大家更快的熟悉 Agile,并强烈推荐各位可以在实际项目中实践和灵活应用。
敏捷开发 Agile 中 Scrum 与 Kanban 的实践
更新历史
2019 年 06 月 07 日 - 初稿
阅读原文 - https://wsgzao.github.io/post/agile/
扩展阅读
视频分享
以下视频建议优先观看,有助于理解 Agile 和 Scrum
Agile Product Ownership in a Nutshellhttps://www.bilibili.com/video/av53884097
7 分钟视频:什么是敏捷开发 Scrumhttps://www.bilibili.com/video/av21945150/
Agile 基础知识扫盲
什么是敏捷开发?
敏捷开发 (Agile Development) 是一种以人为核心、迭代、循序渐进的开发方法。
怎么理解呢?首先,我们要理解它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用规定的环节去一步一步完成项目的开发;而这种开发方式的主要驱动核心是人;它采用的是迭代式开发;
为什么说是以人为核心?
我们大部分人都学过瀑布开发模型,它是以文档为驱动的,为什么呢?因为在瀑布的整个开发过程中,要写大量的文档,把需求文档写出来后,开发人员都是根据文档进行开发的,一切以文档为依据;而敏捷开发它只写有必要的文档,或尽量少写文档,敏捷开发注重的是人与人之间,面对面的交流,所以它强调以人为核心。
什么是迭代?
迭代是指把一个复杂且开发周期很长的开发任务,分解为很多小周期可完成的任务,这样的一个周期就是一次迭代的过程;同时每一次迭代都可以生产或开发出一个可以交付的软件产品。
什么是 Scrum?
Scrum 的英文意思是橄榄球运动的一个专业术语,表示 “争球” 的动作;把一个开发流程的名字取名为 Scrum,我想你一定能想象出你的开发团队在开发一个项目时,大家像打橄榄球一样迅速、富有战斗激情、人人你争我抢地完成它,你一定会感到非常兴奋的。
而 Scrum 就是这样的一个开发流程,运用该流程,你就能看到你团队高效的工作。
Scrum 框架
Scrum 创造性地发明了很多概念,请大家结合实践来理解
3 Roles:三种角色
产品经理 (Product Owner),简称 PO,负责产品的需求、进度、目标。
项目经理 (Scrum Master),简称 SM,俗称敏捷教练,负责阻挡外界对开发团队干扰,保证团队顺利工作。
团队成员 (Scrum Team) ,一般 5~10 人,包括开发、测试和运维等,不仅需要技术能力,还需要很强的沟通能力和自我管理能力。
4 Meetings:四种会议类型,项目开发周期,一般 2-4 周
冲刺规划会议(Sprint Plan Meeting),在启动每个 Sprint 前召开,PO 和团队成员将 backlog 分解小模块制定任务优先级,团队成员确认理解需求并计算小模块的工作量。
每日站立会议(Scrum Standup Meeting),开发团队成员召开,一般为 5-15 分钟站立式,每个开发成员汇报昨天做了什么,今天计划做什么,是否遇到障碍?
冲刺评审会议 (Sprint Review Meeting),在每个 Sprint 结束后,将这个 Sprint 的工作成果演示给 PO、客户、老板和其他相关的人员。
冲刺回顾会议(Sprint Retrospective Meeting),对刚结束的 Sprint 进行总结。会议的参与人员为团队开发的内部人员。一般该会议为 1 小时。
4 工作成果:
产品积压订单 (Product Backlog),可以预知的所有任务,包括功能性的和非功能性的所有任务
冲刺积压订单: (Sprint Backlog),在 1 个 Sprint 周期内所需要完成的任务
燃尽图: (Burndown Chart),在 1 个 Sprint 周期内,工时 / 工作量的二维图表
障碍积压订单:(Impediments List),Scrum 负责人要维护一个障碍列表
参考文章
浅谈 Scrum 敏捷开发:4 个输入 / 输出、3 个关键物、3 个会议http://www.woshipm.com/pd/797439.html
Scrum vs Waterfall vs Agile vs Lean vs Kanbanhttps://www.archimetric.com/scrum-vs-%E7%80%91%E5%B8%83-vs-%E6%95%8F%E6%8D%B7-vs-%E7%B2%BE%E7%9B%8A-vs-%E7%9C%8B%E6%9D%BF/
Scrum in 3 Minuteshttps://www.visual-paradigm.com/scrum/scrum-in-3-minutes/
Kanban
最简单的模式莫过于 To Do | Doing | Done
看板是日本的 “视觉信号” 或 “卡片”。丰田线路工人使用看板来表示制造过程中的步骤。作为精益的一部分,该系统的高度视觉性使得团队可以更轻松地沟通需要完成的工作和何时完成。它还标准化了线索和精炼过程,有助于减少浪费和最大化价值。与 scrum sprint board 类似,看板跟踪 “做 - 做 - 完成” 活动,但它限制了 “正在进行的” 活动的数量(该数量由团队经理定义,不能超过)。
![03dae822fffa051b088ee389f82224f6.png](https://i-blog.csdnimg.cn/blog_migrate/9ffba09c40f247b0fa76f99424c000fb.png)
项目管理工具推荐
Trello - https://trello.com/
Jira - https://www.atlassian.com/software/jira
Confluence - https://www.atlassian.com/software/confluence