Anything But Waterfall

OK - I guess I feel compelled to defend BDUF - in certain circumstances. The company at which I work produces software for safety critical embedded systems. We have verification teams separated from design/implementation teams, not merely because we want to, but because we have to - you need to ensure independence of verification from implementation. So…how are you going to communicate the intent of a piece of software without a design? Look at the code? Don’t think so. In addition, when you have to demonstrate traceability from customer requirements down to code, you need intermediate forms to facilitate that.

Still, we do do iterative delivery (always have done, really), so that makes us agile-ish :slight_smile:

And we’re big on unit testing - so much so that a Paul Hogan paraphrase is needed when looking at TDD - ‘you call that unit testing’? :slight_smile:

And when I write non safety critical software (which is most of the time), BDUF goes out the window. Do as much design as is needed to get you started. Leave it that.