Designing For Volatality
- Team Culture
- High Trust
- High Autonomy
- Stay close to users
- Cross functional teams with complete accountability - a.k.a. no EXPLICIT qa.
- Spotify Example
Agile Culture
- No Estimates
- How long does it take to build a warp-drive?
- No estimates? Then how does management get visibility?
- Estimates vs Projections
- Backlog Cumulative Flow Diagrams
- Velocity - measure of institutional velocity -> ideal time/actual time.
- Speaker doesn't like Scrum.
Agile Process
- Get involved early
- Model using Activity Diagrams - Often multiple user stories can be part of a single activity diagram.
- Identify nouns (state) and verbs (behaviour)
- Worry about the arrows between the classes more than the classes
- Defer class internals related stuff till actual implementation.
- Use TDD/BDD to design your interface
User Stories to Design
- Use Static Languages to scale complexity
- Domain should be reflected in code - code as documentation - ubiquitous language between business and engineering.
- Unit of Development work should be vertically sliced rather than horizontally.
- Don't worry about reusability at the domain level. Instead worry about reusability at the implementation level.
- SOLID principles
- S - Single Responsibility
- O - Open/Close
- L - Liskov
- I - Interface Segregation
- D- Dependency Inversion
Down to Code
- User Story Mapping - Jeff Patton
- Drive - Dan Pink
Books
Designing For Volatality
By Swarup Karavadi
Designing For Volatality
- 833