I'm no expert on the Agile development process, but I love the concept - - that every small piece of work that is done in the development stage should yield a usable function. I like this approach to customer experience too, but give me a sec to explain how I see the connection.
I was trying to explain about Agile development to someone recently, who likened it to the auto assembly process. But it's not, really.
With auto assembly, you know what the finished car is supposed to look like. You have a detailed plan. You divide that plan up into small pieces of efficient manufacturing, and assemble all the pieces. The leather steering wheel cover, the aluminum rims, the radio and the formed steel -- all come together in an amazing dance of assembly like a ballet.
If you were building a car using agile methods, you wouldn't even consider the radio in the early going. You'd be thinking about the simplest moving vehicle you could get on the road. It wouldn't have a roof in the first iteration. It would have some kind of propulsion system, and it would have wheels, and something to sit on.
As you kept building the agile car, you would build better bits on it as you understood the user needs more perfectly. And the user needs -- and their early experience -- would help you figure out what to add next.
This method is actually the way people used to build homes -- and still do in some places. You start with one room, walls and a roof. You might cook outside if the climate permitted. Then you add a second room. You might know you will want a second story someday, so you make the foundation strong enough for that, even though you have no immediate plans.
Coming back to customer experience...
Organizations that try to "get it right" inevitably get stuck on the plan. It's complicated, and there are a lot of moving parts. They keep driving the old car waiting for the new and perfect blueprints.
A better method involves rapid prototyping. Here are some of the principles you use:
- Pick a few things to change, and change them. Not everywhere, but in a few locations.(The prototypes)
- Accept that the plan will have giant holes in it until people on the ground are actually involved
- Involve people on the ground in a collaborative way to develop solutions and refine the bare bones outline
- Insist that every day you make a step forward, no matter how small, towards the vision
- Involve customers. Watch how they are reacting to the changes. Ask what they think. Bring their ideas into the process
- Roll out the good ideas into your network as you have them -- don't wait for the "branch/store of the future" to be ready -- evolve
- Recognize that you are never done where customer experience is concerned. The innovations of today will be the buggy whips of tomorrow.
Other views on this topic
When I went looking for illustrative images for this post, I came across some other views on this topic. If you read a few, you will see that there are arguments for both approaches.
The Agile Manifesto - some interesting principles (Their association is here: Agile Alliance)
Rapid Application Development: Fast Car No Map and 50 Laps to a “Who House”
Makes the case for having a plan. Some of the comments are very interesting.
Ten Steps to Organizing a Bar Camp -- this is the Agile method applied to conferences. Compare this to the traditional conference organization method with lots of committees, speaker deadlines months in advance of the event, etc.
Iterative Development - a bit heavy going, but has interesting graphs that illustrate the ideas
And the photo came from here: AHS American Home Shield Warranties