One of the major points of disagreement about software relates to how much up front design to do. People are very polarised as to when they should do design and how much they should do. From experience of working with software teams, the views basically break down like this.
- We need to do all of the software architecture up front, before we start coding features.
- Software architecture doesn't need to be done up front; we'll evolve it as we progress.
- Meh, we don't need to do software architecture, we have an excellent team.
These different views do raise an interesting question, how much architecture do you need to do up front?
"
(Via Coding the Architecture.)