Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Fighting Software Entropy 2024

Stewart Gleadow
May 30, 2024
9

Fighting Software Entropy 2024

Building software is the easy part. Evolving and maintaining it is the hard part.

Preferred approaches change, team members leave, tech debt accumulates, dependencies date, ownership changes, and everyone has a lot of other work on their plate. Software decay is a very real and endemic problem for us all. So how can you break from the cycle of build, atrophy, replatform, repeat?

Join us to hear about how REA Group are fighting software entropy - including measurement, process, company wide objectives, and ultimately lowering total cost of ownership and cognitive load through our platform product strategy.

Stewart Gleadow

May 30, 2024
Tweet

Transcript

  1. REA Group REA Group is a leading global digital business

    changing the way the world experiences property • 3000+ employees • Operations across 3 continents • Market-leading brands AUSTRALIA
  2. Physics Lesson: What is entropy? Entropy, as described in the

    2nd Law of Thermodynamics • The measure of disorder of a system. Characteristics of entropy: • Systems inherently move to disorder. • The more disorder that is present, the less energy is available to do work. Rudolf Clausius
  3. YOW! Lesson: What is software entropy? Entropy, as described by

    Stew and Alison • The measure of disorder in software. Characteristics of software entropy: • Software inherently moves to disorder. • The more disorder that is present, the less energy is available to do work. Stewart Gleadow Alison Rosewarne Photo by Markus Spiske on Unsplash
  4. Structured software has lower entropy "...high-performing teams were more likely

    to have loosely coupled architectures.” Source: State of DevOps Report, 2017. It’s our software architecture that defines the modularity and interaction between systems.
  5. Why does software decay? Jaye Haych (unsplash.com) Compromises are made

    Shared understanding is lost Dependencies date Approaches change
  6. Confirmed by IBM researchers Meir M Lehman & Laszlo Belady

    [Some of] The laws of software evolution Continuing Change Increasing Complexity Declining Quality Continuing Growth
  7. “With most software systems, it becomes harder to add new

    features over time.” Martin Fowler, 2019 Software entropy affects internal quality Clean system Time to market Crufty system Time to market
  8. Do you agree with the following statement? “I would like

    to tear up all of our organization’s core systems.” Why should you care about deteriorating structure and quality? Source: Digital Decoupling: U.S. Federal Survey Results, Accenture, 2018. 81% 17%
  9. More software increases entropy Shifted to an internal platform strategy

    Adopting microservices Company really started scaling Number of systems Ongoing growth
  10. Decreasing entropy is possible … in open systems Isolated System

    Matter exchange Open System Matter exchange Energy exchange
  11. How can we fight software entropy? 1. Define the structure

    2. Add the energy Photo by Jaime Spaniol on Unsplash
  12. A coherent architecture is unlikely to appear without some help...

    you need principles to drive decision making Photo by Heather McKean on Unsplash
  13. Principle Name What – a short explanation Why – articulates

    the value In Practice • Examples of how this shows up • Aiming to simplify adoption
  14. Constant cleaning is part of work well done. Incremental improvement,

    no matter how small, adds up. This is a healthy habit. • Add or improve documentation. • Fix static analysis violations. • Increase test coverage. • Tune monitoring. Keep it clean
  15. Other mechanisms to improve architecture Jaye Haych (unsplash.com) Technology strategy

    Sensible defaults Decision making frameworks Knowledge management
  16. “People who have no choice are generally unhappy. But people

    with too many choices are almost as unhappy as those who have no choice at all.” - Ellen Ullman
  17. We also need to add energy to make our architecture

    show up. Photo by Joshua Gaunt on Unsplash
  18. Architects from across our business work together with dedicated capacity

    Chair (EM, Arch) Sponsor (CTO) Other reps Group B Member (Architect) Team Team Group C Member (Architect) Team Team Group A Member (Architect) Team Team Group F Member (Architect) Team Team Group E Member (Architect) Team Team Group D Member (Architect) Team Team
  19. Architectural alignment decreases software entropy. Principles increase consistency of decisions.

    Freedom from choice reduces cognitive load. Dedicated time is required to drive these outcomes. Architecture practice - Key takeaways Photo by Rudolf-Peter Bakker on Unsplash
  20. Remove ambiguity to be really clear about the state you

    are after Photo by Phil Hearing on Unsplash
  21. Development Can I confidently and safely make changes? Operations Can

    I support the system and confirm acceptable production behaviour? Architecture Is the design extensible and fit for purpose? Photo by Maxim Abramov on Unsplash
  22. Vulnerability Notifications (START HERE) Supported Languages Containerised Continuous Integration System

    Recovery Plan Infrastructure As Code Infrastructure Scanning Adequate Logging Logs Centrally Aggregated Support Documentation Single Source of Truth Well-defined Interface (START HERE) (START HERE) DEVELOPMENT OPERATIONS ARCHITECTURE
  23. Endorsed Language Multiple Contributors Multiple Deployments Static Analysis Continuous Deployment

    Vulnerability Notifications (START HERE) Supported Languages Containerised Continuous Integration System Recovery Plan Infrastructure As Code Infrastructure Scanning Adequate Logging Logs Centrally Aggregated Support Documentation System Recovery Tested Container Scanning Cost Optimised Single Source of Truth Well-defined Interface Architecture Documented Decisions Documented Single Responsibility (START HERE) (START HERE) DEVELOPMENT OPERATIONS ARCHITECTURE Static Security Testing Actionable Alerts Incidents Managed PI Managed APIs Catalogued Vulnerabilities Remediated
  24. All anyone asks for is a chance to work with

    pride. - W. Edwards Deming “All anyone asks for is a chance to work with pride.” - W. Edwards Deming
  25. Agree what engineering excellence means to you Radiate information and

    build shared understanding Use objective measurements as a baseline for improvement Build a culture of engineering excellence Engineering excellence - Key takeaways Photo by Rudolf-Peter Bakker on Unsplash
  26. 0 years 5 years 10 years The passage of time

    increases entropy Number of systems Most of our software is 1 to 7 years old
  27. “The deal with engineering goes like this. Product management takes

    20% of the capacity right off the table and gives this to engineering to spend as they see fit” “If you’re in really bad shape today, you might need to make this 30% or even more” Marty Cagan, 2007
  28. Custodianship: putting the energy in 1. Reducing risk 2. Paying

    down tech debt 3. Lowering total cost of ownership Rudolf Clausius 20% - Custodianship
  29. Investing in automation is highly recommended Renovate Automated dependency updates

    Buildkite Scheduled CI/CD builds Realm (Backstage) Automated systems health ratings (coming soon!)
  30. Provide automation pathway Systems Health Ratings per Quarter (All Systems

    at REA) Systems Health Improvement Plan introduced 2020 2021 2022
  31. Provide automation pathway Systems Health Improvement Plan introduced Systems Health

    Ratings per Quarter (All Systems at REA) 2020 2021 2022 2023
  32. There is a constant minimum investment required to fight software

    entropy We default to 20% of a team’s capacity and plan this carefully Automation allows you fight entropy with much less ongoing effort Broadcast system health to get buy in at all levels Continuous improvement - Key takeaways Photo by Rudolf-Peter Bakker on Unsplash
  33. 1. A mindset shift from local to company-wide tech thinking.

    2. Approaching tech platforms as long-lived products.
  34. Photo by Mourizal Zativa on Unsplash The less software you

    have to maintain, the lower the entropy.
  35. Jaye Haych (unsplash.com) 35% less code 90% lower custodianship 75%

    less developer effort 50% shorter time to market Platforms help us to reduce the total entropy in our systems 90% lower custodianship
  36. Platforms make maintaining healthy software easier Endorsed Language Multiple Contributors

    Multiple Deployments Static Analysis Continuous Deployment Vulnerability Notifications (START HERE) Supported Languages Containerised Continuous Integration System Recovery Plan Infrastructure As Code Infrastructure Scanning Adequate Logging Logs Centrally Aggregated Support Documentation System Recovery Tested Container Scanning Cost Optimised Single Source of Truth Well-defined Interface Architecture Documented Decisions Documented Single Responsibility (START HERE) (START HERE) DEVELOPMENT OPERATIONS ARCHITECTURE Static Security Testing Actionable Alerts Incidents Managed PI Managed APIs Catalogued Vulnerabilities Remediated
  37. Platforms make maintaining healthy software easier Endorsed Language Multiple Contributors

    Multiple Deployments Static Analysis Continuous Deployment Vulnerability Notifications (START HERE) Supported Languages Containerised Continuous Integration System Recovery Plan Infrastructure As Code Infrastructure Scanning Adequate Logging Logs Centrally Aggregated Support Documentation System Recovery Tested Incidents Managed Cost Optimised Single Source of Truth Well-defined Interface Architecture Documented Decisions Documented Single Responsibility (START HERE) (START HERE) DEVELOPMENT OPERATIONS ARCHITECTURE Static Security Testing Actionable Alerts Container Scanning PI Managed APIs Catalogued Vulnerabilities Remediated
  38. A platform strategy helps the long-term fight against software entropy

    Platforms reduce the amount of software you write and maintain Platforms increase overall consistency and structure Reusable building blocks reduce the total entropy Adopting platforms - Key takeaways Photo by Rudolf-Peter Bakker on Unsplash
  39. Software entropy is a very real and present issue in

    our industry. Ignore it at your peril. At REA, we fight software entropy with: • Architectural alignment & principles • A culture of engineering excellence • Dedicated capacity for teams and architects • A platform strategy reducing bespoke software By getting your structure defined and with the right energy investment, you too can fight software entropy. Fighting software entropy - Key takeaways Photo by Rudolf-Peter Bakker on Unsplash