We use a kanban process with the following steps:
The specification. implementation and review Steps are divided into in processing and done Phases.
The implementation One step is taken if the implementer believes that the code meets our quality standards. The review One step is done when a second person thinks that the code meets our quality standards.
Sometimes during the implementation Step turned out to be part of the problem during the specification Step. In this case, the work item goes back Specification in progress,
Very often (often several times per work element) the examiner is not completely satisfied with the code.1 In this case, the work item goes back Implementation in progress,
If a work item is just moving forward, we can use the standard Kanban workflow: Drag work items to the next step while meeting the WIP limits.
If a work item goes backwards, there are some problems.
If the work item is moved to an earlier step, the earlier step may already be full (that is, it contains at least as many elements as the WIP limit). What should we do in this case?
If the implementer has integrated review feedback, it is not clear what to do with the work item. Currently, it is assigned back to the examiner and returned to the examiner review Step.2
In both cases, instead of pulling, we are pushing what seems to contradict the kanban principles. Is there a better solution? Should the steps be rearranged so that the river moves forward more often? If so, how could that be done?
1 A thorough review is an important part of our process. We have a few developers who are not very experienced programmers yet. We also want to avoid that specific knowledge focuses on just a few developers. As a result, employees are sometimes assigned tasks that they are not very familiar with (but then the examiner should be experienced in this area – sometimes we are paired, but our team is partly separate in space and time). It turned out that the implementation review and implementation cycles are a very effective way to disseminate knowledge in the team.
2 In some cases we know that the previous examiner is not available for a long time. In this case, we cancels the assignment of the work item and place it Implementation takes place, However, this is an exception.