KANBAN : AGILE Software Methodology

The era of traditional software development is no more viable, IT is looking for agility into its services. Business user changing demand, customer’s swift mind set and more on competition and sustainability in industry demand agile solution to be implemented.

I see Agile as an opportunity to welcome new ideas, adopt changes around the world and improvise IT engineers life. There are multiple ways to adopt Agile but here I am talking about KANBAN. A visual representation of project status which speaks by his own without using any complex template/tool etc. Doesn’t seem to be a truth at first glance but it is possible and has been proven. Kanban can be implemented either on physical board or using software like JIRA etc. It provides simplest way of representing the project progress, Task status, dependencies, blocker and team capacity. Kanban provides transparency which helps to find out bottlenecks and prioritize the task whenever needed. Few are the common terms which everybody should understand before embracing Kanban.

WIP Limits – Work in Progress limits, the amount of work can be taken under any column, swimlane or team member. The idea is to move task towards done rather than accumulating them under In-Progress. Kanban advise to add resources to resolve the blocker or dependency and move task to done rather than pulling more work.

Backlog – Team has to breakdown high level project activities into low level tasks and add them into backlog. Team should have very good understanding of deliverables before creating low level tasks. A planning session within the team would be a great approach to estimate the task. Best practice is to keep all low level task to 4-6 hours only to let task move across the board and see the progress.

Selected – Tasks which are ready to pick up will come under “Selected” column and team member can pick up them based on availability.

Design/Code – When developer/tester/designer etc. starts working on any task, he will pull task under Design/Code column. Examples of task could be writing DB adapter, design web page, writing test cases etc.

Build & Deploy – Developer can put deployment task under this column.

In Test – Once build is ready and deployed, tester will pick the execution task from backlog and place under this column. Once testing is done, task can be moved to column “Done”.

Done – It represents the completeness of the task. Team has to be agreed on the definition of done with all the stakeholders.

The core states of Kanban are – To DO(Backlog), In-Progress(Design/Code, Build & Deploy, In Test) and Done. Core column/states can be break down into multiple based on team working style and flexibility. Certain task should move across all the column like designing a web page and few can skip certain columns like high level design document which can be moved directly to “Done” from “Design/Code”. The core concept of Kanban is to visualize the work, keep transparency, WIP limit, daily stand up and Retrospective. Daily stand up, retrospective works as a feedback loop for continuous improvement and enrich quality into deliverables.