互联网时代,产品迭代速度快,传统的瀑布流开发模型已经没法知足产品快速开发的需求,敏捷开发的思想应运而生。
考拉技术团队在CEO的大力推行下,一直沿用scrum开发模型,保证产品每周一次的迭代。今天咱们先来入个门,了解下scrum模型的基本内容。安全
在开始介绍scrum模型以前,咱们先来回顾下以前软件开发模式。
起初,软件开发最基础的模型叫作瀑布模型(Waterfall Model)。瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求分析、设计、编码、集成、测试、维护的步骤顺序进行。瀑布模型下的产品开发各部分都是独立分开,各不干扰,通常适应于大型软件。 但瀑布模型也存在不能在开发过程更改需求、没法遇上变化迅速的市场,容易形成资源浪费等缺点。
在这个基础上,引入敏捷开发模型对于小开发团队来讲是比较合适的。
微信
敏捷开发是一种以人为核心、迭代、按部就班的开发方法。框架
Scrum做为敏捷的方法之一,用不断迭代的框架方法来管理复杂产品的开发。工具
原词来自于橄榄球中“带球过人”。在橄榄球比赛的每次冲刺前,都将有一个计划安排的过程,但冲刺开始后则由队员在原计划的基础上随机应发。
学习
灵活性、适应需求变化、更适合团队比较小的状况、每个迭代均有产出,容易学习。
Why choose Scrum? 缘由以下 (敏捷宣言):测试
个体交互重于过程和工具;优化
可用的软件重于完备的文档;编码
客户协做重于合同谈判;设计
响应变化重于遵循计划。3d
概况地说,它适用于快速变化的市场,能够根据客户不断更换的需求,调整产品的方向,按时交付客户想要的产品。这在今天竞争激烈的市场来讲,优先于竞争对手交付一个不完美但能不断改进优化的产品是很是重要的。
scrum团队的成员由开发人员、测试人员以及其余帮助研发的人组成:
核心团队:
任务板
任务板用可视化方式展现,将一个sprint分为四个阶段:
Product Backlog:按照需求的优先级,将团队在sprint中要进行的backlog放在该列;
To Do :将当前sprint须要完成的任务放入该列;
In Progress:当团队开发进行某个任务以后,便将任务对应的卡片放到该列中。若是该任务在该列中所处时间超过1天,则应该将任务拆分为更小的部分,并将新任务放到该列中,移出原有的任务。若一个新任务因某个障碍没法完成,master就会将其标记为障碍,用特定红点标记。
Done:完成一个任务以后,便将任务放到该列。继续开始下一个任务。
看板(kanban)开发方法做为一种敏捷方式,在改善协助,优化管理、提升交付速度、质量以及灵活性方面有显著做用。下篇文章会着重讲述kanban开发模型在技术团队中的应用。
燃尽图
sprint的开发时间须要团队跟进,燃尽图能够帮助团队评估sprint开发任务的时间以及效率。
燃尽图是以图表展现随着时间的减小工做量的完成状况。燃尽图的横轴表示整个Sprint 的总时间,纵轴表示 Sprint 中全部的任务,其单位能够是小时,人天等。 为了更好表示任务开发状况,团队天天要更新燃尽图,而且要根据燃尽图中任务的完成状况对任务进行调整:若是燃尽图一直是上升状态,或当 Sprint 进行一段时间以后,Sprint 燃尽图上的Y值仍然与 Sprint 刚开始时相差无几,就说明这个 Sprint 中的 Story 过多,要拿掉一些 Story 以保证这个 Sprint 能顺利完成。 若是Sprint 燃尽图降低得很快,例如 Sprint 刚过半时Y值已经接近0了,则说明这个 Sprint 分配的任务太少,还要多加一些任务进来。
为了方便管理燃尽图,在设计燃尽图的时候,从简出发。
Jira
做为敏捷团队用来管理开发项目流程以及进展的工具,Jira提供了丰富的功能,方便开发团队对开发中的问题进行记录跟踪,并经过可视化图表展示出来。当团队进行一次sprint时,Jira会帮你记录任务的完成状态,团队的分工状况以及完成状况。,支持将任务简化,把开发时间分配到每一个具体任务中,在规定的时间内完成任务。这与敏捷开发的思想不谋而合。
尽管scrum很美好很轻量,可是这种模型不必定适用于全部的企业。为了保持产品的快速优化,团队在进行敏捷开发模式的同时,还应该注重敏捷开发过程的不断优化。敏捷的出发点是为了提升工做效率,以人为本。没有谁的敏捷之路是一路顺风,不断优化,小步快跑的方式才是敏捷可行的路。