We, as engineers, are frequently faced with solving business problems, or sometimes technology problems, that really move the needle. We, as engineers, are usually never happy with any of the technologies in our tool chest. There is a place for every technology, but it always seems like our favorite technologies fall behind the cool kids in the block.
It is attractive to bet on emerging technologies. They are sexy, cool, promising high productivity gains, and in a way, good technologies are disruptive, not only to the technology landscape, but to the business landscape, since they change what can be achieved with technology.
And so, we feel inclined to risk and pick emerging technologies, without perhaps taking the time and consciously analyze and understand the impact. To list a few things:
- How many developers can I find with the required skills to support this technology? Where are they located? Are those locations where I can attract and retain talent?
- How secure and proven is the technology? Is there a good track record of fixing security bugs in very short time-frames?
- How complex is it to deploy this technology? How stable is it and what is the monitoring and analytics required to operate it?
- How long would it take to migrate everybody in my company/group/division/org from the "old" stuff to this "new" stuff? Does it pay off?
- How long would it take to migrate my project from this "new" stuff to the "old" stuff? Does it make sense that I even start doing it?
Unfortunately, many times the answer to these questions leads to a categoric deception: we can do with the old technology, and that there is no need to introduce "new" stuff. While we should be trained to accept this outcome, we are not, and end up choosing the new cool and sexy stuff instead.
Picking stable, mature technology, despite its known shortcomings, should be the most traveled route for engineers, but unfortunately it is not. Specially in the context of startups, there is a desire to play with new technologies, somehow associating business innovation with technology risk.
Unfortunately, these risky technology choices later become heavy burdens that cost the venture either big bucks for paying star "talent" developers, big bucks for hardware and operations, or very low availability. In some cases, the technology might even become a dead-end and a re-engineering exercise is required anyway.
So, next time around, let's try to think beyond our desk, and into the long-term implications whenever we chose a technology.
blog comments powered by Disqus