看板方法采用了精益的思维范式,将软件开发视为一个价值流(Value Stream),并且基于拉模式来驱动其流动。 看板方法的各种设计元素,为质量和过程中的问题提供了可见性,能够迅速暴露价值流中影响效能的问题,从而引导团队专注于解决问题以维护稳定的流动。 通过帮助软件团队建立稳定的工作节奏,实现始终如一的可靠交付,看板方法能够在开发团队与客户、相关部门、供应商、价值流下游合作伙伴之间建立信任关系,从而建立具有高度协作、高度信任、高度授权和持续改进特征的组织文化。 -----摘自《看板方法:科技企业渐进变革成功之道》
上述文字是对看板模式一段比较恰当的描述,使用看板的方式进行开发,确实可以有效控制团队的开发进度,尽早暴露问题,使软件的价值流能在可视的状态下进行流转。它将任务分解成若干个用户故事卡片,卡片被认领后就可以进行开发到测试到发布的流转,这些过程集中在一张看板中,是不是非常有趣的事情?
版本Tag
快速排期,并提供开发团队快速认领附 YouTrack 钉钉通知工作流源码:
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