Continuous Improvement for Agile with Kanban and KPIs
What is Continuous?Improvement?
Continuous improvement can be simply considered as?‘getting better all the time …’.?It is an iterative process where in each iteration, the improvements are based on?small changes rather than some radical changes.
You can apply a “scrum like” method for your continuous improvement process. Note that before each iteration,?it is crucial to?clarify what are the improvement objectives.???
Nowadays, the “popular” candidates for improving your organization’s IT performance are related to the Agile and DevOps practices. Keep in mind though that?Agile, DevOps or any other new “silver bullets” to come?are only means for achieving your?objectives. You should always choose and adapt the relevant practices for your?organization’s?or project’s specifics.
Below is a non-exhaustive list of “to be improved items” for your continuous improvement process:
Clearly,?the selection of those items is contextual to the project or the organization?state,?objectives?and priorities.
In the next section I will discuss why KPIs should be used while establishing the “for improvement list / activity plan” during each iteration of?your?continuous improvement?process.???
Continuous improvement – using KPIs to identify actions and priorities
Are you certain what are the real causes of your project's problems? Or maybe your judgment is influenced by cognitive biases such as:
Consider this related quote about illusion of skill from Daniel Kahneman:
“… The illusion of skill is not only an individual aberration; it is deeply ingrained in the culture of the industry. Facts that challenge such basic assumptions — and thereby threaten people’s livelihood and self-esteem — are simply not absorbed. The mind does not digest them. This is particularly true of statistical studies of performance, which provide general facts that people will ignore if they conflict with their personal experience.”?Daniel Kahneman - Don’t Blink! The Hazards of Confidence.
The KPIs can play a significant role in removing judgment biases?such as “Illusions of validity and skill, Confirmation bias and Status quo bias”. The quantifiable measures provided by the KPIs will helps you?understand how well?are your objectives?met in real terms.
Good KPIs will indicate the?current status?of your projects. This will enable you decide which aspects should be improved and in what priority. It will also help you to measure the progress that has been done in each iteration.
Ideally,?in order to make your selection,?you need to take into consideration the different KPIs, your goals, and use the: “Law of The Vital Few” (also known as Pareto's Principle,?The?80/20 Rule) :
Applying the?80/20 rule?will help you to implement the?continuous improvement as an iterative process, where, as mentioned above, in each iteration the improvements are based on small changes rather than some radical changes.
How to measure the KPIs
One great (yet simple) way to measure your KPIs might be achieved by using Kanban board.
You want to stay away from simplified Kanban board (for example the famous “Todo / Doing / Done” board) as it has a very limited value (if any) for your project's management.
Your Kanban board should, at minimum:
Note that the Kanban board's design is completely flexible.
The image below presents an optional design for the Kanban board. It includes the product's lifecycle steps, each step contained both the “Active” and “Done” columns, and the WIP limit value.?
The Kanban ticket design (content and color) is also flexible. The image below presents an optional design for the Kanban User Story ticket templates.
I recommend to include in the card, a table with two columns “Active” and “Done” for each of the product's steps (in our case: “Specify”, “Dev (or implement)”, “Verify (or validate)”, “Acceptance (or integrate)”.
Collecting the required information for the KPI’s is conducted by logging the transitions of each card: you should collect, for each card’s transition, the date in which there was a change of state. The easiest way to capture this information is by writing it on the card itself while moving it from one state to another.
I recommend having four types of tickets' templates:
Each type of ticket will have its own color. Eventually, each ticket will contain the information that is relevant to its context as presented below:?
Top KPIs
Customer Value Delivery
Customer value is one of the most important KPIs. Information related to customer value should be constantly gathered.
Customer value delivery indicates, for each given period (ex: sprint), the percentage of the total effort made towards the delivered user stories out of the total delivery effort. The diagram below is an example of Customer Value Delivery KPI report.
It presents an average of 56% effort spended?towards customer value delivered. This indicates that the high spended effort of 44% towards “Defect” and “Technical story” activities should be audited and potentially improved.
We also observe that in sprint 4 the team spent 65% of the effort towards delivering bug corrections and technical improvements and only 35% of the effort was spent on delivering customer value (user stories). Are you having a problem in your product development? You need to identify the root cause for this problematic outcome:
?….?After identifying the root cause, a correction/recovery plan might be established and implemented.?
Defects (bugs) Injection Rate and Defect accumulation
Defect injection rate is also a KPIs that should be permanently collected
"
"?Tom DeMarco – Why does software cost so much
Defect injection rate measures the total number of defects that was detected during an interval of time (days / weeks etc …)
The diagram below shows a report of the defect injection rate for a weekly period interval
The high variability of the defect injection rate should be studied.
Can it be attributed to:
领英推荐
…?
As always, the indicators need to be analyzed in the specific project context.?
Defect accumulation report:
Another important report is the defect accumulation.
The defect accumulation report contains both the defect injection and defect removal metrics as presented in the following reports:??
(Note that in order to create the defect accumulation report, the defect removal information should also be gathered).?
The reports above indicate that the project carries a quality problem as the defect accumulation is increasing instead of converging to 0.
If you are facing a similar situation, a root cause analysis should be conducted followed by an improvement plan. Such plan should include actions such as:?
Technical Debt
?Technical debt indicates the current correction time (might be indicated in days) required in order to handle all the open defects.
Note that the technical debt is closely related to the defect accumulation indicator mentioned above.
The technical debt is of interest the high-level non-technical managers. It helps them to understand how much working days (= money) are required before the product can be delivered.
Note that for most projects, I recommend to take into the calculation only the critical and blocked defects.
The following is an example of a project's technical debt weekly?report:
The reports show that the project's technical debt is increasing over time instead of converging to 0. This indicates a problem of the project.
As previously mentioned, a reduction of the defect accumulation over time will indicate a decrease of the technical debt.?
Flow efficiency
Flow efficiency indicates the ratio of the time sharing between the active and the pending state for each activity.
The slogan (attribute to Agile):
"Stop starting start finishing"
emphasizes the importance of monitoring this indicator.
The reports below show an example of flow efficiency for 14 sprint periods:
Note that the high number in “pending state” days are bottlenecks.
In a case of a high number of "pending state", as in the example above - an average of 34%, you need to study what are the causes of those bottlenecks.
For example:
The flow efficiency indicator will help you optimize the product flow and will enable you implement a continuous integration and continuous delivery process.??
Putting it all together
?Here is my recommendation of an efficient way to implement your continues improvement processes:
1.???Create a real Kanban board
Start a continuous improvement cycle:
2.???Identify the most relevant KPIs to be measured. The KPIs that was demonstrated in this post would be good starting point …
In each iteration, you need to assess if the previously selected KPIs are still relevant. Modify your KPIs selection if needed. I recommend not use more than 4 (or so) KPIs in each cycle.???
3.???Use the numbers from the Kanban board’s tickets to calculate the KPIs (The information is written on the tickets during the tickets movements from one stage to another).
4.???Use the KPIs you have calculated to define the actions and priorities list (use the 80/20 rule)
5.???Implement the selected actions.
Iterate steps 2 – 3 – 4 - 5 .
Note that in each iteration, the improvements are based on small changes rather than some radical changes.
Contact
Mendelson Amir
Paris, FRANCE
Email : [email protected]
Linkedin : www.dhirubhai.net/in/mendelsonamir/
Copyright ? 2019,2022?Mendelson Amir