NimbleWork

Moving from Waterfall to Agile with Kanban

This question was asked on a project management forum which I responded to.  Considering how many software teams are moving from traditional to Agile processes using Kanban, I felt it would be useful to share my answer here as well.

The questioner wanted to know whether a standard SDLC (Software Development Life Cycle) process, i.e. the stages of Planning, Defining, Designing, Testing and Deploy (a very common process that everyone has encountered/ is familiar with) could translate to columns on a Kanban board, named and mapped to Backlog, Defining, Designing, Testing and Deploy. 

Waterfall-vs-Agile

Kanban has very few barriers to adoptions (possibly none?) and one of its tenets is “Start from where you are” – meaning, start with your current process, don’t change anything. One simply visualizes it and then gradually changes it as the team identifies the need for improvements. 

So, referring to the question, if your current process is “Backlog, Defining, Designing, Testing, Deploy”, then you can start with that and use it to track each Requirement (or User Story or feature – whatever you use at the lowest level of the “scope definition”), as it moves through the various stages of development.  You can’t just have the whole Project (depicted as a card) going through that process, because then you wouldn’t see anything progress; NOR can you have your typical project plan tasks flow through that process. (Tasks simply follow a “To do – Doing – Done process).

The idea in Lean/ Kanban is to track the “value addition” stages of your workflow – and apply it to each piece of value that is being delivered to the customer, which, in this case, is software pieces (features or requirements). I’d recommend thinking about each step in the (development) process that adds incremental value to the deliverable – even if it does not involve a handoff from one person to another.

As an example, here is our workflow that we use for our own product development (we build SwiftKanban… using SwiftKanban). We use a TDD approach –

It’s a fairly detailed process that tracks each value addition step as a developer works through them on a single user story or enhancement or defect, the 3 typical deliverables our developers work on. The color coding identifies the type of work.

Going back to the high-level flow mentioned in the question (Planning to Deploy through Definition, Design and Testing), one can start with that and then can gradually “evolve” to a more granular flow where each of the stages identified can have some sub-stages.

Also, it’s easy to forget, but, it’s important to note that Kanban helps you even out and improve your flow by providing intermediate buffer columns so that each stage of your workflow has enough work and that work is flowing smoothly. This ensures that at no point do your team members get over-burdened or become idle. You do this by adding intermediate “Done” columns (as an example one could split the Design column into to –“In-progress” and “Done”) and adding WIP (Work-in-progress) Limits on each column. Here are a couple of examples –

To learn more about the Kanban Method, I’d recommend reading David Anderson’s “Kanban: Successful Evolutionary Change for your Technology Business”. You will also find many useful articles in our Kanban Guide here.

A thought before I conclude – there is no “pre-defined” process in Kanban. You and your team have to decide what process you will use – based on your current development experience and practices – on your new Kanban board. If you have been only doing waterfall projects so far, then you start by using the same process again. If you have been doing a Scrum or an Iterative process, start with that. Kanban will gradually help you improve and evolve as you identify problems with your software delivery, if any, and any process bottlenecks.

If you’d like to learn more, feel free to explore our website – there’s a ton of information to help a beginner get started with Kanban. We also have a 30 day Free Trial of SwiftKanban that you can subscribe to. Feedback and questions welcome!

Mahesh Singh
Co-founder, SVP – Marketing/ Kanban Trainer & Coach

P.S – Another answer on the forum mentioned the STATIK method (Systems Thinking Approach To Implement Kanban) to identify one’s process and the kind of work that is done. I also use it in my Kanban training classes. However, it is a somewhat advanced topic. I would suggest getting a Kanban trainer/ coach to help you with that initially.

Exit mobile version