Forces in Software: Understanding the Physics of Software Evolution

YOW! Melbourne 2025
Wednesday Dec 3
09:00 –
17:00
Cliftons Melbourne, Level 1, 440 Collins Street, Melbourne, VIC 3000
AUD $ 900.00
Register for this masterclass

Why does software seem to drift toward complexity no matter how carefully we build it? What unseen forces shape our systems over time?

In this intensive one-day workshop, Michael Feathers explores the fundamental forces that determine how software changes over time and why systems take the forms they do. You’ll walk away with actionable insights and practical strategies for steering long-lived systems toward sustainable growth rather than inevitable decay.

This workshop dives into the forces—often invisible, yet always present—that influence the structure, behavior, and longevity of software systems. You’ll learn to recognize the principles that drive software evolution and work with these dynamics in your own codebase, including:

  • Entropic Forces: Why systems naturally move toward disorder and complexity without active intervention
  • Conway's Law: How organizational communication structures inevitably become reflected in code architecture
  • Hyrum's Law: The inevitable dependence on implementation details despite API contracts
  • Complexity Attractors: Identifying the patterns that draw complexity into specific areas of systems
  • Resistance and Flow: Understanding how information and change propagate through codebases
  • Cohesive Forces: The elements that bind code together and resist decomposition
  • Evolutionary Pressure: How external business demands shape internal technical structures

Through hands-on exercises, case studies, and collaborative analysis, you’ll learn to recognize these forces in your own systems and develop strategies to work with them rather than against them. The workshop provides practical techniques for harnessing these forces to guide systems toward sustainable evolution rather than decay.

Ideal for senior developers, architects, and technical leaders who are responsible for long-lived systems, this workshop goes beyond simple patterns and practices to explore the deeper dynamics that govern software development at scale. Participants will leave with a new mental model for understanding why software behaves the way it does and how to navigate its natural tendencies.