Slide 1

Slide 1 text

Stewart Gleadow Executive Manager, Engineering realestate.com.au Image credit: http://www.thenegativepsychologist.com/ Fighting Software Entropy

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

Fighting Software Entropy Lessons learned from maintaining software at scale over the last 15 years.

Slide 4

Slide 4 text

The life of successful software

Slide 5

Slide 5 text

TTL (Time To Legacy) The life of successful software

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

Source: Aaron (unsplash.com) Structured systems have lower entropy Photo by Aaron on Unsplash

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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.

Slide 10

Slide 10 text

Why does software decay? Jaye Haych (unsplash.com) Compromises are made Shared understanding is lost Dependencies date Approaches change

Slide 11

Slide 11 text

Confirmed by IBM researchers Meir M Lehman & Laszlo Belady [Some of] The laws of software evolution Continuing Change Increasing Complexity Declining Quality Continuing Growth

Slide 12

Slide 12 text

“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

Slide 13

Slide 13 text

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%

Slide 14

Slide 14 text

More software increases entropy Shifted to an internal platform strategy Adopting microservices Company really started scaling Number of systems Ongoing growth

Slide 15

Slide 15 text

Varying technologies increases entropy

Slide 16

Slide 16 text

Decreasing entropy is possible … in open systems Isolated System Matter exchange Open System Matter exchange Energy exchange

Slide 17

Slide 17 text

How can we fight software entropy? 1. Define the structure 2. Add the energy Photo by Jaime Spaniol on Unsplash

Slide 18

Slide 18 text

Architecture practice Engineering excellence Continuous improvement Adopting platforms Photo by Daiga Ellaby on Unsplash

Slide 19

Slide 19 text

arch-i-tec-ture n the design and structure of a computer system Photo by Heather McKean on Unsplash

Slide 20

Slide 20 text

A coherent architecture is unlikely to appear without some help... you need principles to drive decision making Photo by Heather McKean on Unsplash

Slide 21

Slide 21 text

Principle Name What – a short explanation Why – articulates the value In Practice • Examples of how this shows up • Aiming to simplify adoption

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

Our architectural principles

Slide 24

Slide 24 text

Other mechanisms to improve architecture Jaye Haych (unsplash.com) Technology strategy Sensible defaults Decision making frameworks Knowledge management

Slide 25

Slide 25 text

“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

Slide 26

Slide 26 text

Support freedom from choice with an internal tech radar. Inspired by

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

We also need to add energy to make our architecture show up. Photo by Joshua Gaunt on Unsplash

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

Architecture practice Engineering excellence Continuous improvement Adopting platforms Photo by Daiga Ellaby on Unsplash

Slide 32

Slide 32 text

What even is good software? Photo by Kelli McClintock on Unsplash

Slide 33

Slide 33 text

We started with opinions, on cards up on the wall.

Slide 34

Slide 34 text

Radiating information Visualisation was powerful Changing the language from tech debt to system health was important

Slide 35

Slide 35 text

Remove ambiguity to be really clear about the state you are after Photo by Phil Hearing on Unsplash

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

(START HERE) (START HERE) (START HERE) DEVELOPMENT OPERATIONS ARCHITECTURE

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

Rating workflow

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

Architecture practice Engineering excellence Continuous improvement Adopting platforms Photo by Daiga Ellaby on Unsplash

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

“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

Slide 46

Slide 46 text

Custodianship: putting the energy in 1. Reducing risk 2. Paying down tech debt 3. Lowering total cost of ownership Rudolf Clausius 20% - Custodianship

Slide 47

Slide 47 text

Adding structure to custodianship

Slide 48

Slide 48 text

Analysis of health data guides custodianship Provide automation pathway

Slide 49

Slide 49 text

Sample outcome of SHIP work Provide automation pathway

Slide 50

Slide 50 text

Investing in automation is highly recommended Renovate Automated dependency updates Buildkite Scheduled CI/CD builds Realm (Backstage) Automated systems health ratings (coming soon!)

Slide 51

Slide 51 text

Company level OKR: Healthier Systems Provide automation pathway

Slide 52

Slide 52 text

Provide automation pathway Systems Health Ratings per Quarter (All Systems at REA) Systems Health Improvement Plan introduced 2020 2021 2022

Slide 53

Slide 53 text

Provide automation pathway Systems Health Improvement Plan introduced Systems Health Ratings per Quarter (All Systems at REA) 2020 2021 2022 2023

Slide 54

Slide 54 text

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

Slide 55

Slide 55 text

Architecture practice Engineering excellence Continuous improvement Adopting platforms Photo by Daiga Ellaby on Unsplash

Slide 56

Slide 56 text

Fighting software entropy with platforms Beyond the 20% & automation ...

Slide 57

Slide 57 text

1. A mindset shift from local to company-wide tech thinking. 2. Approaching tech platforms as long-lived products.

Slide 58

Slide 58 text

Number of systems 2000 2005 2010 2015 2020 Our platform strategy at work

Slide 59

Slide 59 text

Photo by Mourizal Zativa on Unsplash The less software you have to maintain, the lower the entropy.

Slide 60

Slide 60 text

Our web platform, Argonaut https://realestate.com.au/?mfeTag=dev:yow-demo

Slide 61

Slide 61 text

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

Slide 62

Slide 62 text

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

Slide 63

Slide 63 text

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

Slide 64

Slide 64 text

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

Slide 65

Slide 65 text

Architecture practice Engineering excellence Continuous improvement Adopting platforms Photo by Daiga Ellaby on Unsplash

Slide 66

Slide 66 text

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

Slide 67

Slide 67 text

Stewart Gleadow Executive Manager, Engineering realestate.com.au Image credit: http://www.thenegativepsychologist.com/ Fighting Software Entropy