Categories
Software Architect

Choose your weapons carefully, relinquish them reluctantly

Book: 97 Things Every Software Architect Should Know
Publisher: O’Reilly Media
Author: Richard Monson-Haefel
97 Things Every Software Architect Should Know – 81/97

'Coz sharing is caring

As a seasoned veteran of software design and implementation, every architect is armed with an array of weapons they‘ve used with repeated success. For one reason or another, these technologies have found favor and bubbled to the top of our list of preferred solutions. Most likely they‘ve earned their rightful place in your arsenal by defeating fierce competition. Despite this, a barrage of new technologies constantly threatens their position. We are often compelled to lay down our weapons of choice for these new alternatives but don‘t be too quick to dismiss your trusty armaments. To cast them aside for alternatives that haven‘t been proven through similar trials is a risky proposition.

This doesn‘t mean that once established on our list of favorites a technology is granted infinite tenure and it certainly doesn‘t mean that you can bury your head in the sand and ignore advancements in software development. For each technology the time will come when it needs to be replaced. Technology moves quickly and superior solutions are on the way. As architects we need to stay abreast of industry trends, we just don‘t need to be the first to embrace fledgling technology. There‘s usually no huge advantage to being the first to adopt new technology but there can be several drawbacks.

To justify the risk involved with selecting new technology its benefits should be a quantum leap forward. Many new technologies claim such advancement but few deliver it. It‘s easy to look at new technology and see technical advantages but those benefits are often difficult to sell to stakeholders. Before you decide to blaze a trail with new technology, ask yourself how the business will benefit from this decision. If the best outcome from a business perspective is that no one will notice, rethink your decision.

Another important thing to acknowledge is cost associated to the shortcomings of new technology. These costs can be high and are difficult to calculate. When you‘re working with familiar technology you‘re aware of its idiosyncrasies. It‘s naïve to think that a new technology won‘t come with its own collection of pitfalls. Adding problems that you haven‘t solved before will destroy your estimates. You‘re far more aware of the costs involved when implementing solutions using familiar technology.

One last thing to consider is future relevance. It would be nice if we could simply identify and select superior technologies but things aren‘t quite that simple. Great technologies don‘t always win. Trying to predict the winners early is a gamble that doesn‘t yield a large payoff. Wait for the hype to die down and see if the technology settles into a space of usefulness. You‘ll find many just go away. Don‘t jeopardize your project for a technology that doesn‘t have a future.

Selecting the technologies we use to attack problems with is a large part of the software architect‘s job. Choose your weapons carefully and relinquish them reluctantly. Let your past success help to ensure future success and evolve your technology stack cautiously.

'Coz sharing is caring

By Swatantra Kumar

Swatantra is an Open Source evangelist, a technologist and researcher. Professionally, he does software development, software architecture, server administration and project management. When he's not writing software, he enjoys building web entities and servers, reading about and working with new technologies, and trying to get his friends to make the move to open source software. He's written, co-written and published many articles in international journals, on various domains/topics including Open Source, Networks, Computer Organization, Mobile Technologies, and Business Intelligence. He made a proposal for an information management system at University level during graduation days.

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.