After you have completed a few projects, you realise that there is something important called “appropriate technology choice”.
But, and this is the thing, there is never a clear answer to what is appropriate.
One can pick the language and frameworks (i.e. the big decisions) with a few factors in mind:
- Fitness for purpose
- Experience of the team
- Maturity of the technology
- Ambition for the product
- We just want to learn a new skill (perhaps for our CV or Resume)
Sometimes the pull of the new technology is more important than the pull of the product we’re creating. We’re learning a new technology for personal reasons, or selfish reasons.
If your focus is on sustainable and deployable software, then look for a mature ecosystem.
Kubernetes, for example, is high tariff. An entire infrastructure. Do you need to make that decision now or can you focus more on application?
What application stack should you pick? Ah yes, well again there are no easy answers.
This thread from yesterday on twitter gives some great answers to the simple question:
Do you need to have the latest technology in your application in order to provide your customers with an excellent experience? No, look at the number of answers in that thread that say “Ruby on Rails” or even “Angular” still.
When does your technology limit your ability to compete? It doesn’t. You can still have a successful application without having the latest tech.
Just watch the expiry dates.