Building Evolutionary Architectures Hands-on


3rd July 2020
Speaker Date: 2nd July 2020
Speaker Time: CDT: 19:00-22:30
Attendee Date: 3rd July 2020
Attendee Time: IST: 05:30-09:00 | SGT: 08:00-11:30 | AEST: 10:00-13:30
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

6th, August

Time
Kube Restaurant

You've been to a restaurant before, right? Have you noticed how everything is structured? Everyone has a job and there...

7th, August

Time
Deconstructing a Monolith

Starting with an existing monolithic e-commerce application, you will learn how to effectively apply and use different tools and projects...

6th, August

Time
Quality on Cloud 9: 9 Aspects of Delivering a Great Product on Cloud

Proliferation of microservices, cloud infrastructure and agile methodologies do not ensure a quality product, successful customer interactions or a faster...

6th, August

Time
From my Machine to the Cloud with Cloud-Native Tools

With great scalability comes great responsibility. Individual deployments, updatability and development of microservices comes with advantages as well as challenges....

3rd, September

Time
Flying through Cloud Native (CNCF)

The maturing of industry projects and tools around cloud development and administration has led to the formation of the Cloud...

6th, August

Time
Principles for Building MicroServices

MicroServices, that is the new rage. Many companies want to split their monoliths into microservices. With every single technology, the...