In a recent talk on architecture vs. agile development, Philippe Kruchten presented a simple but compelling message:
Software Architecture is about anticipation of what is to come.
Agile Development is about adaptation in response to change.
These two often seem to be at odds, but they are not. Anticipation and adaptation are not simply two principles at opposite ends of a scale. I would rather think of them as two sides of the same coin. You can only look at one side at the same time. But they come together, as a pair. You cannot have one without the other, or you will have a bad coin. Or a bad project...
Bookmark/Search this post with:
Anssi Piirainen raises the idea about the need to be good at being wrong in order to create good software. The core idea is good - you have to be ready that the first implementations might later look not very well. However, Anssi also presents the micro case study describing the problems with the "just-in-time design" approach. The changes required appeared to be unexpectedly difficult to not that experienced programmers.
Just-in-time design is not a silver bullet. It is just yet another good tool that can be rather useless until it is used with the correct support practices.
Bookmark/Search this post with: