- 1. Try and understand the project
- 2.Come up with a high-level design
-
3.Test your design against good design principles.
- Do you have any assumptions that are really wide spread
- Are the components of your design loosely coupled?
- Is the system able to evolve over time?
- Can you upgrade it in place?
- 4.Work out what parts of the system are the most important
- 5.Decide in advance what and how you will react when
- 6. Make sure the tradeoffs that you do are worth it
- 7. Remember how the system should be loosely coupled?
- Build the most important things
- Finally – build a thin slice through the entire project ASAP