A Checklist For Evaluating New Technology

Does it solve a problem you’re actually having right now?

Many goats have been sacrificed on the altar of “We absolutely need this in the future.”

Does it come with any advantages?

New technology often promises many things that might, or might not, turn out to be true. It might solve the simple cases, but have issues with the more complex scenarios you’ll actually encounter in daily life.

Does it come with any downsides?

It’s easy to only think about what you can get out of something new — but you often lose something as well. Does this new technology lack integrations with the services you use? Is it opinionated in a way that doesn’t align with how you already do things? Is it really time-consuming to learn? We should always consider both the downsides and the upsides of the new technology.

Is it easily replaced?

If it turns out your bet on this technology is wrong — how easy is it to replace it? Is it contained in one part of your application or does it leak into every part?

Can it be evaluated quickly?

Some technology is reasonably quick to evaluate. If you’re evaluating a new templating language, you can reasonably quickly determine whether it’ll do the things you need.

Is the project/technology popular and well maintained?

There’s a certain charm to being bleeding edge. There’s less charm in being being stuck with a technology nobody uses and nobody can help you with. When evaluating a project, check whether or not it’s still active. Does it have many answered questions on StackOverflow? If it’s on Github — when was the last commit? Are issues resolved?

How mature is it?

New technologies often showcase very compelling happy-paths. Then you start tweaking it and everything falls apart. Evaluating how mature a technology is, particularly in a field you don’t know much about is hard.

Can we scale this effectively inside the company?

This is probably more specific towards consultancies or teams that juggle many projects and technology stacks at once. Sometimes there’s a technology that solves a problem really well in your particular project, but which is really hard to understand or learn.

Can it be maintained?

We often have to write code that our clients have to maintain in the end. When you know someone else has to take over a project it can be important in writing something they can understand. If your client works primarily with Java, they probably wouldn’t appreciate a project written in OCaml very much.

Can you afford it?

Does it have a permissive license both for development and production usage? If it costs money, are the potential advantages worth the cost?

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store