Given the various methodical approaches to development, can we get some heuristics together on which ones are appropriate in what circumstances, e.g.
- case-driven development
- model-driven development
- behavior-driven development
- test-driven development
- Rational Unified Process
- Jackson Structured Design
- et al
No method is too old, specialized, or "out there" ;-)
Please list only one method per answer, and include the situations in which it is most appropriate and least appropriate. For example:
Method
Hacking
Most Appropriate
- When coding alone on something that doesn't really matter
- When experimenting to figure out how something really works, as opposed to:
- how you think it works
- the doc says it works
- google says it works
- it ought to work
Least Appropriate
- When writing production code
- When working in a team environment
Note: Looking for specifics on each method, not general advice. Thank you.