Technology? Choice!

Arun Stephens
-
March 8, 2017

There are so many languages, frameworks and tools available today. How do you know which ones to use? Like most technology questions, the answer is “it depends”.

I love using and learning new technologies and would jump at the chance to use something fancy as soon as it’s released. That’s an easy thing to do when you’re starting out on a new project; especially if it’s not tied in with any other system or developers.

The little home automation system I’m building is a good example of this — as I can use whatever I want. I was talking to the other devs here at EndGame about what I should use to build it. Someone advised me that if I’m going to use the system for a while, then I’m also going to have to maintain it — so I should choose a language that I actually like. It’s a really good point. The technology you choose should be something that makes your product easy to maintain. If you pick an exciting new technology before it’s proven itself and then it wanes in popularity, the time spent maintaining that technology might end up cancelling out all the goodness you got when you chose it.

In a commercial setting there are other factors at play. You might have to integrate with other systems or host in a client’s environment — and the technologies you can use to do that might be limited. You’ll have a team of developers, each with strengths and weaknesses in different areas. You might have existing code using older tools. You’ll definitely have time constraints.

In a team environment, it’s the makeup of the team that’s probably going to be the biggest influence on which technologies you use. You’ll usually want to use a technology that the team knows well. This doesn’t mean that everyone needs to be an expert, just that the team as a whole can learn from each other and figure it out. There’s a big risk in having all the knowledge with one person, to both an organisation and that one person. But it’s an easy risk to mitigate: share knowledge.

Your choice of technology also affects who wants to join your team. If you’re using cool stuff, more people will want to come and work with you. And those that already do will want to stick around!

At EndGame we’re fairly technology agnostic. In my short time here I’ve worked with ASP.NET MVC (both Razor and Web Forms), React, SQL Server, Objective-C, Node, MongoDB, several .NET console apps in C# and one small script I wrote in Python. We use what we believe are the right tools for each job. The one rule we do have is that if you introduce something new into the environment, it’s your job to educate the rest of the team on it. But that hasn’t been much of a problem. Because if you’re keen to use something new, you’re usually pretty keen to tell everyone about it!

There’s no single answer when thinking about which technologies to use. There are a variety of factors involved in technology choice. What these factors have in common, I think, is maintainability. Whichever technology you choose, make sure that as an organisation you’re able to keep on maintaining the code you’ve written - for as long as it’s going to be in production.

React
Software
Nodejs
Dotnet

Insights delivered to your inbox weekly.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Get in touch

We’d love to see how we can work together.