Software Entropy: The Theory of Broken Windows��Chinonso Ani,
Software Engineer �@technonso�
This talk is about
��
Managing �Chaos,
Complexity,
Scale
Legacy code
What is Software Entropy
Entropy (physics)
==
“disorder”
Why should you care:
Software >= Entropy.
Time >= Now
A codebase ... developers …�terrified of breaking it
Technical Debts that will bankrupt the future
What Is Technical Debt
Technical loan to be paid with interest later
Everything You Want to Do “Later” Is DEBT �
• Let’s Document Later�• Let’s Test Later�• Let’s Architect Later�• Let’s Refactor Later
Result of Debt
Support to Innovation ratio
HELP DESK
The Theory of Broken Windows
Based on Criminology
One broken window, left unrepaired means nobody cares
Serious structural damage begins…
So another window gets broken…
People start littering…
Graffiti appears…
Now >= Future�Entropy == Real
How to reduce software entropy?
Don’t leave “broken windows”
“�If you want people to do something… make it easy
Start with minimal technology�
The psychology or culture at work on a project
Debt Management and Debt Avoidance
• Assess Complexity and Confusion
• 30% of the Sprint Should Be Devoted to Debt repayment
• Test Before You Implement
• Collect User Feedback
• Measure and Correlate Churn
The Special Case of �Legacy Code
What is Legacy code?
Inherited codebase
A codebase that developers avoid because they are terrified of breaking it
Why Legacy code is a problem?
* It works (until it breaks --- later)�
* Devs are attached to their source code
Legacy code is a challenge, make it a worthy challenge
How to tackle �Legacy code?
Break the assumptions around the code
Start newbies on Legacy code: Writing Tests!
Treat your codebase as open source
HOW TO OPEN-SOURCE YOUR CLOSED SOURCE
+ Transparency�+ Collaboration�+ Innovation�
+ Security�+ Experience�+ Costs
Find me on FB/ TW/ IG
@technonso