Eat Your Failure: Agile is Failure Absorbent

(This column is posted at www.StevenSavage.com, Steve’s LinkedIn, and Steve’s Tumblr)

(My continuing “Agile Life” column, where I use Scrum for a more balanced and productive life continues).
So let’s be honest, May was not my greatest month. Sure, I got things done but plotting my first novel took over twice the time expected and isn’t done yet. I only wrote 84% of what I wanted for the minibooks. I had to hold off many small project due to time an illness, business, and allergies.

I honestly felt bad. I had failed. That was bad, right?

Wrong. Agile methods are about responding to change and learning. They are not failure avoidant, they are failure absorbent; failure is expected, learned from, and worked into the process.

OK I still feel bad, but I don’t have to – that’s not Agile – it’s just my own neuroses. I’m not used to absorbing failure – nor are many other people or groups.

Most organizations are failure avoidant – and because of that they fail even more. Nothing ensures learning slowly, having neurotic relations, continuing the blame game, and adapting poorly than being failure avoidant. I’m sure you’ve been in failure avoidant situations – it’s bad at work and worse with yourself.

Failure absorbency is a major part of Agile philosophy and methods. The goal of Agile is to be able to respond quickly, using communication and responsiveness to change to allow you to deliver work faster and better. Agile expects failure. Agile practices eat failure and use it to become stronger.

The only thing to feel bad about is not responding to failure appropriately. Though I suppose that’s a separate failure you can then respond appropriately too.

When you fail in Agile you should review, learn, and figure out how to adapt and do better. It’s not what you did wrong, it’s what you learned and how you adapt. Eat your failure.

So what did I learn:

  • TOO MANY ANKLEBITERS: I assigned too many small tasks that I didn’t need or I should have done to “clear the plate.”
  • TIMESHIFTING:Some of these tasks could have been timeshifted better – there’ a few cases where I just figured I’d get to them.
  • TOO PACKED: I had no room for disruption baked into my plans despite having so much going on yet having so much free time.
  • POOR PLANNING DUE TO OVERCONFIDENCE: I didn’t plan out the novel plotting well at all as noted; it may be this novel is going to be far less timebound and far more about iteration.
  • OVERCOMMITMENT: The Novel didn’t just take longer, I had to literally “back my mind out” of work that held up my imagination. It’s like writing code before the design research is done – an then you don’t want to change the code.

Now how do I deal with this?

  • Review tasks better to make sure I really need to do them – success if often measured in what’s not done or needed.
  • For truly new project, like my novel, watch my time estimates on early stages and give myself space to do them write. Also, don’t overdesign/overdetail or not back out.
  • Get a better sense of my velocity so I don’t overload myself (which I think I’ll have end of this month).
  • Better pace myself, which is part of velocity.
  • It’s probably better to find I have spare time in a sprint then to overload myself – If I have spare time I can start taking items out of my backlog. Again focus on what’s needed.
  • I’ll review going to two week sprints in July – it’d make me much more adaptable.  However I think long term my life will evolve from Agile to Kanban.
  • I still run too many projects at once – the Minibooks being a classic example of trying to do them over time, and that writing can just turn into a distraction.

So that’s how I adsorb failure – getting better.

This has made me even rethink how I’ve handled failure in my life. I tend to avoid it – then embrace it when it happens. Maybe I could just be a bit less avoidant early on.

– Steve

My Agile Life: Breaking It Down So It Works Together

(This column is posted at www.StevenSavage.com, Steve’s LinkedIn, and Steve’s Tumblr)

(My continuing “Agile Life” column, where I use Scrum for a more life).

One of the challenges of doing any work is that things we want to get done can conflict with each other, are hard to schedule, can only be done at certain times, etc. That makes anything, from delivering software to my own attempts to organize my life a bit more challenging.

What I found is that when you figure out the things you want to do – the stories and tasks – don’t just design them or break them down in a vacuum. Design them so they’re as easy to do as possible, hard to block or disrupt, and of a size where you can have a good chance to complete them in a reasonable time. This way you can maximize value, deliver quicker, and be disrupted less – and even when you are disrupted, you can switch priorities easier.

Here’s a few examples:

  • You’ve got to buy gifts for Christmas. You could have a simple Story “buy gifts” and “order for everyone on the list” but there’s a lot that could go wrong – lack of gifts, delays, a need for research, and that’s one big block-of-work. If you make a task for each person you can do them in order in one go – but if there’s any delays or unavailable items, you can take care of some of the orders a different way. This lets you timeshift or adapt (and is good policy).
  • You’ve got a massive art project to do. You prefer to do it in one 8 hour go, and you really can’t subdivide it without losing your mojo. You make sure your other tasks are broken down so you can easily fit them around the needed 8 hour block, and get the important stuff done early. (By the way, in my experience the Big Block does not always work, so be careful)
  • You plan to deliver a book chapter for a technical manual to an editor. It’s going to be a hefty chapter and require some research. You decide to make each section its own story.  This allows you to adapt (by doing them out of order), get them to the editor quicker (thus avoiding lots of WIP), and gives you a good sense of organization.

A rule I found helps is this: break down stories so that they don’t just deliver value, but require as few tasks as possible, and those tasks are as small as you can reasonably make them.

This will mean more stories, but stick with me here.

Stories deliver value. If you can break down stories into the smallest chunk of actual value, then you can deliver (and evaluate) that value faster. In turn because you are working on smaller pieces, you can shift them around, scheduled them, deal with interruptions by working on something else, etc. This also lets you focus better – and change focus if needed.

So if you’ve got lots of small stories, it’s probably a good sign. Sure there may be some big ones, but if a lot are small then you can move them around while you deal with the big ones.
– Steve