Software Architecture—Back to the Basics

Aug 21, 2018 | by Wolf Ruzicka

Nearly every week there’s something new in our industry. The pace of technology is unprecedented, the role of IT is booming, and innovation is part of our DNA. These are exciting times. Yet, to reap the benefits of the newest technology trends and keep your team from getting caught up in the excitement don’t forget about the roots: good old-fashioned architecture 101. DevOps, microservices, artificial intelligence, containers…these are all great new trends but without a well-designed, modular architecture, you won’t be able to unleash their potential.  

To understand why architecture is so critical, let’s say that instead of building an enterprise system, you’re building a new home. You’ve just bought a lot and you have tons of ideas and cool features you want to include in your new home. In your first meeting with the architect, all you talk about is how you’ll use the home. Your architect learns that you like hosting parties, cooking and that you have a child. All of these situations determine the ultimate buildout. Then the architect asks about the future. Will you have more children? Will your hobbies require more space? Will you want to stay in this house when you retire and are less mobile?   

These same principals apply to your system. Instead of considering the extra bedroom you may need in two years, you may want to keep a potential AI project or migration to a microservices architecture in mind. You’re building today but you’ve got to be thoughtful about tomorrow.  

Why are fundamentals so critical? The IT market evolves so quickly that a safe bet today might be a liability tomorrow. Your overall architecture must enable you to pivot quickly, so you can adapt in a fast-paced business environment.  

Back to our homebuilding example, to stay in your home in the long run and avoid costly rebuilds, architect it in a way that allows to easily add more stories or a new wing if you need it. Once you have a strong foundation and extendable framework, you can go crazy with the details, like what color to paint the walls and whether to add a steam shower.  

Rushing into IT projects but skipping the fundamentals can turn out to be very expensive. Rearchitecting, and recompiling system components to prepare them for the new, sexy technologies can be very complex and expensive if things weren’t modularly built. You wouldn’t want to rebuild the entire house to add a bathroom and you won’t want to rebuild to take advantage of the cloud or make apps mobile. Plan for change - updates and extensions are inevitable.  

Tech disrupters such as Uber, Amazon, and Airbnb have shown that to stay competitive, a software first approach is needed across industries—technology will ultimately determine the winners and losers. And, as you adopt new technologies, build an architecture that can keep pace with the rapid technology evolution. Architecture today must be seen as temporary, making modularity a key requirement. Other principles you should strive for are auto-scaling, self-healing, and monitoring as well as much abstraction as possible (e.g. APIs, microservices) and as little as necessary. Good architecture and engineering principles equal the ability for rapid change and scaled up delivery—a must to keep up with customer demands.   

When you look around your house, quite often you admire the décor, but you sleep soundly knowing that the foundation was well-built. To get to the point of adopting cool new things when they pop up requires the mindset of a world-class craftsman. Never forget the basics.