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. Changes are inevitable and will happen. So we’d better be prepared to them. Extensive testing (or test-driven development) is one way to be protected against the regression. Another way is to implement some trial spikes before the start of the major coding and to ask an experienced architect to help with building the initial architecture. It doesn’t mean that this initial architecture should be frozen – the architectÃ¢â‚¬â„¢s experience just helps to skip several first failure points.