关于Scrum 的一些絮叨
Scrum 的推行的基础在于全员参与,全员协作,包含Dev, QA(quality assurance) ,BA(Business analyst)以及Supporter team等等。


初衷
这篇文章的写作前提是因为我们团队在推新的release cycle的时候,有产品的同学不能理解这样做的目的,或者说很难接受我们去延长需求发布时间(实际并没有延迟上线时间,第一感官错误……)

现状

1,线上问题层出不穷
2,预计上线时间和实际上线时间不符
3,上线计划混乱,周期混乱(虽然之前定的有,但是基本没有遵循,有需求就会时不时上线)
4,开发转敏捷开发后,Sprint中任务计划频繁被打乱
5,在release之后,不能及时验证全部需求,一旦有问题,版本回归会有问题
6,……


目标

1,为了更加规范产品发布流程
2,保证线上产品的质量
3,提升整个团队的效能。


流程
关于Scrum的流程,我简单描述下之前我们的主要环节。

BA
需求收集
需求整理,过滤,筛选(很重要)
需求分类(任务,可用性问题(bug),性能问题,概念想法(暂时不能实现也需要收集))
评估优先级
详细设计
验收条件
验收方式:(Sprint demo全员参与,在sprint结束之后,又各责任人演示当前sprint实现了哪些需求,是否达到验收标准。Mini demo当开发人员的Story完成之后,拉上相关QA&BA,进行小范围功能验收,此流程可贯穿在Sprint中。)


Dev
1,Planning meeting获得Story
2,理解需求,代码实现
3,Unit Test编写(第一轮质量验证)(已有计划)
4,提交git(进入Code Review work flow)(正在推进)
5,Code review done/Reject.(正在推进)
6,进入dev环境,由开发来联调各自功能是否ok(第二轮质量验证)
7,没有问题,merge code from Dev branch to QA branch


QA
1,后面会添加Automation Testing(第三轮质量保证,保证基本流程或者主要流程每次都不会有问题)
2,Functional testing 验证QA branch(第四轮质量验证)
3,Integration testing (第五轮质量验证)

测试为了保证系统基础功能的稳定性,必须编写一套UAT cases(User acceptance testing), UAT case必须在每次release甚至于每次build都需要自动验证(需要添加到automation testing 流程中),UAT case需要根据系统功能的变化进行持续升级。

因为我们目前在现有系统中存在太多的技术债(所谓技术债,指的是在项目前期一味的追求进度而忽视质量造成的欠债),如果整体去修改工作量会过大,我们的经验是在每个Sprint中预留20%-30%的buffer去做修复工作。

这个时候我们的系统中会有三套环境:

Dev & QA & Live(production)

如果预算充足,我们是需要一套stage 环境。stage环境从配置和硬件设备基本和Live环境一致,从而使一小部分用户进行新功能试用,以达到我们最终的全面上线的目的。
Of course,Dev & QA完全分离,对于目前我们来说暂时够用,前提是绝对的物理分离,从数据库到业务代码!(很抱歉,目前我们没有此环节,我正在努力推进!)

经过上述五轮的质量保证,我们就能基本排除线上因开发或者测试的覆盖率不足造成的问题,环境问题不能绝对避免。

看起来上述的内容彷佛和我们的重点:release cycle没有关系?
其实不然,周期为一周的时候,很多需求我们是在一个sprint中测试不完全,仓促上线,会造成线上问题。
1,所谓每一个Sprint,基本要求就是Sprint中所有需求可以完全开发+测试结束并且可以达到上线要求。(目前不满足)
2,当前一周的任务可以release出去吗?从看到的结果,并不是这样,后期这部分会整理出数据来支撑此结论(目前不满足)

按照我们目前的需求以及上线频率来看,修改release周期为2周一次,Sprint 周期也定为2周一次,可以完全cover我们的现状。并且能更好的提升工作质量以及的 deliver 更多的工作量。
为什么敢这么说?使用了Scrum之后,后端团队的提升体现

1,个人工作目标更加明确
2,在交付环节比过去按时并且质量大幅提升
3,规范的方式,大家的积极性更高,产出更高
4,不会被临时穿插的需求打乱自己的工作计划,效率更高,产出更高
5,每个人目前都感觉到节奏感强,工作更充实,更有动力,产出更高
6,慢即是快(对于产品,需求更加明确,清晰,在code的时候节省了大量时间并且避免踩坑)

所以希望每个同事能去拥抱scrum,它是一个工具,一个让我们更加高效的工具,一个增强我们团队合作的工作,一个可以提升大家的积极性,主观能动性,一个伟大的工具!!

Scrum 使用絮叨的更多相关文章

  1. [转载]敏捷开发之Scrum扫盲篇

    现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP...      为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自己的话来讲述S ...

  2. 敏捷测试模式之Scrum及其实践

    一.    敏捷开发模式简介 敏捷是近年来软件研发领域很火的一个词,采用敏捷开发模式的研发团队是越来越多了,尤其是敏捷模式中的Scrum更是佼佼者大行其道,这表明敏捷模式确有其好处,能给企业带来效率的 ...

  3. 小谈Scrum敏捷开发流程

    一晃眼,有两年没有写博客了,回顾前两年,各种奔波,各种忙碌,也有不少的收获.从今天开始,我要把这些收获都分享在这里. 其实这两年,对我影响最大的是开发流程.总所周知,一个好的开发流程,对于项目的进行, ...

  4. 软件工程的引入:Scrum开发框架总结

    俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点如下: 软件工程概念 敏捷开发过程scrum 一.什么是软件工程?请用一句话描述. 软件工程是一门研究性的学科:它用工程化 ...

  5. 关于Agile Scrum的笔记

    Roles: Scrum Master -- advisor but leader, 替Team消除障碍 Product Owner -- 定sprint的交付内容, 优先级 Team -- 干活的, ...

  6. 每日Scrum站会实践推荐

    流程 1.团队在Scrum 白板前集中,推荐围成一个半圆形状. 2.最左边的成员开始讲述昨天/上一次Scrum每日站会后到现在为止,完成了什么任务,只需讲对应的任务就行了,不要讲很长的故事. 3.讲述 ...

  7. Scrum Meeting 20161205

    本周Sprint Master 史少帅 一. 会议概要 作为一个新的sprint的开端,本次scrum meeting总结了每个人过去以来的工作,并明确了下一步的计划,具体如下: 工作总结: · 陈双 ...

  8. Scrum meeting 记录

    本周Scrum Master 侯宇泰 一. 工作完成内容记录 · 陈双: 1. 后端数据库Azure Storage设计 2. Offline 上传Movie信息 3. 主页和配音页面的连接 · 鲍航 ...

  9. Beta阶段第十次Scrum Meeting

    情况简述 BETA阶段第十次Scrum Meeting 敏捷开发起始时间 2017/1/4 00:00 敏捷开发终止时间 2017/1/5 00:00 会议基本内容摘要 deadline到来 参与讨论 ...

随机推荐

  1. asp.net ToString() 格式化字符串

    c# ToString() 格式化字符串  格式化数值:有时,我们可能需要将数值以一定的格式来呈现,就需要对数值进行格式化.我们使用格式字符串指定格式.格式字符串采用以下形式:Axx,其中 A 为格式 ...

  2. 用vs2010编译好的ICU库

    1.ICU库的官网网址为http://site.icu-project.org/ 2.ICU(International Components for Unicode)是一个国际化的字符编码和转化的库 ...

  3. QObject提供了QMetaObject元类信息(相当于RTTI和反射),信号与连接,父子关系,调试信息,属性,事件,继承关系,窗口类型,线程属性,时间器,对象名称,国际化

    元类信息(相当于RTTI和反射),信号与连接,父子关系,调试信息,属性,事件,继承关系,窗口类型,线程属性,时间器,对象名称,国际化其中元类又提供了:classInfo,className,构造函数, ...

  4. Windows下用VC与QT编译MPI程序入门

    MPI是信息传递接口的简称,常用来进行进程间.机器间的通信与并行计算.一般而言,MPI都会部署在*nix系统下,在Windows下面直接编译.配置MPI并不容易.本文利用MS提供的编译好的MPI的版本 ...

  5. QT运行cmd指令(两种办法:QProcess.start然后waitForFinished,运行cmd /c命令)

    QProcess p(); p.start("route");//写入要运行的指令即可 p.waitForStarted(); p.waitForFinished(); qDebu ...

  6. play框架之简介

    Play Framework是一个开源的Web框架,背后商业公司是Typesafe.要介绍Play之前,首先理清Play的两个不同的分支. Play 1.x 使用Java开发,最新版本是1.3.1,只 ...

  7. 分享Node.js + Koa2 + MySQL + Vue.js 实战开发一套完整个人博客项目网站

    这是个什么的项目? 使用 Node.js + Koa2 + MySQL + Vue.js 实战开发一套完整个人博客项目网站. 博客线上地址:www.boblog.com Github地址:https: ...

  8. Spring注解?啥玩意?

    目录 基础概念:@Bean 和 @Configuration 使用AnnotationConfigApplicationContext 实例化Spring容器 简单的构造 使用register注册IO ...

  9. spring 5.x 系列第8篇 —— 整合Redis客户端 Jedis和Redisson (代码配置方式)

    文章目录 一.说明 1.1 Redis 客户端说明 1.2 Redis可视化软件 1.3 项目结构说明 1.3 依赖说明 二.spring 整合 jedis 2.1 新建基本配置文件和其映射类 2.2 ...

  10. js 数组去重方法

    var arr = ['a',1,2,3,'a',4,2,3,1,4,2,8,10,null,'a']; // 方法一 var newArr = [...new Set(arr)]; console. ...