I think I can unite the Agile and Waterfall communities united around a common software engineering approach.
I give you "Big Design As Late As Possible" (BDALAP).
BDALAP recognises that certain design decisions are a) complex and b) have far reaching implications. They therefore require careful consideration and the use of such techniques as modeling and documentation. However we really would like to understand more about the problem and issues we are trying to solve first before we commit ourselves to a significant decision
A good example of this is the design of a database table schema which has implications all over a system and impacts how the system may be extended in the future. Other examples including communication of cooperating processes.
So in the first instance we can dummy them using such things as program data structures (it's easier to modify the code than a RDBMs database schema). Later on an effective data schema can be created based on a more complete understanding of the system under discussion
I realise there is a bit of hand waving going on here and it's not exactly original, but that does not need to be a problem or stop me becoming the BDALAP pundit.
I believe the usual way to implement this type of thing:
That should get me on the gravy train -- anyone else want to come for the ride?
- The BDALAP website and blog
- A few journal articles on BDALAP success stories (must show that BDALAP was the sole reason for success and how it overcame ALL obstacles)
- A BDALAP conference (I'd like somewhere pleasant -- Nice in France?)
- A BDALAP consultancy that can charge the same rates as an Actuary
- The BDALAP patterns book
- The BDALAP anti-patterns book