Agile Zone is brought to you in partnership with:

Jack has posted 23 posts at DZone. View Full User Profile

Agile and Lean - Closer than you think

05.21.2009
| 7591 views |
  • submit to reddit

Sara Peyton published a really informative blog on Lean Software development. Essentially it's a pretty detailed overview of the characteristics of Lean. The point of the blog however is to outline the differences between Agile and Lean. As Sara points out, "Agile has a different perspective from Lean and, generally, has a narrower focus".

Whilst I agree with the fact that Lean is much more broad, there are more similarities with Agile than one would expect. If we examine each of the 7 principles discussed in this blog, and relate them to Agile it's pretty obvious to me that Lean and Agile go hand in hand. Now when I speak of Agile, let me clarify what I mean.

 In my world,  Agile = Scrum + XP + TDD (please don't for one minute take this to mean a definition of what Agile is - that's not what I am trying to say here);

Where Scrum provides a framework for an Agile process, and XP and TDD provide the engineering rigor which you need to ensure the codebase is agile. Without an Agile codebase, you cannot even pretend to be Agile.

Taking the 7 Lean principles as depicted in the article…

Category 1: Eliminate waste

Here, Sara talk about defects, extra features, hand-offs, delays, Inventory (or partially completed work) and task switching.

One of the key principles behind Scrum is the notion of ensuring that work is fully completed at the end of each iteration. This means you have potentially shippable code at the end of every iteration. The Scrum experts refer to this as “Done”. “Done” means, coded to standards, documented, unit-tested, functionally tested, regression tested and ready to go. Sticking to the true meaning of “Done” will ensure that you have minimal to no bugs, and your code will be clean, maintainable and hopefully defect free.

The fact that the code is documented means that you're eliminating problems with handoffs. In addition, Scrum Teams are cross functional and estimating and planning is usually done as a cross functional exercise. This ensures that all team members are in sync and that handoffs between the various disciplines are smooth.

Scrum also intentionally forces teams to ruthlessly focus on the highest priority items first. This ensures that you're not working on “extra” less important features.

Lastly (not to belabor this point), Scrum strongly recommends that Team members assign themselves tasks as they become available rather than being assigned tasks, which avoids the task switching Sara speaks to in this section.

Category 2: Build quality In

Although there is no mention of Quality in the Agile manifesto all Scrum coaches, books and courses, all speak to Quality being the most important aspect of ensuring you're continuously Agile. Without unit tests, functional tests, integration tests and regression tests you can't ever be sure that your codebase is solid, clean and maintainable and that making a code change isn’t going to break things. In my opinion Quality is the number one pre-requisite of being Agile. Quality is a key aspect of being “Done”.

Category 3: Create Knowledge

Scrum more than anything is a learning process. It is specifically designed for the purpose of learning and adapting. Scrum defines a number of ceremonies to inspect and adapt. Besides the Sprint planning meeting and the daily scrum meetings to surface issues, Scrum also includes the retrospective at the end of every Sprint designed for teams to learn from their mistakes. When I did my Scrum certification with Ken Schwaber, I recall him saying that no two companies should be practicing Scrum in the exact same way. Scrum was purposely designed with "holes" so that each individual team can tailor the process to their situation. These ceromonies are all designed to help teams learn as they go and to build the Scrum process to tailored to their own specific needs.

Category 4: Defer commitment

Scrum is inherently an iterative incremental process. It is designed for teams to learn as they go along. Scrum teams typically don't do a whole lot of up-front planning. Rather, elaboration of features and planning is done at the last responsible moment just before the start of the Sprint.

Category 5: Deliver fast

Scrum is not just about Speed (refer my earlier blog post - http://blog.agilebuddy.com/2009/01/agile-is-not-just-about-speed.html), it is however all about getting the highest priority work into the hands of customers sooner and more frequently. Speed is therefore an important part of Scrum.

Category 6: Respect People

One of the core principles of Scrum is to “Value Individuals and Interactions over Processes and Tools”. This means that people are extremely important in Scrum. Scrum is all about people interacting and trusting the team to figure out how to get the job done. Scrum is built on the principles of servant leadership, which by definition means respecting and trusting individuals that they are in the best position to make the right decisions as they’re actually doing the work.

Category 7: Optimize the Whole

Scrum doesn't optimize for the whole - I agree. It is designed to deal more with the software development process. But Scrum can be used to manage other aspects of the business outside of software development and fits well with many other methodologies like Lean for example.

Based on the above, I truly the believe that Agile (Scrum + XP + TDD) is a lot closer to Lean that one would like to believe.

 

Written by: Jack Milunksy - COO at Brightspark and Co-founder of Agilebuddy (An Agile project management tool, built with rich collaboration features for Scrum teams). For more from Jack please visit: www.twitter.com/agilebuddy and blog.agilebuddy.com

Published at DZone with permission of its author, Jack Milunsky.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Dennis Stevens replied on Fri, 2009/05/22 - 8:04pm

Both lean and agile are interested in improving the way that people build software. And you are correct in hoping to avoid an either or conversation around Scrum and Lean. However, that list addresses the seven types of waste. Eliminate waste one of the three pillars of lean. The other pillars of lean are to create flow using pull and respect for the individual. Scrum addresses respect for the individual. Scrum is a push process that deliberately interrupts flow. Lean is a pull process that emphasizes continuous flow. Additionally, Lean has a broader system level perspective, while Agile is specifically and intentionally focused on software development.

michal addon replied on Tue, 2009/06/16 - 12:05pm

Lets start from beginning. I have started earn $$ with sports betting about 3 years ago. Firstly I was very very bed thinking about this kind of job. Lots of people said me that sports btting is just gambling and nothing more. That I have started read a lot of betting and bookmakers firms, bonuses ect. First what I found what very interested me was betfair and Betfair trading system it is nothing but exchange bets with other members of this system. It is amazing option earn lots of money. One more think what I love in betfair is great bonus with Sports betting. Firstly when You wanna start betting You have to choose of the betting system and next find good site with livescore. When You have more information about sport betting You could think about change Your bookmaker to something new like bwin or bet365. Last think what I wanna tell You is Good LUCK, read and learn as much as You can and finaly You got You succes with bookies.Best regards !!

Ash Mughal replied on Thu, 2012/01/26 - 2:51am

I wholeheartedly agree with what you have written. Although the 7 principles you mention are called the Lean Software Development principles I start all my courses with them and call them the Agile Principles. Why? Because they are the driving forces behind everything agile (where agile=scrum+xp+tdd). I have the class do exercises which prove to them each principle is embodied in every agile practices! It is fascinating to watch, and fun to see the lightbulb moments of understanding!

advanced java

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.