前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >持续交付之基于YouTrack的产品看板驱动

持续交付之基于YouTrack的产品看板驱动

作者头像
Criss@陈磊
发布2019-10-16 13:55:05
5140
发布2019-10-16 13:55:05
举报
文章被收录于专栏:测试技术圈测试技术圈

什么是看板方法

看板方法采用了精益的思维范式,将软件开发视为一个价值流(Value Stream),并且基于拉模式来驱动其流动。 看板方法的各种设计元素,为质量和过程中的问题提供了可见性,能够迅速暴露价值流中影响效能的问题,从而引导团队专注于解决问题以维护稳定的流动。 通过帮助软件团队建立稳定的工作节奏,实现始终如一的可靠交付,看板方法能够在开发团队与客户、相关部门、供应商、价值流下游合作伙伴之间建立信任关系,从而建立具有高度协作、高度信任、高度授权和持续改进特征的组织文化。 -----摘自《看板方法:科技企业渐进变革成功之道》

上述文字是对看板模式一段比较恰当的描述,使用看板的方式进行开发,确实可以有效控制团队的开发进度,尽早暴露问题,使软件的价值流能在可视的状态下进行流转。它将任务分解成若干个用户故事卡片,卡片被认领后就可以进行开发到测试到发布的流转,这些过程集中在一张看板中,是不是非常有趣的事情?

产品实践

需求拆分

  • 足够小:保障持续或迭代的交付
  • 端到端:保证交付有意义的价值
  • 相对独立:便于集成,和灵活安排
  • 拆分完还能看整体的架构,才能确保整体价值的最大化

核心目标

  • 业务规划层:按业务场景规划需求;对齐开发进度,迭代快速交付;形成业务闭环
  • 产品交付层:开发任务向产品需求对齐,快速高质量的交付有用的需求,持续提升交付效率

业务规划看板

  • 基于产品组织和规划业务场景,快速交付高价值场景
  • 待规划即需求池概念
  • 已规划使用 版本Tag 快速排期,并提供开发团队快速认领
  • 已发布阶段,展示所有已完成的所有需求

产品交付看板

  • 基于看板需求排期,对齐开发进度,即时发现和出现问题,确保高质量和顺畅的需求交付

交付闭环流程

  • 当团队成员认领卡片后,可以将其拖拽到对应列,代表这个任务已经完成了上个过程,可以进入到目前的阶段了。每天根据进度填写任务的百分比及简单的产出物。
  • 进入到测试阶段的时候,测试过程提交的Bug需要关联到对应任务,直到所有的缺陷被消除后才可以将任务卡片拖到 “待发布” 列。
  • 所有的卡片经过上述的流转到达“已发布”列,即可以讲所有的功能进行发布,并邀请需求人员试用。
  • 有时候遇到特殊情况而导致阻塞,这时候需要设置阻塞停靠站,暂时将任务搁置,如果该任务不会影响主体的流程开发,那么可以先不予处理,待主体流程上线后,总结所有的开发阻塞任务转到下一个版本进行开发。
  • 区分不同的任务优先级,优先解决最高的。
  • 以下钉钉通知 @相关人员。分别是:
  • 产品人员指派需求(已选择)
  • 开发同学接受任务(待开发)
  • 测试同学接受新任务,即研发人员提测(待测试)

附 YouTrack 钉钉通知工作流源码:

代码语言:javascript
复制
var entities = require('v1/entities');var http = require('v1/http');var workflow = require('v1/workflow');var DINGDING_ROBOT_URL = 'https://oapi.dingtalk.com';var DINGDING_ROBOT_URL_DIRECTION = '/robot/send?access_token=xxxxxxxxx';
exports.rule = entities.Issue.onChange({
  title: 'cpjf-state-changed-notify-dingtalk',  guard: function(ctx) {    var issue = ctx.issue;    return ctx.issue.fields.isChanged(ctx.State) && (ctx.issue.fields.State.name === 'F-已选择' || ctx.issue.fields.State.name === 'F-待测试' || ctx.issue.fields.State.name === 'F-待开发');  },
  action: function(ctx) {    var issue = ctx.issue;    var issueId = issue.id;    var issueName = issue.summary;    var issueDescription = issue.description;    var issueLink = issue.url;    var userName = ctx.currentUser.fullName;    var nowState = issue.fields.State.name;    var contextStr = "";    var payload = "";    var nowStateArr=nowState.split("-");
    var result = {      '魏xx': '178xxxx9463',      '沈xx': '136xxxx0845',    };
    var atPersons = "";    var atPersonsPhone = "";    var notifyArr = [];    if (issue.fields.指派人 !== null && issue.fields.指派人.size > 0) {      for (var i = 0; i < issue.fields.指派人.size; i++) {        var person = issue.fields.指派人.get(i).fullName;        var phone = result[person];        atPersons += "、 " + person;        atPersonsPhone += "、 @" + phone;        notifyArr.push(phone);      }    }    atPersons = atPersons.substring(1);    atPersonsPhone = atPersonsPhone.substring(1);
    contextStr = " #### 产品交付 # " + issueId + " \n" +          " ##### **名称**:" + issueName + "\n\n" +          " ##### **状态**:" + nowState + " \n\n" +          " ##### **链接**:[查看详情](" + issueLink + ") \n" +          " ##### **操作**:" +"["  + userName + "] 同学将任务指向" + atPersonsPhone + ",请尽快处理! \n\n" +          " > ###### 技术团队 \n";
    payload =  {      "msgtype": "markdown",      "markdown": {        "title": "产品交付通知",         "text": contextStr       },      "at": {        "atMobiles": notifyArr,        "isAtAll": false      }    };
    var connection = new http.Connection(DINGDING_ROBOT_URL);
    connection.addHeader({      name: "Content-Type",      value: "application/json; charset=utf-8"    });
    connection.postSync(DINGDING_ROBOT_URL_DIRECTION, [], JSON.stringify(payload));
  },   requirements: {    State: {      type: entities.State.fieldType,    },    指派人: {      type: entities.User.fieldType,      multi: true,    }  }});

参考资料:

[1] 商城研发POP平台著.京东系统质量保障技术实战.北京:电子工业出版社,2017.

[2] 阿里-何勉-从持续交付到业务创新.pdf

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 质问 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是看板方法
  • 产品实践
    • 需求拆分
      • 核心目标
        • 业务规划看板
          • 产品交付看板
            • 交付闭环流程
            相关产品与服务
            腾讯云 BI
            腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档