Imagine what would happen if you went to the gym every day, five days a week, 8 hours a day for years and years but only exercised your left bicep muscle. Your left arm would be huge in proportion to the rest of your body.
This is what we do as developers. We exercise the visualization muscle and we forget that we are very good at visualizing. We have to be good visualizes. We build models in the virtual domain of computers and in order to do that we have to be able to visualize what we are modeling down to the smallest detail.
Sometimes we forget that our customers have a difficult time visualizing what they want. We think they should know. But if visualizing a system is difficult for us it must be much more difficult for them. How can we expect them to know exactly what they want?
We don’t know exactly what in many areas of life we. But often we know what we want and what we don’t want when we see it. This is why short iterations and continuous customer involvement is so important to agility.
In agility the customer is our partner and we discover together the best way to build a system. It is okay to let the customer change their mind as long as we build software that can easily change. Do you know how to build software that can easily change? Let me show you in my Software Developer Essentials class.