Why Wasteland?

I wanted to spend a little bit of time today talking about the concept behind Wasteland Coder in general. Barren Wasteland Quite often, it feels like we are stuck in this life-sucking barren wasteland when we are coding. Especially when working on so-called legacy projects. There is a constant feeling that whoever was here before … Read more

Taking Notes And Drawing Pictures

I am a hands on, visual learner. I need to see something and to play with it to understand how it works. When reading a book, I take notes, highlight, underline, and circle the text to help reinforce what I’m reading. Reading Code When reading code, I tend to draw pictures of what the code … Read more

Demoralized

Are you demoralized by your legacy system? Why? Is it hard to work with? Slow? Buggy? Big? Hard to understand? Legacy Story At some point, this legacy system was a green field. The developers were eager to work on it, and it used all the best new tools, technologies, architectures, etc. It became successful. It … Read more

Just Evil

As developers, we seem to do things to ourselves that are just plain evil. Perhaps it is a shortcut right now, but sometimes in the future it will come back to bite us hard. This isn’t always what we might consider technical debt, but that can be a part of it. Sometimes we even do … Read more

What Is Legacy Software?

There are many definitions out there for what counts as legacy software. For a long time my favorite was from Michael Feathers, which was something along the lines of “any code that does not have tests”. “They are writing legacy code!” I have a new, related definition that seems to fit well too. Any piece … Read more

When To Rearchitect

Just like any other piece of a software system, a system’s architecture can accumulate dust, and turn into a form of technical debt. Sometimes this debt is non-prohibitive, or even useful, but if it is not considered and re-evaluated on a regular basis, it can jump up suddenly as a crushing debt, keeping you from … Read more

Macroservices

Or, Partial Microservices There has been much discussion lately around how microservices may not actually be the appropriate architecture for many teams and companies, especially those working on legacy applications. The idea behind this is that while microservices may perhaps be ideal in some circumstances, they most definitely have their limitations, and really are not … Read more

Refactoring Microservices – Error Codes

Do you have legacy microservices?  It’s not surprising if you do, especially if some of those microservices (or macroservices, or miniliths) were really just a lift-and-shift of some already legacy software into a microservice structure and deployment.  Microservices present a unique challenge for refactoring, because the clients are so much harder to find than in … Read more