We’d all love to see code that never becomes legacy and never gains complexity over time. But this is not our reality.
So, why does everything degrade over time?
The simple answer is: because of probability. Imagine pieces of a jigsaw puzzle. There is only one combination to make the perfect image, yet there are almost infinite combinations where it does not represent anything. A disordered state, a random mixture of puzzle pieces, is just more probable.
Entropy is the measure of disorder. The more disorganised things are, the higher the entropy. The second law of thermodynamics states that things naturally get chaotic and spread out over time.
I'm not a physicist, so I won't bring up any equations. However, entropy can be used as a mental model to help you understand the world and make decisions, because its principles also apply to our life and work. As a manager leading various teams, noticing the increase in entropy over time has helped me understand how things work, and this is what I’ll cover in this article.
"Software is like entropy. It is difficult to grasp, weighs nothing, and obeys the Second Law of Thermodynamics; i.e., it always increases."
Engineering
Problems arise over time. They do not disappear magically and each one requires effort to solve. The probability of things breaking up is higher than the probability of everything working smoothly forever.
Examples of entropy increasing in projects:
Complexity of code increases over time
Technical debt accumulates over time
Architecture has challenges with increased complexity
Problems arise with no clear solutions and a need for a complex analysis
I'm not proposing any concrete solutions, but things will eventually degrade without taking action. Entropy guarantees this.
People
How often you meet with someone has a big impact on the connection you have with them. To maintain good relationships both inside and outside of work, we need to make an effort to meet frequently and not forget to ask how the other person is doing.
For teams, being in touch should be a process. Otherwise, we mostly keep in touch with people we like and who are similar to us because of affinity bias.
Relationships need maintenance and successful teams need attention, so regular meetings are important.
When teams are left without a clear vision of the project, their commitment will decay over time. For me, clear expectations and responsibilities are key to preventing disorganisation. Managing expectations and being up-to-date on your team's struggles can help you keep up with entropy because it builds trust and strengthens the connection.
When I was working with five technology units, it was difficult to balance the attention needed for each one. I felt the decay in connections first-hand when I had too many people to properly focus on. We adjusted the structure by changing reporting lines to ensure we could improve the balance.
If you skip a one-on-one meeting with one of your team members, you've just increased the entropy, so think about this each time you consider skipping it.
Summary
Entropy is not a secret force that floods us with problems and issues, it is simply a result of probability and statistics. If you see it as an inevitable feature of our universe it will help you understand what is happening.
Just as a castle made of sand on a beach decays without constant rebuilding, everything decays unless you actively work to preserve it.
Thanks for reading,
— Michał
PS My interest in mental models has been growing over the years thanks to Farnam Street. Their podcast, The Knowledge Project, and their books. FS covered Entropy with more physics, adding history, and putting it in the context of business and the economy.
PPS I barely scratched the surface of explaining entropy. You can watch videos by TEDed and Veritasium explaining the concept visually.
PPPS I experienced a fundamental leadership change for the whole organisation, ultimately reducing overall entropy. I shared lessons from it in:
Post Notes
Discover Weekly — Shoutouts
Articles that might help you explore new perspectives, which I have read recently:
"5 reasons why your best developers will quit - and how can you postpone it" —
applied an inversion mental model to make developers quit the company ASAP."What a Home Designer turned Software Architect can teach you about Software Design" —
presents his perspective on the parallels between developing homes and software in a guest post for . Also, it includes many useful analogies for every engineer who would like to explain software engineering to non-technical people."Making of a Million Dollar Staff Engineer" — I'm glad that there is a place for inspiring life stories in technical newsletters. Amazing story from
, as a guest post for ."Why Knowing Someone’s Name And Using It Matters" —
pointed out why we like our names so much, with advice on how to get better at remembering our colleagues' names. Thanks, John!
Reconcile this with the Law of Reversed Effort and one has the formula for maximizing Lifetime Value (LTV) of entities.
Yes, but no. Time tends to accommodate things also. It´s not all chaos, also there is order, magic and equilibrium in nature.