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

  • 761