Showing posts with label lean. Show all posts
Showing posts with label lean. Show all posts

Wednesday, August 19, 2009

Do you design your work?

close-up of persons hands demonstrating on a lit up blueprint
Happily, I was finally able to attend the Lean Software Austin group's meeting this past Monday. Scott Bellware was leading the discussion on Kanban and applying it to software development. Unlike some groups where the meeting is like a lecture, this was very participatory with lots of dialog from different folks. Maybe this is because the group is still comparatively small, or since the area is still new so everyone is willing to share and try to learn from each other...no one is worried about feeling like they don't do it "right" (yet).

One of the facets of Kanban that caused interesting discussion was the idea that work units should be the same size as they pass through the work flow. This is the ideal since it promotes smoother flow and is necessary in order for the Work In Progress (WIP) limits to be effective. Can it always happen? Of course not, but could it happen more often if we tried. I believe it was Scott who said, "Design the work and design the implementation".

After the initial revulsion to Big Design Up Front (BDUF), we've come to the understanding that you don't ditch design (of the implementation) altogether but you design appropriately. That the further away something is from being implemented, the lower the fidelity of the design. In a similar way, in the Scrum world, there's also the understanding that estimates of size get more accurate for a user story as you get closer to implementation. And there is some other "design of the work", but I think a lot of it is accidental and could be improved if it was done explicitly. For example, after sitting through a few interminably long poker planning meetings, Scrum teams, or part of the team-usually the more senior members, start to sit down with the Product Owner before the planning session to "groom" or "prep" the top part of the backlog. These sessions take a look at those stories that will likely be included in the next sprint and make sure there is at least enough detail or understanding for the team to be able to have the conversation during planning. Often, the result of these sessions is the Product Owner needs to further refine his thoughts or gather more information before planning.

One benefit to being more intentional about designing our work would be gaining more learning about how we did in retrospect. Teams spend so much time in planning doing story point estimation, but rarely have I seen them spend much effort at the end of an iteration looking at how they did on those estimates so they can be more consistent and more accurate in the future. In a Lean environment, inaccuracies in sizing the work would be apparent sooner since work that is larger than the standard will slow down the flow- starving the downstream parts and backing up the upstream ones. Just like designing the implementation, we want to achieve a balance to have "good enough" design of the work. For estimates of size, that might mean t-shirt sizes (Small, Medium, Large) for work that is some ways off and more detailed estimates as the work comes closer to being taken on.

Another benefit to designing the work, beyond the area of sizing, is it gives us a chance to recognize gaps in our skill set by looking ahead, or special circumstances that might apply. The larger the gap, the earlier we should look out how we're going to fill it, maybe by bringing in a specialist on a contract basis so we can learn from her, getting some training, doing early experiments or some other option. Special circumstances might be recognizing that a piece of work might be better done before someone on the team leaves for vacation. So, the work could be moved up in the order to take advantage of his special knowledge or skills.

How much time does your team spend designing your work? How does this compare with the effort in designing the implementation?

For those of you in Austin- hope you make it to the September Lean Software Austin meeting!

Wednesday, August 12, 2009

Intro #1: What School Are You?

I always like when there is some introductory material on a blog- it gives you a sense of where someone's coming from and can help you understand their perspective. I'll have a couple of these posts- I have one from my former company's blog and I'll copy it here. Not because it is so valuable it needs to be reprinted :), but I'm not sure how long Borland's "Agile Transformation" blog will remain up now that they've been bought by Micro Focus. And I think it does a pretty good job of presenting where I'm coming from on process issues. So, here is "What School Are You?" (originally published at: http://borland.typepad.com/agile_transformation/2008/10/what-school-are.html) :

"I kicked around several ideas for an introductory post, trying to balance giving some personal background with something of broader interest....Trying to balance answering "Who am I?" for you, without being vain enough for you to instead ask "Who does this guy think he is?" Asking the question in the title gives me a good balance.

One of the ideas that has really helped me on understanding "Agile Transformations", both in myself and in teams that I see and work with is the concept of "shuhari", which defines the stages of mastering Japanese martial arts. Shu is the level when you start and are loyal to the "school" you are learning from- you're following the practices by the book. Ha is when you are understanding more of the principles behind the practices so you can go beyond the practices you learned in your school- how to extend them to situations not originally envisioned or what to do when a practice used to work or what ideas from another school you'd like to mix in. I get these two, but Ri? Ri is defined as transcendence when all moves are natural. I'll let you know if I experience this transcendence! In my book, it's not too terribly important where you start since people around you will get to the point that they're pulling in ideas from other schools. Or they'll be dogmatically stuck to the starting school and you won't want to hang around them.

So, what "school" are you when it comes to development and how to improve? For me, I started out seeing many different approaches to doing things better- some measurement driven, some from a maturity model, some from a vendor. It wasn't until we started using Scrum inside Borland that I saw something that I really believed in - the other results I saw from the others were just too mixed. Sure, Scrum's results are mixed but the experiences I've seen are much more on the positive side of the ledger. So, would I say I'm of the Scrum school? Or even the Schwaber Scrum school since that is the first book I had? Or the Mike Cohn Scrum school since he was the trainer in my first ScrumMaster training?

Nope. None of the above. While appreciating Scrum, serving as a ScrumMaster and seeing the way it benefits teams, I was exploring other areas of the Agile world and finding other approaches that resonate more with me. I haven't done hardcore XP. I'd like to say I'm of the Real Options school, but I'm not sure I could pass the entrance exam. The area that resonates the most for me is Lean, whether described by the Poppendiecks, David Anderson or Corey Ladas and crew. My personal exploration and experience with these schools of thought will be one of the many areas I cover in this blog.

So I'm interested to know, what school are you? "

(Originally p