There are no sacred technologies

In my previous post I talked about how there are no silver bullets, that is there are no technologies that will solve all your problems without introducing some of their own. In this post I will talk about something that happens often, as development processes mature in an organization, somehow technologies become sacred.

Let’s start with a fictional story. Joe is a developer and entrepreneur. One day he has the most brilliant idea for a business and he starts working on it. He uses the technology he knows and sticks to it. As usual, the first version of the product is a patch work of technologies but Joe gets his idea to the market and finds a receptive audience. His product is becoming a success. This attracts investors and Joe starts scaling both the product and the organization.

Joe’s product is a simple application to be installed in a desktop computer. That is the state of the art, the internet is still in its infancy and the *aaS world is in the process of becoming something.

This product keeps growing, with the investment Joe is able to hire a development team, a marketing team and even sales and support people! They are approached by a vendor that suggests that they use their technology since they can provide everything they need. They standardize on the technology of that vendor and life is good. They have a reliable tech stack, they get invited to conferences, they get access to early releases and they are invited to discuss the roadmap of the vendor. Joe’s company is now a known name in the market and they have loyal customers and a vibrant community of users.

Their vendor grows too and starts building more and more products. This allows Joe to reach new customers and bring better solutions to them. They invest more and more in this technology. There are times when the vendor makes changes to products that Joe’s company relies on that affects them, but they are always there to help them. They get preferential deals, VIP support and of course more invitations to conferences. Slowly Joe’s company shifts from being an innovative company bringing solutions to the problems of their customers to being a company that is invested in using a given technology stack. Nobody realizes this because it has happened so slowly, their products are still a success and their customers are happier than ever.

One day there is a big paradigm shift. Desktop applications are no longer the thing, and everybody moves to mobile applications and cloud services. The technologies used to build Joe’s products never considered this case, so they are taken by surprise. They are approached by the vendor and told not to worry, this is just a simple seasonal thing that is going to go away very soon. Everybody is going to come back to their desktop apps as soon as they realize that mobile phones and cloud services are not as reliable as desktop applications and enterprise applications running in your own datacenter.

At this point in the story, it is good to take a break and consider the possibilities. Nobody knows what is going to happen, is it true that mobile applications are just a passing thing or are they here to stay? What about cloud services? Will people really adopt them or will they come back to the safety of a datacenter? Their vendor is reassuring in saying that they should not worry because they are also going to start developing a cloud offering just in case. And regarding mobile apps, they promise a new framework to help them there too.

As you might imagine, the story does not end very well for this company. Despite best efforts from their vendor, their frameworks never became a serious contender in the cloud arena nor in the mobile space. People and companies moved to cloud services and never looked back to desktop applications.

This happens more often than not. And there are multiple reasons. First of all, if you have a vibrant business with a proven business model, it is hard to make changes. Should we really risk everything? We are doing fine and we will still be fine in the future.

Second, you marry your technology. Technology is just a tool. Vendors are just vendors, no matter what they offer. Your business is not using somebody’s technology, your business is to anticipate what your customers will need and provide them with solutions, not to find a way to force that solution by using the technology you have.

This does not mean that you should throw your technology stack out of the window. This means that it is wise to experiment and try other technologies, specially if there is some kind of de-facto standard in the industry.

Don’t be afraid of trying new technologies to solve problems. If somebody in your organization says that you cannot do that because that is not the approved technology stack, then find a way to propose a change. Any organization should have a defined way to try and investigate new technologies and market trends. If your organization does not have one, make sure that you raise that concern an that a process is implemented for that. If your organization is unwilling to try new things, then it is time to move on.

Published by carlosware

Busy dad of three with a passion for fly fishing and computers.

Leave a comment