zoukankan      html  css  js  c++  java
  • Scrum 使用絮叨

    关于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,它是一个工具,一个让我们更加高效的工具,一个增强我们团队合作的工作,一个可以提升大家的积极性,主观能动性,一个伟大的工具!!

  • 相关阅读:
    你的代码又导致资金损失了?活该!
    rabbitmq实现指定消费者才能消费
    没有绝对,没有百分百
    jenkins构建触发器之Build whenever a snapshot dependency is built
    豁然明白的囧事 之 执行mvn:clean deploy提示401 Unauthorized
    (8/8)RPC方法的参数,能用枚举就请考虑枚举
    abstract 关键字
    练习题------代码块
    代码块
    static 关键字
  • 原文地址:https://www.cnblogs.com/zhangpan1244/p/9204138.html
Copyright © 2011-2022 走看看