Are your teams thinking more like Solo or Stark?

Han Solo is one of my favorite characters of all time. I’d certainly love a chance to pilot the Millennium Falcon. Han and the Falcon always find a way out of every difficult situation.

The Millennium Falcon however, as awesome as it is, has a major drawback. It requires at least one amazingly skilled mechanic to keep it flying. Han is an expert at this, he pulls off a tweak here and a bypass there time and again. Usually under extremely urgent circumstances.

I wonder if sometimes as developers we enjoy being a little like Han. One of a few experts that can keep a very complex system up and running while also figuring out how to integrate the latest upgrade or eke out some extra performance right when it’s most needed.

The trouble is that tech debt is a crisis in the software industry. There are too many systems that are barely holding together. They often require teams of top notch developers working at full capacity to even move the needle on features or improve stability. The code is a mess, too complex and tightly coupled to allow for significant changes except at an exorbitant cost. Shiny new systems only exist in dreams for many teams and companies. 

If we’re to combat this successfully we have to do things differently. 

There are many great techniques that can help coders create more maintainable and testable systems. Scrum’s main purpose is to get a product to done. DevOps is all about automating everything possible. Technical excellence is always a worthy pursuit. We’ll save a deep dive on those for another time. For now we’ll stick to fictional inspiration.

As a counter example to Han and the Falcon take a look at Tony Stark. He’s somehow able to create suits that work flawlessly and other people are able to use them intuitively. Instead of being stuck maintaining the same suit all the time, he’s constantly creating and releasing new versions. The pattern is clearly superior. Release a working product and then regularly release better versions. 

I invite all developers to channel their inner Tony Stark. Create simpler designs and cleaner code so that it doesn’t always require a genius like yourself to maintain it.