By Su Wang, Enterprise Software Engineer, UC Irvine. If you’re like me, you love new and shiny stuff. It’s all about JS this, MEAN stack that. (Those are real things, right?) But let’s be honest. Ninety percent of the new and shiny stuff you try out fizzles away in a matter of months, if not weeks. They clearly do not belong in an enterprise environment that prizes reliability and maintainability.
So what are you left with? Your existing, battle-hardened tech stack, where you know every nook and cranny, but that’s not the most exciting thing in the world. How do you bring innovation and new ideas into this environment?
Here are four steps I take to bring some new technologies into my team’s existing processes and tech set.
Step 1: Do your research
Do the necessary legwork to make sure it’s something that you actually need. Here are some questions you need ask during this process:
Who uses it and how?
This usually involves searching for and reaching out to other organizations (especially higher-ed) that are using this tech and really picking their brain about how it’s going for them. Be sure to get both the technical and the user perspectives. Keep in mind that users may be internal or external.
How is it maintained?
Especially for open source projects, the folks maintaining the project are way more important than the actual software because software evolves and as it evolves, it needs maintainers.
Sometimes, a larger for-profit organization (e.g, RedHat), will be the primary maintainers. However, for smaller open source projects, sometimes it’s just one developer with some free time on the weekend.
Step 2: Ask how this fits into your existing world
Now that you know everything you could find out about the technology itself, it’s time to figure out how this tech fits into your existing world.
Things to consider:
- Where and who does this add value for?
- What do we lose if we do not adopt it?
- What do we lose if we adopt it, and the technology goes away or is no longer maintained?
- What could we be doing instead?
The key to making sure the new tech is not something extraneous is to target it towards solving one big problem you have and making sure it does that really, really well, without too many side effects.
Step 3: Do an experiment
Halfway done. You’ve figured out how the technology works. You’ve figured out where it could go into your world. Now it’s time to get your hands dirty.
Rather than fully committing to a new technology, do an experiment. Find a small, low-risk project that could benefit from this new thing and implement it there. You’ll want to include your regular team (developers, quality assurance, support, etc.) in this discovery process.
Be sure to document the benefits and downsides as you experiment. This information will prove valuable in step 4.
Step 4: Decision time
Now it’s time for the hard part. Take everything you’ve learned and make a well-informed decision. Monitor and document whatever metrics you can to see how well (or not) this decision is working for your team:
- How well is this new thing solving the original problem?
- Are other members of your team often taking advantage of the full power/resources of this new technology rather than resorting to what they know/what’s easy?
- If things are not going well, what can you learn from this?