20. Characteristics
• Ability to evolve over time
• Separation of concerns
• Use of standard languages
• Minimising of dependencies
21. Characteristics
• Ability to evolve over time
• Separation of concerns
• Use of standard languages
• Minimising of dependencies
• Simple, readable code
22. Characteristics
• Ability to evolve over time
• Separation of concerns
• Use of standard languages
• Minimising of dependencies
• Simple, readable code
• Fault-tolerance and fast recovery
24. Characteristics
• Ability to evolve over time
• Separation of concerns
• Use of standard languages
• Minimising of dependencies
• Simple, readable code
• Fault-tolerance and fast recovery
38. Characteristics
• Ability to evolve over time
• Separation of concerns
• Use of standard languages
• Minimising of dependencies
• Simple, readable code
• Fault-tolerance and fast recovery
39. Best practices
• Coding standards and code reviews
• Static analysis tools
• Defensive programming
• Property-based testing
• The Campsite Rule
• Documentation