Technology decisions are resource decisions
02 Mar 2024If you’ve been around the block in the world of engineering and technology projects, you have undoubtedly gone through phases of those projects where you obsessed over the best choice of technology stack. These decisions range from choosing the right operating system, programming language or framework, database, etc. If you are very good at your job, you probably would have employed a more scientific approach, like a decision matrix that helps capture the specific benefits of each option, so it is obvious how the decision is arrived at. Yet, even in our most scientific endeavors, there is always an element of bias. Whether it’s a fondness for the familiar or a devotion to the tech ‘cult’ we proudly belong to.
This is all fun and games, but sometimes, what drives these decisions is a simple question of who would support the code. Or are we ready to commit to this choice? These questions change things quite significantly, and you would find it all comes down to the availability of skills for the chosen technology or stack. Otherwise, that technology decision, while as thorough as the process might have been, would be the one thing that makes the project fail or demand a rewrite in less than two years.
For example, no matter how ‘rapid’ development in Ruby on Rails can be, you had better be sure you have access to Ruby on Rails developers to build the product and continue to support it. Even if Flutter is the best multi-platform mobile development framework, it doesn’t mean much unless you have a Flutter developer on hand and will continue to have one to support the product for its lifetime.
Okay, maybe I am being a little melodramatic. The scientific approach works as long as you ensure that one of the ‘benefits’ or criteria for selecting the stack or database should be the relative availability of the skills needed to build and support it. After all, it’s not just about making choices; it’s about making choices that stand the test of time.