“This is my 27th day of participating in the First Gwen Challenge 2022.First challenge in 2022”
What is kanban method
The Kanban approach takes a lean mindset that views software development as a Value Stream and drives its flow based on a pull model. The various design elements of the Kanban approach provide visibility into quality and process issues, quickly exposing issues in the value stream that affect performance, and directing the team to focus on problem solving to maintain steady flow. By helping the software team to establish a stable working rhythm, achieve consistently reliable delivery, kanban to the development team with customers, related departments, suppliers and building trust relationship between value stream downstream partners, so as to establish a highly collaborative, highly trust and authorization, and continuously improve the characteristics of organizational culture. —– from The Kanban Approach: The Road to Successful Incremental Change in Technology Enterprises
The above text is a more appropriate description of kanban mode. Using kanban to develop can effectively control the development progress of the team, expose problems as soon as possible, and make the value stream of software flow in a visible state. Isn’t it interesting to break tasks into user story cards that can be claimed for development to test to release, all in one kanban?
Second, product practice
1. Demand splitting
- Small enough: Guarantees continuous or iterative delivery
- End-to-end: Ensure the delivery of meaningful value
- Relatively independent: easy to integrate, and flexible arrangement
- After splitting, we can also look at the overall structure to ensure the maximum value of the overall
2. Core goals
- Business planning layer: planning requirements according to business scenarios; Align development schedule, iterate fast delivery; Form a business closed loop
- Product delivery layer: Align development tasks to product requirements, deliver useful requirements quickly and with high quality, and continuously improve delivery efficiency
3. Business planning Board
- Organize and plan business scenarios based on products to quickly deliver high value scenarios
- To be planned is the concept of demand pool
- Planned use
Version of the Tag
Fast scheduling and quick claim by development team - The released phase shows all completed requirements
4. Product delivery kanban
- Align the development schedule based on kanban requirements to find and resolve problems in real time, ensuring high quality and smooth requirements delivery
5. Closed-loop delivery process
- When team members claim the card, they can drag it to the corresponding column to indicate that the task has completed the previous process and can proceed to the current stage. Fill in the percentage of tasks and simple outputs according to the progress each day.
- When entering the testing phase, the bugs submitted during the testing process need to be associated with the corresponding task, until all defects are eliminated before the task card can be dragged to the “to release” column.
- All cards go through the above flow to the “released” column, that is, all functions can be released, and invite the demand personnel to try.
- At this time, it is necessary to set up blocking docking station and temporarily put the task on hold. If the task will not affect the process development of the main body, it can be left unprocessed. After the main body process goes online, all development blocking tasks will be summarized and transferred to the next version for development.
- Prioritize different tasks and tackle the highest one first.
- The following nails inform @ relevant personnel. Respectively is:
- Product personnel assignment requirements (selected)
- Develop students to accept tasks (to be developed)
- Test students receive a new task, that is, a test proposed by the r&d staff (to be tested)
YouTrack nail notification workflow source code:
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- Selected ' || ctx.issue.fields.State.name === 'F- To be tested ' || ctx.issue.fields.State.name === 'F- to be developed ');
},
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 = {
'w xx': '178xxxx9463'.'shen xx': '136xxxx0845'};var atPersons = "";
var atPersonsPhone = "";
var notifyArr = [];
if(Issue.fields. Appoint people! = =null&& issue.fields. Assign person. Size >0) {
for (var i = 0; I < issue.fields.designer.size; i++) {varPerson = 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 = "#### Product Delivery #" + issueId + " \n" +
##### ** Name ** :" + issueName + "\n\n" +
##### ** status ** : + nowState + " \n\n" +
"##### ** Link ** : [for details](" + issueLink + ") \n" +
"##### ** Operation ** :" +"[" + userName + "] Please point the task to me. + atPersonsPhone + ", please handle it as soon as possible! \n\n" +
"> ###### technical team \n";
payload = {
"msgtype": "markdown"."markdown": {
"title": "Product Delivery Notice"."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,}, appoint people: {type: entities.User.fieldType,
multi: true,}}});Copy the code
References:
- [1] : The mall developed the POP platform. Jingdong system quality assurance technology combat. Beijing: Publishing House of Electronics Industry,2017.
- [2] : Ali — He Mian — From Continuous Delivery to Business Innovation. PDF