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:
- Eliminate waste
- Amplify learning
- Decide as late as
possible
- Deliver as fast as
possible
- Empower the team
- Build integrity in
- 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.aspx3. 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
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
ReplyDeleteHi,Thanks a lot and really happy to see such a wonderful comment.
Scrum Methodology