Choose Your Weapons Carefully, Relinquish Them Reluctantly

Choose Your Weapons Carefully, Relinquish Them Reluctantly

Chad LaVigne

AS SEASonEd vETERAnS of software design and implementation, all archi- tects are 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, a 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, but we don’t need to be the first to embrace fledg- ling 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 advan- tages, 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 the cost associated with 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 sim- ply identify and select superior technologies, but things aren’t quite that sim- ple. 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 that 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 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.

你可能感兴趣的:(【架构师该知道97件事】)