Your Codebase Is a Garden – 5 Essential Code Maintenance Practices

What does a potted plant have in common with a large software codebase?

At first glance, they seem like completely different things. But in fact, both require regular maintenance to stay healthy and keep growing. When they’re neglected, both begin to decay in much the same way.

I take care of the dozen plants distributed around our Detroit office, ensuring they get enough water and sunlight, clearing away dead leaves and branches, repotting them when needed, and so on. It’s all part of “sharing the pain,” one of our five Value Mantras at Atomic Object.

Most of our plants are pretty easy to care for. But there’s one plant, a huge potted fern, that wasn’t doing so well. It was lush and full last summer when we opened the Detroit office, but it had been gradually declining over time. There were still healthy branches in a ring around the edges of the pot, but in the center it looked dead and leafless. I was perplexed.

Read more on Your Codebase Is a Garden – 5 Essential Code Maintenance Practices…

Testing and Legacy Code, A Primer

In the last few weeks, customers and potential clients have asked me on several occasions how Test-Driven Development relates to legacy code (incidentally, one fitting definition for legacy code is code having no test suite).

As much as we all might like to throw out legacy code (especially when it’s craptacular) and “do it right”, that’s often an entirely impractical option or just a plain dumb thing to do. Reality is that there’s no magical formula or one-size-fits-all procedure for dealing with testing and legacy code. Each case is unique and requires a thoughtful, responsible approach. That said, I offer here guidelines toward tackling the challenge in a thoughtful, responsible way.

Read more on Testing and Legacy Code, A Primer…