- First Thing to Consider
- what is the goal? ask why we are doing it?
- does it bring value to business?
- use ‘boring’ technology and architecture!
- Design Steps and Goals
- functional requirements
- non-functional requirements
- reliable
- maintainable and operable (sustainable delivery of valuable, working
software)
- scalable, performance
- core entities (DATA) and API Interfaces
- implmentations
- Design it three times
- write down three designs, each with pros and cons, then perhaps
there will appear more designs with combined pros and less cons
- Architect great design rather than just working codes, then writing
comments should be fun since that’s how you identify the best
design
- Reduce complexity by adding or removing abstraction
- Start with writing documentation, ask for feedbacks as early as
possible
- Designing new process that is easy to sell to the Team!
- familiar technology
- easy to pick up
- improves dev experience, should improve the overall developer
experience rather than damaging developer experience