evolutionary architecture and the Role of DDD

Abstract

How is long-term planning possible under constant change? An evolutionary architecture supports guided incremental change across multiple dimensions:

  • 2 aspects of incremental change: application & operations
  • dimensions: *ilities

Techniques:

  • DDD
    • Our responsibility to help business people understand the technology consequences of the decisions that they are making.
    • Having the right language to do that is crucial.
    • Ubiquitous language
  • database refactoring
    • Data migration is hard.
  • Choreography
    • A choreograph system gives you more flexibility to move your boxes around because you don’t have to change the orchestrator every time you want to move the boxes around.
    • You don’t have to understand all the different impacts in the orchestrator are going to be if you move your box around.
  • Contract testing
    • Need to have tests break and talk only to the right people, instead of having lots of meeting for contract changes.
  • Continuous Delivery
    • You are confident you know you can roll back.
  • Platform for Experimentation
  • Culture for Experimentation
  • Governance
  • Fitness function driven
  • Outcomes not implementations