I’ll be honest: when brand new technologies drop, I’m generally not one of those folks who rushes to go learn and incorporate it right away. To be clear, that’s absolutely nothing against people who do – I totally understand being excited to play with new toys. If there's something new that you've been looking forward to, or is right up your alley – by all means check it out! The world needs early adopters.
However, for many folks, personally assessing each and every new available technology isn't realistic. Should I be using React Server Components? Is it a worthwhile investment to refactor my existing application to use Next.js? Is OpenAI stable enough to incorporate into this new feature? Each one of these example questions will ultimately be a personal call based on the project, the team, the skillset, the available resources, etc. After all, it's not just the implementation of new tech that's time and resource-consuming – it's also the assessment. Knowing what to look for and how to make a thorough assessment of new technologies is part of the difference between a junior developer and a senior developer – understanding the big picture and making informed decisions about risk.
Personally, I take a slightly more careful and reserved approach when it comes to early adoption – especially when I’m working with existing or legacy projects. In that case, I generally prefer to let other folks do the beta testing, and I’ll jump in later once the tech is proven, stable, and well-resourced. What does that look like, realistically? Let's take a look:
-
A practical use case is confirmed: We know how, exactly, this tech can be leveraged for real-world applications.
- Does it enable us to do something we couldn’t do before?
- Does it make something we could do before easier / faster / more intuitive?
- Is the learning curve worth the reward?
- Are there successful examples of other projects that incorporate it?
-
Resources, documentation, and learning guides become available: If I pick up this tech and hit a stumbling block, I know that there are resources that exist to help me troubleshoot effectively.
- Is the documentation mature?
- Are there courses / blogs / tutorials available?
- Are enough other people using this that if I post a question in a forum or on social media, I’ll get replies?
-
The important tools in my toolset work with the new tech (or at least, play nice): Assuming I’m working on some kind of existing application (not starting a new greenfield project), then I already have a list of tools, dependencies, libraries, etc. that I’m committed to. This new technology, at minimum, peacefully co-exists with those.
- Does this run the risk of screwing up any of my existing infrastructure?
- Will I be required to upgrade or refactor existing parts of my application to implement this new tech?
- Do any of the things I’m already using leverage this new tech, as well?
-
Bugs are worked out / immediate dangers mitigated: This is reliable and stable enough to be used in business applications.
- Has there been mainline acceptance, or is it mostly still used by individuals and startups?
- Have there been any major issues or unintended results of using this tech?
- Could this negatively impact the accessibility of my product?
-
The “hype” phase is over: Often, new tech comes with a hype phase, where there’s lots of chatter on the internet about how it’s got incredible potential, it’s the Next Great Thing™️, anyone not doing this will be left behind, etc. and so forth. Sometimes this is accurate, but often it’s exaggerated.
- How long has this been available: weeks, months, or years?
- Do I know anyone in real life who’s using this, or have I exclusively seen it used by tech influencers?
- Is there free learning material available for this technology, or is it exclusively paid material? A mix of paid and free is normal – exclusively paid is a red flag for grifting.
Obviously, you’re the only one that will be able to determine your comfort level when it comes to adopting new products and technologies in the early days. You might feel fine meeting only a few of the items on this checklist – or maybe none at all! And, of course, that comfort level will likely be different for your personal side project vs. the legacy application you maintain at work. Try pulling up this checklist next time you’re weighing the pros and cons and let me know if it was helpful!