Making major decisions in technology is hard. Breaking away from the status quo is likely to be met with friction at many points along the way, requiring buy-in from team members, management, and possibly your users as well. It seems easier to avoid making a decision until the drawbacks from your current choice begin to really weigh you down.
Recently my wife and I attended a series of pregnancy classes put on by a nearby hospital. Rather than prescribe certain methods or techniques, the instructor laid out the different options we had for each step of the pregnancy, such as pain management and where to have the delivery. Before presenting those, though, she introduced us to the concept of BAR:
This decision-making strategy has a lot of applications in the high tech world too. Imagine you’re weighing the introduction of a new messaging framework into your application. Some questions you might ask for each part of BAR:
Benefits: What will we be able to do with the new technology that we weren’t able to before? Quicker development cycles, better performance, or fewer bugs? Are previously-unexplored architecture patterns possible now? Does it lay the groundwork for future improvements?
Alternatives: What are alternates to going with the selected technology? There’s always the possibility of not using it, or going with its competitors. If there aren’t other options, is it because the technology is so fresh and innovative that no other players have entered into the arena, or are there other reasons?
Risks: What are the drawbacks to the technology? Are there increased support costs? Is there expertise among your team members, or will training be necessary? Does it play well with your existing infrastructure, or does it have special requirements?
Every change or addition to your application infrastructure that merits more than a few minutes of discussion will likely have risks. The presence of them doesn’t discount going down that path, but instead demands contrasting perceived dangers against the benefits, and subsequently performing a similar analysis on any alternatives that you see as potentially viable. Through this method you can size up new technologies and make informed decisions, allowing greater confidence in the ultimate choice, both for yourself and other stakeholders.