Design Patterns, Empathy, and Reading Complex Code

Struggling with Legacy Code and not enough time to clean it up?
⛑️️ My First Aid Kit can help you rescue any codebase quickly and safely!

On June 17, 2021, I co-organized the 6th edition of The Legacy of SoCraTes with my partner in crime Adrian Bolboacă.

It’s a half-a-day remote conference where 4 speakers share their tips to deal with Legacy Code.

The Legacy of SoCraTes by Nicolas Carlo and Adrian Bolboacă

This edition had a focus on empathy. Working with a legacy system can be demanding. One thing you can control is your approach to such a challenge. Andrea Goulet and Amitai Schleier shared insightful stories to help you there.

I was also really glad to have Matthias Noback presenting concrete Design Patterns you can use to refactor any legacy codebase.

Finally, Dr. Felienne Hermans gave an eye-opening talk on how to read complex code. Get ready to dive into how your brain works! 🧠

As usual, we recorded all the talks so you can watch them now and share them with your friends and colleagues!

Design patterns for modernizing legacy codebases

Matthias Noback is one of my favorite sources of knowledge. His book Advanced Web Application Architecture is tremendously useful when working on the web.

I really like how Matthias approaches architecture from existing code. More often than not, I have to work with an imperfect, existing codebase. Having tools and techniques to refactor such a system is gold!

This talk is a sneak peek of the book. Discover a few design patterns that can really help you refactor existing code:

Empathy is a Technical Skill

If you don’t know Andrea Goulet already, you’re missing out! 😜

No, but seriously. Andrea is the co-founder of Corgibytes which is specialized in software remodeling. She also created the Legacy Code Rocks podcast and community.

In her talk, she explains how empathy is much more than a “soft skill”.

She gives practical and actionable “next actions” you can start doing to improve the way you’re building software.

If you’ve ever thought that you’re “good with machines” but have struggled to understand people, this is a talk you won’t want to miss.

Or, as Donald Knuth nicely said:

Programming is the art of telling another human being what one wants the computer to do.

Inside-Out TDDDD

Yes, that’s 4 Ds.

This stands for “Inside-Out TDD-Driven Development”. Behind this intriguing title, Amitai Schleier tells personal stories about the impact of software craft on emotional states and working relationships.

And we’re still very much in the #empathy here!

Amitai genuinely shares his path towards greater joy and humanity in software development. I think it matters. ❤️

How to Read Complex Code

Dr. Felienne Hermans is the author of The Programmer’s Brain. She focuses on how your brain works, especially when working with unfamiliar code.

How to read code more efficiently? How to understand complex code? How to be more effective and empathic?

Felienne gives some insights in her talk. I really like how you can experiment it yourself with her little experiment.

Let’s dive into Long-Term Memory, Short-Term Memory, and other brain concepts:

“These talks are really great! Can I have more?”

Sure thing!

There’s no fixed schedule, but I like to organize this short conference every few months. I reach out to a few speakers to build an interesting agenda, then we set up the event.

Everything is FREE. Attending is the opportunity to directly ask questions to these speakers, from the comfort of your home.

If that’s something you want to hear about, subscribe to my newsletter below 👇

I publish my monthly tips on Legacy Code here. I also tell my subscribers in advance about the conference and the agenda, so they don’t miss out. Join them!

Nicolas Carlo

Written by Nicolas Carlo who lives and works in Montreal, Canada 🍁
He founded the Software Crafters Montreal community which cares about building maintainable softwares.

Similar articles that will help you…

Find how to (re)organize code with git

Does your codebase feel like a tote bag of "shared" and "utils" folder? Git may help you find a better structure.

Delete unused code (and how to retrieve it)

Dead code adds noise to the codebase and should be deleted. Yet, deleted code feels harder to retrieve. Here's how to find such code easily with git!

Can AI help me refactor legacy code?

Can assistants like ChatGPT refactor existing code without introducing bugs? Let's figure it out with an actual codebase.

Fake it until you automate it

A pragmatic way for you to start automating deployments of a Legacy system.

← Find more tips to work with Legacy Code