in reply to Understanding Chaos
- Write tests.
- Refactor a tiny piece of code.
- Verify tests pass.
- Go to 2.
UML and the like are for managers. If any given piece is too big to hold in your hold, that means the piece is too big.
My criteria for good software:
- Does it work?
- Can someone else come in, make a change, and be reasonably certain no bugs were introduced?