Tuesday, February 18, 2014

Scrum -The “Lean” of the software industry or a true complement?

For those of us who don’t know scrum, it is a framework for developing software in an agile (read incremental and iterative) fashion. Its focus is more on the organizational environment around the software industry rather than about the “code” itself. This might serve as the first mild strike to our question of concern as Lean defines concepts to improve process efficiency and product quality but Scrum is more of a rule and role playbook. An interesting quip around organizing and managing roles reads:

“Everything starts with the pig and the chicken. The chicken asks the pig if he is interested in jointly opening a restaurant. The chicken says they could call it, "Ham-and-Eggs." The pig answers, "No thanks. I'd be committed, but you'd only be involved!" ”

Scrum more or less divides the roles as indicated above but does that effectively to know every step of software development. The “committed” group would be the team members who run and test the programs, the product owner and the scrum master and the “involved” group will be the stakeholders and the management team. When it comes to the question of the laying the programming aspects around these roles, Scrum relies on short, independent market-ready product oriented lifecycles called “sprints”. Each sprint is a two-week to one month period by the end of which the team should have a “potentially shippable” product. It is not the final product or anywhere near it but it has the features defined by the team as the “target” for the sprint. The image below gives a fair idea of Scrum Methodology:

SCRUM



The overall process has a number of other ceremonies like Sprint Planning, Daily Scrum, Sprint Review and Sprint Retrospective. Each of these events repeat within every “Sprint” cycle.
Lean way of thinking (according to Lean Software Development: An Agile Toolkit) could be defined using the following steps:

  1. Eliminate waste
  2. Amplify learning
  3. Decide as late as possible
  4. Deliver as fast as possible
  5. Empower the team
  6. Build integrity in
  7. See the whole
Its scope of functioning is quite equivalent to that of Scrum but it has an additional conditionality that a cycle cannot be started before completing this cycle of action for a preceding one. The below image gives the understanding of a lean cycle in software development:

LEAN

There are a number of arguments that comparing the two is similar to comparing apples to oranges and that Lean is a tool and Scrum is a mindset. We could say that Kanban (managing and optimizing processes in a non-incremental manner) is analogous to Lean methods and Scrum is analogous or imbibes Kaizen principles (mindset of iterative improvements). To call for incomparable grounds is quite superficial as even Scrum and Lean have some common window of execution. The following table gives a scheme for Scrum in Lean perspective:

Roles
Artifacts
Events
·    Product Owner
·    Scrum Master
·    Development Team
·    Product Backlog
·    Sprint Backlog
·    Increment
·    Sprint
·    Sprint Planning
·    Daily Scrum
·    Sprint Review
·    Sprint Retrospective

What does the future hold for both Scrum and Lean as companies try to innovate and use hybrid methodologies? Does it old good for the entire SDLC cycle or will it end as a confluence of too many cooks for a simple broth? Is maintaining the sanctity and roots of these methodologies in the best interest or innovation on these lines could complement each other for effective software management?

References and Readings:
2.      http://msdn.microsoft.com/en-us/library/jj161049.aspx
3.       http://code.tutsplus.com/articles/scrum-the-story-of-an-agile-team--net-29025
4.       http://www.agilistapm.com/differences-between-waterfall-iterative-waterfall-scrum-and-lean-software-development-in-pictures/
5.       http://code.tutsplus.com/articles/from-scrum-to-lean--net-29420
6.       Poppendieck, M. P. (2003). Lean Software Development: An Agile Toolkit. Addison-Wesley Professional.
7.       http://johannordin.wordpress.com/2008/06/11/comparing-lean-and-scrum-whats-the-difference/
8.       http://www.netobjectives.com/blogs/comparing-scrum-lean-not-quite-apples-oranges



2 comments:

  1. Scrum is an agile methodology which is different than the traditional project management. It is an iterative approach which is appropriate for projects which are changing and have more emerging requirements. Here the project is worked on iterations wherein the team works with customer to outline the deliverables in each iterations and the whole team is responsible for the delivery of the project. This methodology is more popular in development of projects.

    ReplyDelete

  2. Hi,Thanks a lot and really happy to see such a wonderful comment.

    Scrum Methodology

    ReplyDelete

Note: Only a member of this blog may post a comment.