Building Evolutionary Architectures Hands-on


Duration: 180 mins
Neal Ford
Software Architect, ThoughtWorks

An evolutionary architecture supports incremental, guided change across multiple dimensions.

For many years, software architecture was described as the “parts that are hard to change later”. But then microservices showed that if architects build evolvability into the architecture, change becomes easier. This workshop, based on recent book, investigates the family of software architectures that support evolutionary change, along with how to build evolvable systems. Understanding how to evolve architecture requires understanding how different parts of architecture interact; I describe how to achieve appropriate coupling between components and services. Incremental change is critical for the mechanics of evolution; I cover how to build engineering and DevOps practices to support continuous change. Uncontrolled evolution leads to undesirable side effects; I cover how fitness functions build protective, testable scaffolding around critical parts to guide the architecture as it evolves.

The software development ecosystem exists in a state of dynamic equilibrium, where any new tool, framework, or technique leads to disruption and the establishment of a new equilibrium. Predictability is impossible when the foundation architects plan against changes constantly in unexpected ways. Instead, prefer evolvability over predictability. This hands-on workshop provides a high-level overview of a different way to think about software architecture.

Outline:

  • Evolutionary Architecture Defined
  • Fitness Functions
  • Exercise: Fitness Function Katas
  • Engineering Incremental change
  • Architectural Characteristics
  • Exercise: determine appropriate characteristics
  • Identifying Architectural Patterns
  • Exercise: components and patterns
  • Evaluating the Evolvability of Existing Architecture Styles
  • Retrofitting Existing Architectures
  • Building Evolvable Architectures
  • Automating Governance

You may also be interested in

50 mins
Level-up Your DevOps with GitHub Actions and Kubernetes

Are you looking to rapidly deploy your content? Are Docker containers in your future? Come for this demo-only presentation where...

180 mins
Cloud Native Architecture

This two part Cloud Native Architecture workship will cover: Part 1: Cloud-Native Fundamentals: An Introduction to 12-Factor Applications It seems like...

25 mins
Monolith Thick Client Apps to Microservices! Best Practices

In order to make use of the scalable hardware capabilities and connectivity, there is a growing need to decouple monolithic...

25 mins
Consumer Banking in Cloud

Join this talk to understand Goldman Sachs' Marcus product offering to its consumers and how services and products are deployed...

180 mins
Knative Workshop - Running Serverless Apps on Kubernetes

Over the past several years Google has open sourced several cloud-native technologies abstracting away more and more underlying infrastructure into...

50 mins
30 Golden Rules of Deep Learning Performance

“Watching paint dry is faster than training my deep learning model.” “If only I had ten more GPUs, I could...