Releasing a software product is a risky and difficult prospect. There are many routes to failure.
One big risk is that you are unable to build a releasable version of your product. You might spend too much time and money during development, and then fail to launch.
You must minimise the technical risks to your product development as much as possible. One of the best ways to do that is to choose boring technology.
What is boring technology?
- It’s Old. It’s not the latest, greatest, newest thing.
- It’s Predictable. ‘Everyone’ knows about it, how to use it and its pros and cons.
- Lots of people have already solved the big, interesting problems of that technology. (There is no easy way to stand out in the community of developers by using it.)
- Lots of people using it. (There is no easy way to stand out in the community of developers by using it.)
- It is technically inferior to newer technologies in some ways. Eg: Slower, Less Safe, Lacks Modern Features.
- It is not part of the current developer hype/learning cycle (at time of writing the cycle include things such as: React framework, FRP, functional programming.)
If you are a developer there can be a great tension between choosing boring technology and what you want or feel like you should be using.
The developer mindset around technology choices is a whole topic in itself, so I won’t delve too deeply on this issue here.
Boring won’t actually be Boring
You’ve chosen a boring technology, so your development will go smoothly and completely trouble-free, right?
Even when using boring technology you will run into issues. Issues like teething troubles with your particular hardware and software set up. And yes, you will still run into weird bugs and issues with your choice of language/framework/other technology.
But because you have chosen boring technology you will have plenty of resources that tell you how to solve the problem or at the very least will greatly help you solve that problem.
Solving these problems becomes largely a search of the internet, books and other resources to find a solution.
This is a lot less fun and interesting for a developer than creating a solution using problem solving and code. But it’s usually a lot quicker and cheaper too.
Focus on What Makes You Unique
If you are building anything that is unique in some way, you are going to have technical challenges that exist only for your product. Or put another way: technical work that actually contributes to the unique value of your product.
There won’t be any easy solutions to these problems. These are the problems that your developers and designers need to be flexing their ingenuity and skills on solving.
Development is Hard
Development is hard, expensive and risky.
You should be making as many choices as possible that reduce complexity, costs and risks.
Choosing boring technology is one of the best ways to stack the deck in your favour.