Saturday, December 9, 2017

Scrum Or Kanban : Choosing the one that fits the best !!

Recognized as few of the early Agile process framework, both Scrum and Kanban helped in improving the Software development efficiency.

Here is a post that discusses about brief background, principles, the factors that one need to consider to pick a agile framework that suites best based on the nature of the work, delivery frequency, scope change, time to market etc.

Scrum
Kanban
This concept was first introduced in 1986 in Harvard Business Review article “New New Product Development Game” authors Hirotaka Takeuchi and Ikujiro Nonaka described a new approach to do product development to increase speed, flexibility based on their case studies from automotive manufacturing, photocopier and printer industries.
In 1990s Ken Schwaber and Jeff Sutherland collaborated their experiences and good practice to further develop Scrum concept.

Adopted from the way “supermarkets” were maintaining their inventory in late 1940s, Japanese manufacturing giant Toyota made some process changes in their manufacturing unit to bring tremendous Production efficiencies in their manufacturing plant. Kanban (meaning sign-board) is an inventory control system to control supply chain.
Seen as “holistic” development strategy, this Agile process framework uses iterative and incremental software development framework to manage and develop complex software and products.

Eliminating/ minimizing process inefficiencies, Kanban uses visual aids (billboard/card) to improve decision making and allowing better understanding of work to be done, capacity available and overall workflow.

Scrum operates with following 6 principles:
  • Empirical process control: This principle promotes ideas of transparency, inspection and adaptation.
  • Self-organization: When team is self-organized, it results in shared ownership and innovation and creates an environment that fosters growth.
  • Collaboration:This principle focuses on 3 factors of collaborative work awareness, articulation and appropriation.
  • Value-based prioritization: Concentrations on the business value right from the beginning of the project
  • Time-boxing:Helps in effectively manage project planning and execution.
  • Iterative development:Iterative and incremental development involving customers and continuous feedback.
Kanban operates with following 4 core principles:
  • Visualized work:Making work visible to indicate the stage of the work and queues along with any blockers or bottlenecks.
  • Limit Work in Progress/Smaller batches:Limiting the amount of work that can be taken in parallel, instead dividing work in smaller batches and taking them to completion.
  • Optimize and Focus on Flow:Taking advantage of WIP limit, overall flow of the system can be optimized and improved where possible future issues can be pre \-identified by analyzing the flow.
  • Continuous improvement:Using relentless feedback loop to identify areas of improvement to bring more efficiency and removing “waste”.

Scrum is -
  • More prescriptive & structured
  • Is Time-boxed, have development cadence, iteration
  • More organized and have roles such as Scrum Master, PO and cross-functional team
  • Team can plan better
  • Best suited for development work
  • Progress can be seen with the help of Burn-down/Burn-up charts
  • Mainly used at team level in SAFe framework, by development teams


Kanban is –
  • Less prescriptive/structured than scrum
  • Not time-boxed, it is event driven
  • Shared by entire team, no specific roles
  • Estimation is optional, as this is event driven, planning is not always possible
  • Best suited for support and maintenance work.
  • Progress can be measured using cumulative flow or cycle time.
  • Used at almost all the levels of SAFe framework e.g. at Portfolio level to keep backlogs of Business/architectural Epics, at Program level to maintain Features or tasks related to System’s team and at Team level to maintain support related tasks/tickets) 

Best suited when –
  • Budgets are planned based on certain functionality, release dates and resources
  • Delivery roadmap is available and is clear
  • Used by application development teams based on release calendars / planned releases.
  • Change in priority is less volatile
  • Team size is (7-9) and may have dependencies with other teams


Best suited when –
  • Budgets are generally planned on number of change requests/tickets and resources
  • No roadmap available, requests comes ad-hoc
  • Generally used by application management/support teams and are managed based on hot-fixes or continuous releases.
  • Priority continuously changes
  • Team size is small (less than 7) and less dependency on other teams


Advantages includes –
  • As this is more process oriented, it improves transparency
  • Establishes credibility with the client with ceremonies like Sprint planning, demo etc.
  • Advocates built in quality
  • Used for product stability
  • Over time, team reaches a sustainable velocity
  • Gives flexibility to client to change priorities and requirement as per dynamic market conditions/demands.

Advantages includes –
  • Kanban offers flexibility
  • Flow and continuous delivery is the focus point
  • Used to improve productivity and quality
  • Improves efficiency (small, faster batches)
  • As it gives emphasis on limiting WIP, team is more focused
  • Focuses on Reducing waste



No comments:

Post a Comment