Estimating in Kanban

Main goal of any agile methodology is to deliver quality software with desired set of features, and with minimum response time.
 
An when we talk about Kanban Systems, it influences projects by helping in- 
 
  • Visualizing the workflow
  • Shorter time to deliver the product to the end customer
  • Enabling you to see any impediments as soon as they occur
  • Great impediment solving capabilities
 
In typical Scrum, the product backlog items are pulled into to each sprint. Planning is regular and occurs in the beginning of each sprint. And it is during this planning meeting we size/estimate stories.
 
Now when talk about Kanban, Do we Estimate or not? is a question. But before we answer should we estimate or not let's first talk why estimate irrespective of Scrum or Kanban.
 
The main reason for sizing user stories/product backlog items in scrum is to be able to plan releases and prioritize. When you know the size of a story,and your velocity you can plan for approximate deliveries for your features.
 
The main reason for estimating tasks is to be able to decide on an appropriate work load during the sprint. During the sprint planning meeting, the team estimate how big tasks are and when the work load (estimated task sizes) matches the available capacity,the team commits to the sprint backlog.
 
So again how do we handle this in Kanban? Kanban doesn't prescribe any planning routine. So how do teams plan releases?
 
In Kanban,estimation of the item duration is optional. After an item is complete, the team members simply pull the next item from the backlog and proceed with implementing it. Some teams still choose to carry out the estimation in order to have more predictability. Alternative approach to achieve predictability is to make sure that each of the items is of the same size, and therefore can be completed in the same amount of time.This can be done by apt user story slicing.
 
Do we need to estimate tasks then?No we actually don't need this, since we are not committing to some backlog as part of timebox. But in many cases, you need an indication of how much time is to be spent, as we might spend more time in some and others might need less time.But in Kanban we don't need to be specific, as we proceed in project, through put should increase, which is calculated as - Number of Stories Delivered/Given Time 
 
And in order to calculate total time to release we can use Little's law.
 
Image result for littles law
 

If your project is going to take one year and you deliver 2 jobs in one week, you may set your WIP limit as 2.

12 = WIP/.125/month

Since, we limit work,problems will be noticed more quickly.  Every noticed problem is a step towards Kaizen..