In my previous post, I outlined the issue of too flexible approach towards the customer. In the example, I provided you were presented as a painter and me as your customer. A few changes to my ideas regarding the colour of the room resulted in you spending 3 more hours to complete the job and spending additional 10$. Not very good. On the other hand, not too harmful so what’s a big deal? Unfortunately in the real world, where money matters – this is a very huge one.
A piece of paper rescue!
In the example with the painter, you agreed to perform a specific job. What would happen if, instead of getting round to do the job straight away, you decided to sign a contract with me? In this contract, you would state that in 8 hours you will paint my house and that you will cover the costs of the paint. Probably, I would be amused by all this hassle of signing piles of paperwork to get one room painted. In Agile development, a piece of paper is not always your best friend. Sometimes you just lose the agility moving the focus from the goal to the process. This is breaking the main rule of Agile.
Thinking about complexity
Instead of trying to put everything on paper, you could do something more intelligent. Think about me, about the way how I cope with you. From this small analysis, you could conclude that I am not a strict guy and that I am not sure what colour I need for my room. Knowing that you could ask only one question which could solve later issues:
You won’t change your mind about the colour later on, will you?
If I say “well, I am not sure”, then you could say “okay, no big deal. I will take some colour samples and we will choose the best one”. I this way you predicted the change, or in other words – you have minimized the risk of the colour change. In my previous example, this issue caused a 2 hours delay. You saved it by asking only one question. The nice result I guess.
KISS (Keep it Simple Stupid)
You have solved one issue – the choice of colour. Unfortunately, you forgot about the moulding that will probably require a different treatment. You thought that the job is simple stupid but did you really check if everything is clear? Did you ask about the moulding? The agile approach puts emphasis on proper interaction, communication. You could have asked me about the moulding. I was certain that I hired a professional painter, but then you painted something the wrong colour. If you were a PRO painter then you would know it. Agile approach advises you to talk more, ask even the most ridiculous questions, but for the sake of the project – just do it! Make your work simple.
To sum up, in order to properly handle customers you should minimize the risk of changes in requests (requirements) by simply asking the question about the risk of change. Secondly, you should make sure that the job is clearly defined before you actually start it. It is the most frustrating job to redo the things a few times only because you did not care to ask.