Kanban – step by step implementation
 

You are ready to leverage Kanban in your project.  At this moment you are convinced that Kanban works, it could be a good tool for your project and you understand when this is to be used. The big question is how to go about it.  Let’s discuss that in simplest possible manner.

Visualize your work and existing resources – You need to understand answers to following questions.  What kind of work or EPICs do you have? How long it to complete them?  How many team members you have? What are their capabilities? Customer priority? Release cycle?  What is the existing set of processes used at your BU or org level? How do you get work and what is the priority? The delivery expectations?

Setup Kanban Board – Once you have an answer to #1, you can set a Kanban board. For that, you need various stages, criteria (Definition of complete for that stage in order to be ready to move the item to next stage). You can have a white board and sticky notes to build your kanban board. You can leverage tools like Trello instead of leverage whiteboard/sticky notes.  This may change over a period of time hence starting with Todo, In Progress and Done stages can be a good idea.

Define WIP limit – The WIP limit is assigned to each stage (Represents individual column). The WIP limit restricts team to add more items in the specific stage. This literally removes lots of waste. It does not allow you to focus only on one stage instead encourages continuous production.

Identify and Define Roles and Responsibilities – Kanban doesn’t prescribe specific roles but it is a good idea to have a product owner, scrum master and team member roles. Although in typically Kanban projects, the role of SM is very limited.

Start working – Start working on the model. Don’t be rigid on the number of stages, WIP limit, roles, and processes. This gets better over a time. Do not break the WIP limit rule. If you think the limit you set is not right, change it. This is most adaptive process hence most learning will be on the ground. The processes can be adjusted as you move forward.

Matrices/reports – You can have utilization, productivity, cycle time and other matrices. Do watch it closely as this would help you to stabilize the process per company need.  The cumulative workflow diagram would be a really good choice to constantly monitor as it gives you very clear picture in terms of where the project stands.

 

Kanban – Let’s get started
 

Kanban (refers to visual board or billboard in Japanese) is a lean scheduling tool that works on JIT (Just in Time) manufacturing concept. The JIT is a model in which products are built to meet pressing requirements over building it in excess.  This helps to improve productivity, reduce waste by limiting work in progress items, support continuous delivery and maximizing customer value.

Kanban board is a visualization tool as shown above.   The number of stages could of any number depends on your need. For instance, in my previous project, we were using

  • To Do – When the item is groomed and ready to be picked
  • In Progress – The item is picked and being worked on.
  • QA – The development is completed. It is ready for integration testing.
  • Done – Delivered to the customer.

The stages and conditions as I described earlier are subject to individual need. The Kanban process is highly Adaptive.  It does not prescribe any roles. Let’s look at some of the processes or tools in specific order (rigid to adaptive)

Waterfall – More rigid
XP
Scrum
Kanban – More Adaptive

The work in progress plays a critical role. This ensures there is nothing at any stage over produced which result in reducing wastage. There is not a secret formula to set a WIP limit. All you have to look at is how many members you have in time and how many items they can work for you to have expected utilization. When you start, it is perfectly alright to have wrong WIP limit. You can always change it as you move on.

Just to make it more clear, this is how I set up WIP limits for my previous project example where my team size was 11. All of them used to play the role of Developer as well as QA.

To Do – 5  – Wanted to restrict to a number of groom items as we had customer dependency to unblock individual item (Access and other dependencies). Once we get the access to customer environment, we cannot wait for a long time to get started on that.

In Progress – 6 – I always wanted individuals to focus on QA as well as unblocking backlog item to continue the flow hence I limit this to 6.

QA – 2 – Sound interesting. Isn’t it? Well, anything which is dev-done (typically takes 3-4 weeks of development), the QA work was limited to 2 days. Anything which reaches to QA, should be quickly completed and delivered to the customer so that I can recognize my revenue. The advance of two is, an individual must complete it in order to move dev complete items to QA. If the WIP limit is full, even an item is dev complete, it used to remain there.

In addition to above, I kept WIP limited to leverage pair programming benefit as well. I wanted on complicated items folks to pair program. The above number, I reached over a period of time. The initial WIP limit turned our to be wrong which was expected.

The Agile Methods explain some of the core frameworks or agile process tools similarities and differences.

Please refer the following blog for step by step process to implement Kanban in your project.

Kanban – Step by step implementation

Planning & grooming process for distributed (not co-located) agile teams
 

Most agile frameworks encourage team co-location to have

  • Better communication, mutual trust & respect
  • Better alignment and support
  • Lesser operational costs and smooth management resulting in a better outcome.

All of these are designed for achieving better results as a team. Unfortunately with globalization (offshore/onshore model), there are very few teams that are fully co-located.

In such a scenario, sprint ceremonies are often challenging when you are following Scrum or XP model. In this article, I am going to focus only on planning and grooming ceremonies. I have tried this approach in many teams in the past with significant success.

Planning and Grooming
Agilechamps – Planning and grooming

Assumption

In order to better understand the model, let’s assume that you have one sprint team with 12 members split equally into two teams and separated by multiple time zones. The product owner and Scrum master are co-located and duration of each sprint is 2 weeks long, starting on Tuesday. Assume the team velocity is 40 story points, completing approximately 10 features and 10 bugs in a given sprint on an average.  For this example, let us assume the teams to be located in India and the USA J

Approach

The product owner tries to ensure that at least 2 sprints worth of work is well prioritized at any given time. The team focuses on getting sprint work done during the first week of sprint. The team assumes 10 hours’ time for each USA and India team in each sprint to pre-groom stories. The teams spend some time each day pre-grooming stories and creating tasks during the second week of the sprint along with the continued effort towards their existing sprint goals. The goal of this exercise is to ensure that both teams have enough clarity on stories to be able to start working on them from day one of the upcoming sprint.

During this period (the second week), individual teams should communicate with the product owner or other members of the team to retrieve as much information as possible to flesh out requirements and discover potential blockers.

While this may appear a little tough in the beginning, it gets better over time as team members gradually become accustomed to the code base and business functionality, and are able to make better-educated guesses and assumptions about the stories. Initially, teams might even find themselves spending close to 10 hours a week in these activities, but the time needed drops off significantly in due course. This is especially true for teams that are less exposed to business or may be newly formed.

At this point, both teams have a better understanding of stories what they have groomed. During the planning meeting, both teams talk about each story they have groomed. I would personally suggest teams conduct sprint planning meetings on the last day of the sprint. This ensures that the first day of the next sprint is not wasted deciding what to work on.

Pointing stories is a group activity where inputs from all stakeholders can be considered while assigning points to stories.

Both the team collectively go with sprint commitments after the planning meeting.

Benefits

  • Combined planning meetings are short as at least one of the team has clarity over requirements for each story. I have often seen individuals get on to planning meeting with little or no knowledge about stories resulting in long meetings. This also results in only one team being engaged in the meeting while the others become impatient and disengaged.
  • Product owners are human. It is normal for them to not have all the answers up front. This approach gives them sufficient time to gather missing details; details that they might not even have considered necessary unless brought up by developers
  • The team gets enough time to groom stories since they often have questions for the business owners or for other teams that are easy to answer, but a response needs a turnaround time of a day or two because of time zone differences.
  • The team who has less context on business come up to speed with business, processes, and resolving dependencies wherever applicable.
  • A geographically split team doesn’t mean individuals have to work in isolation.

This model helps teams realize a number of benefits which include (but are not limited to):

  • Improved quality
  • Better commitment
  • High productivity
  • High morale
  • Better team bonding
Estimation – Planning Poker
 

What is a planning poker (& Facts)

  • Planning poker is a consensus-based technique to estimate the effort in an Agile project. It is sometimes referred as scrum poker as well.
  • Performed using a deck of cards (referred as planning poker cards). The Fibonacci sequence (i.e. 1, 2, 3, 5, 8, 13, 21, 34…) are printed on cards (most popular and widely used). One can use any other sequence which suits your need. For instance, doubling card numbers (1/2, 1, 2, 4, 8, 16, 32…) is quite popular as well. These numbers represent story points.
  • You can leverage software tools(tons of tools available online) over cards to make the process easy and compiling estimation for each story.
  • The teams come to approx estimate and keep getting better with time.
  • It’s a collaborative effort and team activity. The entire team is expected to participate in this activity. If your scrum master is going contribute technically then he/she should participate along with programmer, testers, DBA etc. If the scrum master is not going to contribute technically while he/she has a solid technical background then it is advisable to include him.
  • The PO may be included too if he/she has strong technical background.
  • It is derived from WBD (Wide Band Delphi), Analogous and WBS (Work Breakdown Structure) estimation methodologies.
  • The stories should be broken down enough so that estimation will not go beyond. One general rule is to break down the tasks further if it is scored 13 or above.  There are instances where you cannot really do that while in most cases it’s not very tough to do so.
  • The voting option can always be used when there is a conflict in estimate post discussion.
  • If the estimation is done using story points then its easy to sum them up to match velocity so that sprint commitment can be made.  The hours is not advisable as by definition user stories are a high-level description of functionalities hence chances are slim to get close to accurate hours when estimating.

Implementation

  • One of the team members is selected as moderator (Typically product owner or scrum master)
  • Every individual is given deck of cards with numbers printed on it. If the software product is used over cards, a session is created and everyone logs into that to select their number for every story.
  • The moderator reads out the story loud with all the details. The whole team discusses to ensure everyone has a fair understanding and missing items are covered.
  • During this discussions, any question which comes with respect to functional details, PO answers that.  Remember, it’s a collective effort hence anybody who has more context can clarify the doubt though a final decision is taken by PO when it comes to functionality.
  • Every individual secretly selects his/her card representing their estimate which is later shown to the rest of the team once everyone is done with their estimate for a given story.
  • If the entire team come to the same estimate, it becomes an estimate for a given story.
  • Team members which have higher or lower estimate compare to rest of the team would explain their viewpoints.  The team can take some time to discuss that further. If needed, this process is repeated for the same story or the whole team agrees on one final number.
  • This estimation process is repeated for every story.
  • It is perfectly alright to have a varying estimation as the team gets mature over a time and moreover, understanding of business and technology will keep getting it better.

Benefits

  • Better understanding of requirements because
    • The entire team is involved in estimation and
    • Discussions around each story specifically unknown areas.
  • It’s easy and a fun way to estimate.
  • The estimates are not dumped instead its collective team estimate. This leads to high morale, a greater sense of ownership, team responsibility and commitment.
  • Everyone has a say on the estimation. The equal voice whether an individual with zero or 10+ years of experience creates trust and positive environment.
What are common Agile Methods?
 

Agile Methods

The Agile is not just following Scrum or XP. There are many other agile frameworks or methodologies available in the Agile world which are leveraged based on type of work or a project. There is none better than other.  The use completely depends on the type of the project you have.  There are many methodologies available in the market while I will be listing down high-level details about some of the core methodologies below.

  • Scrum
    • The team works in iterations (Called sprints) that are typically 2 or 4 weeks.
    • The engineering practices are not prescribed.
    • The scrum does not encourage change within sprint once a commitment is made.
    • The backlog is prioritized while within sprints team decides how to go about picking items. The priority is typically given by product owner.
    • The releases happened after the end of iterations.
    • The scrum can be used for non-software products.
    • Encourages feedback early while it’s fine to reach to the point till you have sprint review.
  • Extreme Programming (XP)
    • The team works in iterations that are typically 1 or 2 weeks.
    • The engineering practices (TDD, BDD, pair programming, automated testing, refactoring etc.) are prescribed.
    • The XP teams are open for changes as long as the feature hasn’t started or they have similar size of an item which can be swapped.
    • The work is done in strictly priority order. The priority is determined by the customer.
    • The focus is more on small and frequent releases.
    • XP focuses on programming.
    • Immediate Feedback loops.
  • Lean and Kanban
    • The lean concept has come from lean manufacturing where the focus was a continuous flow of work and eliminating waste (Muda).
    • Kanban (Billboard or signal board or visual board in Japanese) is one of the lean methodology sometimes referred as Lean Kanban.
    • The core focus is on visualization, work in progress limits, flow, and continuous delivery. The work is in one of the categories (to-do, doing or done). There could be N-number of categories.
    • When we talk about software, it is most suitable for support kind of work.
    • No required time-boxes or iterations.
    • No set process roles are prescribed unlike Scrum where you have three roles defined (Scrum master, product owner, and team member)
  • Feature Driven Development (FDD)
    • An iterative and incremental software development process which is often referred as a lightweight Agile process.
    • The focus is on features.
    • The main purpose of FDD is to deliver tangible, working software repeatedly in a timely fashion.
    • The unit testing, pair programming, refactoring is not important.  Modeling language (like UML) is leveraged and documentation is not mandatory at all.
  • Agile Unified Process (AUP)
    • Simplified version of RUP (Rational Unified Process)
    • The four phases are inception, elaboration, construction and transition.
      • Inception – Stack holder acceptance, Initial requirements, high-level architecture, and scope is baselined here.
      • Elaboration – The detailed design and architecture are accomplished in this phase.
      • Construction – Working software building incrementally.
      • Transition – Release and deployment
    • The focus is on TDD, Refactoring, change management etc.
  • Dynamic Systems Development Method (DSDM)
    • Focus on developing the system dynamically based originally on Rapid Application Development.
    • Incremental prototyping
    • It has primarily 5 phases
      • Feasibility Study
      • Business Study
      • Functional/Business Model Iteration
      • Design and Build Iteration
      • Implementation

Above is very high-level information to get a hang of it. I shall be writing individual blogs about these methodologies in detail in my upcoming blogs.

Understand themes, epics and user stories
 

Themes – A Theme is a group of EPICS that represents area of focus.  For instance “Product going online” or “moving to cloud” or  “launch in India”. Typically program managers assign financial value to themes to ensure objectives and strategic direction of an organization is aligned with program. These are typically at very broader level (Program or entire project level)

EPICs – An Epic is a large story that cannot be completed in a single sprint hence it is broken down in group of user stories. Hence it would make more sense to say that EPICs are collection of related user stories.  For instance you say that theme is “Going to cloud” and EPIC is “improve password page usability”. The user story could be “The validation messages should be very clear so that I should be able to correct it easily”

User Stories –  User stories is a description of a software feature from an end user perspective who desires the new capability.  Precisely it is simplified version of user or customer requirements.

Here is the template for user story

As a <type of user>, I want <some goal> so that <some reason>.

 

A good user story can convey a clear understanding to programmer about requirement. The characteristic of user stories are

Testable, Estimable, Small, Negotiable, Independent and Valuable.

A specific user story can belong to more than one theme, but certainly does not to multiple epics.

Scrum Ceremonies – Demo/Review or Showcase
 

The following Scrum ceremonies are to be understood well.

  1. Planning and grooming
  2. Daily Standups
  3. Demo/Review or Showcase
  4. Retrospectives

Let’s talk about Demo/Review or Showcase in this article

A showcase, demo or sprint review represents one and same thing. A sprint review is an informal meeting that typically takes the form of a demo of the completed features or what is accomplished during the sprint to the product owner (And rest of the team).

This can be done as and when the work is completed over waiting for last day of the sprint to arrive. This mitigates the risk of incorporating review comments which may result in sprint failure if the demo is done on the last day of the sprint.  In case if there are review comments, that should be fixed and once again demo to be conducted for the story which had review comments.

The whole team should participate. Although the team needs to get the buy-in from PO to change the story to done-done while the feedback from the whole team helps.  You can invite other teams, support or customer as needed.

One of the core objectives of the demo is to review progress against the sprint goal and team commitment. It is an opportunity to get everyone on the same page in terms of what was accomplished, what’s still in progress and what tradeoffs were made.

Best practices around Demo/Showcase

  • Prepare, prepare and prepare – Don’t go to demo meeting and start talking randomly. Everyone’s time is important including you.

 

  • Practice before the demo – Run the workflow or the feature you have built. This ensures everything works.

 

  • Give importance to Acceptance Criteria – You can always talk about nonfunctional requirements while the focus should be on acceptance criteria. What value your feature is adding to product/business.

 

  • Follow KISS – Keep it short and simple – Don’t complicate things. Make it crisp, cover all the points written down in acceptance criteria. Give time to your team and PO to ask questions.

 

  • Showcase Value – Do not focus on technology or the feature you have built works while do talk about business value. Feel the sense of pride or accomplishment in showcasing what you accomplished.

 

  • Communication – It’s key to success. Talk to the point. Listen to people (your team). Write down their feedback and comments. The good idea is to record the meeting so that you can always go back and listen to the feedback if any.

 

  • Involve right participants/stakeholders – Not just your sprint team or PO but you should be inviting folks representing your product business.  Folks on the actual ground adds lots of value to the project/product.

 

  • Seek Feedback – Accept the feedback positively. Your goal is your team success, making a product better and help the organization to get more value.  This eventually helps you to grow faster.

 

Scrum Ceremonies – Planning and Grooming
 

The following Scrum ceremonies are to be understood well.

  1. Planning and grooming
  2. Daily Standups
  3. Demo/Review or Showcase
  4. Retrospectives

Let’s talk about planning and grooming in this article

The entire sprint team work together and plan for next sprint goals. The sprint planning meeting is attended by the scrum master, product owner and rest of the Scrum team. The other teams may be invited on a need basis.

The PO ensures product backlog priority is up to date (At least top level items) for the team to pick up items from the product backlog. The stories are picked up and prioritized. The PO usually talks about sprint goal and once that is finalized, the stories are being picked up to for grooming.

For each story, product owner writes down the description of story and acceptance criteria. While grooming it can be further updated by PO and team. The team gets answers for their queries from PO with respect to functional expectations. In addition to that team work together to identify dependencies, constraints and nonfunctional requirements. The team typically elaborate more on functional requirements as well.  The stories are broken down into multiple tasks.

All the groomed stories are then estimated by the team.  Each story is tagged with story point or hours. The task usually is tagged with planned hours. The scrum master and team look at the velocity and capacity of the team and commit the amount of work which can be delivered in sprint.

At the end of this meeting, the scrum team would have two artifacts ready

  1. Sprint Goal
  2. Sprint Backlog

 

Best Practices

  • I always suggest the team go with pre-grooming. Typically planning happens a day before or when we are about to start a sprint. Understanding every story the first time, grooming, tasking and estimating take too much of time. Due to time constraints, it is not very effective and done half-heartedly. Moreover, all the questions can’t be answered upfront. This is one of the main cause of sprint failures in most projects as you are not sure of what you are committing. One of a good idea is to keep looking at upcoming stories and clarify all the doubts with PO or other stakeholders in advance. Spending 30 minutes to an hour by few folks in team 4-5 days in the previous sprint helps to do much better for next sprint.  With this, the planning meeting will have just three goals
    1. Explain everyone expectations from stories and get aligned
    2. Estimate
    3. Once #1 and #2 are done for all the stories, commit sprint.

Note: Many times, the business and competition demand last minute priority work to be picked when you start the Sprint. This is fine as long as it’s minimal.

  • PO shouldn’t be telling how much of work team should be picking. The team should take a wise decision by looking at previous sprint capacity. The idea is to have sprint success and continuous improvement.
  • Always keep little buffer for planning next sprint items, unknowns in existing sprints and tech debts
  • A lot of teams prefer to keep 20% time aside to deal with tech debts. This may be a good idea while I always suggest the team to plan for this 20% during sprint planning and grooming only. What you plan is what can be accomplished.
  • Don’t be very aggressive as the quality of software in most cases is more important over quantity.
  • The team member shouldn’t be picking up multiple stories in advance. Each and every member should pick one story and once done they should move to the next one as per the priority order specified in Sprint. The exception to picking up the items within Sprint should be ok as long as PO is good with that.
  • Always create a task for stories. Don’t just include tasks which have business values while do consider tasks related to development and testing. For instance testing, code reviews, writing tests etc. Keep in mind, don’t write too many tasks.
  • Try to break down the story to as small as possible while if the estimation is going beyond then it’s important to divide that into smaller stories. There are instances where you can’t break down the story to the level where you are not getting business value out of it which is OK at a times but do avoid this situation as much as possible.
  • The story where lots of research is involved and there are unknowns which need to be unearthed, prefer to go with Spike.
  • Trust each other and support each other.
  • Pair when needed while do not work on the same task in series unless absolutely necessary. I have seen with the offshore-onshore model, the story is being worked on one story at offshore and further, it is handed off to another team member at onshore. These cycles keep repeating. The amount of productivity loss happens in this approach is not worth it.

Important Tip – The scope creep can be managed within Sprint with only two ways

  1. Refuse new work in the middle of Sprint and take up that in next Sprint.
  2. If it’s absolutely mandatory to pick the work in the middle, you need to take out an equal amount of work from Sprint.

At times, you are done with Sprint in advance, in that case, you can pick more work while it is always better idea to increase your velocity and focus on tech debts, testing, and quality practices. You can even spend time on learning which is usually way more important than we usually think