During my lectures on “Refactoring & Design” I am frequently amazed to hear the following ideas:
“Doesn’t Design contradict Agile? Isn’t Agile about gaining speed, while Design about gaining bureaucracy?” - some ask.
“Why bother with Design? Eventually It’s impossible to do any design when using Agile methods, like TDD” - others continue.
I often compare the aforementioned questions to “Shooting without Aiming”. It won’t occur to shoot at a target without first aiming at it. The rule is true, especially when the time is short and every shot counts; You will spend an extra minute just to aim it well!
Shooting after Aiming is “life saving”!
So, How does it even come to any mind to code without thinking(thinking=Design)?
Please, don’t take my word on it. See what Robert C. Martin has to say about The Scatology of Agile Architecture. Robert C. Martin knows a thing or two about Agile Development. After all, he was the originator of the meeting that led up to The Agile Manifesto.