Photo by Pim de Boer on Unsplash
It's easy to see the growth of a tree in hindsight by cutting it down and measuring its rings. Software at your company has growth rings, too.
I write a lot about countering negativity in software engineering, especially when it comes to complaints about inherited situations. Really, the only options available in these situations are to take action yourself and to change your mindset.
Avoiding Blanket Statements
May 6, 2022 · 6 min read
One part of emotional intelligence is understanding how our words impact others.
Being Critical of Past Developers
May 14, 2020 · 2 min read
How were those past developers of this project so very wrong?
I've been thinking about the mindset option a lot this year, in the context of inherited code that wouldn't pass current standards. I've developed a metaphor that has kept me empathetic, and it has been landing with my colleagues:
Software is like a tree. When you cut it open, you're going to find some growth rings. You'll see when various patterns got popularized across the company, when new libraries were adopted, and other positive changes. And in an old enough piece of code that has developed quite a few rings, you may find some parts that aren't as healthy as others.
You and I are both better developers than we were a couple of years ago. We've worked with new people who have brought new ideas, have experience with more design patterns, and have worked with code long enough to understand the pitfalls of past decisions. And everyone else in the company has grown, too, and is likely making decisions that you'd agree with now.
And who knows, maybe you'll both disagree with those decisions in another couple of years.



