Introduction to Lean Software Development

Here are the slides from my presentation "Vadå Lean Software Development" (Introduction to Lean Software Development) at HiQ on Oct 13.
Lean Agile Scrum XP
Note – the picture above (the last slide in my deck) can easily be misinterpreted when used out of context. It is not meant to imply that XP is a subset of Scrum, or that Agile is a subset of Lean. It just means that Lean addresses a very wide scope – principals like "limit work to capacity" and "continuous process improvement" are applicable in just about any context. While XP is more concrete and limited to the domain of software development. Scrum is somewhere in between – it is not limited to software development, but still mandates the use of timeboxed deliveries (sprints) and a product backlog. Agile is higher level – just a bunch of values and principles and no practices at all. Etc.

There are lots of ways of visualizing this. My picture is simplistic, if anyone can come up with a better one let me know.

10 responses on “Introduction to Lean Software Development

  1. Hi Henrik!

    Nice slides, great! I would have liked to have listened to this talk. Some of the slides were quite content-rich, but I think I managed to get most of them.

    However, that last one, whose image you chose for you blog post, I have a really hard time understanding. It’s the relationship between XP and Scrum I don’t get. Can you explain how you manage to see XP as a subset of Scrum? To me, the relationship has always been the inverse, you see. This is corroborated by the fact that Scrum recommends many XP practices, but the inverse is not so common.

    Or do you mean in "leanness"? Then, again, please explain how XP’s practices of pair programming, TDD, continuous Integration, one-week iterations, short releases, user stories, etc. are less lean than what Scrum entails (a sprint backlog, yeah). Even the things you attribute to Scrum on your slide (deliver fast, limit work to capacity, pull scheduling) are all parts of XP. Deliver fast is even a key practice.

    Now, I don’t mean to start a "my method is better than yours" type of discussion (I use both Scrum and XP), but to me these "Scrum is the best since baked bread, XP is just the technical stuff" kinds of arguments have gone unquestioned for too long. I seriously hope this is not what you are saying because that is most obviously not true

  2. Hi Joakim, thanks for your comment. The disadvantage of making my slides publicly available is that it is easy to misinterpret the pictures when used out of context, especially since my slides are mostly illustrations and few words :o)

    In that picture bigger ring mean more generic, wider scope, higher level, more widely applicable. Smaller ring means more concrete, more specific to a certain domain, lower level, more meat.

    So as for Scrum and XP the picture illustrates one of the differences – that XP addresses software development in particular (most practices are directly related to coding) while Scrum has a wider scope (and is therefore automatically more vague). I sometimes draw a TDD ring inside XP for example.

    I use that picture when explaining that Lean and Scrum and XP fit nicely together and complement each other because they focus on different scopes.

    The picture is of course extremely crude and generalizing, but still useful when explaining the approximate differences between the buzzwords.

    So no, XP is certainly not a subset of Scrum :o)

  3. Hi Henrik,

    Thank your for your kind answer and your attempt to explain what you are getting at. I think I understand your explanation but I still think the picture is misleading, if not even plain wrong. It is stupid to debate a picture, but I think that to debate what the picture represents could be interesting.

    Here is what you wrote as your explanation of the picture:
    <blockquote>’In that picture bigger ring mean more generic, wider scope, higher level, more widely applicable. Smaller ring means more concrete, more specific to a certain domain, lower level, more meat.'</blockquote>

    1st observation: Things within other things imply containment and subsets to me, not abstraction level or generality. This is why I find the visualization misleading.

    2nd observation: It is quite easy to find counter-indications to your explanations. Here are three that I can think of (I am sure there are more):
    <ol>
    <li>1. Lean development is aimed at product development. Scrum, as you know, can really be used in any situation where you have changing (or even unknown) needs and want to maximize your ROI. Hence, Scrum can be used to control companies and plan weddings.  Therefore, Scrum is more widely applicable than Lean.</li>
    <li>2. Like Tobias says so well in the previous comment: Agile isn’t really anything in this picture. It is an over-arching statement of values and principles. You are comparing apples and oranges, I think.</li>
    <li>3. XP, your innermost circle, contains explicit values, principles and practices in line with, or even translated from, Lean thinking, your outermost circle. Would that not make it more abstract and higher level? Does that fact that XP contains more "meat" make it less abstract? It is hard to tell, isn’t it?</li>
    </ol>

    3rd observation: It is interesting that you present so many alternative explanations. May I suggest that this is trying to tell you something about your picture?

    I understand that you are just trying to put some buzzwords into context, but it is also important to give students accurate basic information on which they can build there model of the world, don’t you agree?

    Since you are a master of slide production I challenge you to create a better picture of the relationship between these important terms.

    All the best, Joakim

  4. Thanks again Jocke. I’ll think about this and see if I can come up with a better picture. If anybody knows any other attempts at visualizing these concepts let me know.

    My hypothesis is that any attempt to combine and relate the concepts of Lean and Agile and Scrum and XP will be subjective and therefore subject to debate and misinterpretation. But that’s no excuse not to keep trying to find a better visualization. So let’s help each other out :o)

  5. This is how I see it: XP is development-focussed and essential to everything related to developing good software. Lean is process-focused and good for dealing with complicated environments and problems, good for getting a handle on your problems and becoming more efficient. Agile isn’t really anything, and Scrum when fully understood is a spirit, a way of being that wraps all of this. It is person-centric and when wholly embraced will create the right environment for effective people to create innovative products.

    For those that think that Scrum is a project management process or some sort of methodology, I’d say you are missing the point.

    Of course, just my opinion, my way of looking at this :]

  6. I agree with your pic in the context of Software Development. It’s very hard for me to follow the debate(comments). The impotent is to know where the buzz position is. The position you describe, give me good understanding from where I should learn. It’s hard for me to learn about Lean without XP habits understanding.

  7. Hi Henrik,

    First thanks for sharing so much useful information with the wider community. I think I get where you’re trying to come from with your diagram.

    Would it help if you removed the Agile circle and made it an Agile ‘square’ or ‘box’ containing the other three circles (XP, Scrum, Lean).?

    I think your diagram has more value explaining the concepts to management than it does agile practitioners. It communicates to me as a kind of an organisational representation on how these techniques/philosophies sit within the enterprise.

    Thanks again for your brilliant work

    Andrew

Leave a Reply to Software Development India Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.