Teams are often searching for a magic framework or library or tool that will solve all their problems. The vendor product that has never let any customer down. The answer that will allow the business to get everything they want faster. Never in my life have I actually heard of or read about a solution that proved to be the mythical silver bullet.
The truth is, there is no silver bullet. That’s all. You can stop now and go back to your teams in despair. Joking aside, the reason that there isn’t a silver bullet is that there is no one solution that is always going to work for everyone. If there was, you would have heard about it. You wouldn’t have to go searching for it because it would have already been in your toolset.
You have lots of tools in your toolset because of the fact that no single tool does everything. Every now and then, you’ll see an advertisement for a new mechanical tool that will replace all the others in your toolbox. The wrench that can turn every bolt. The screwdriver with every possible tip. These tools are great, and obviously reduce the number of tools you need, but you can’t effectively hammer a nail with a wrench. You can’t saw through a piece of wood with a screwdriver.
In the world of software, nothing stays still. Just as you get caught up with one method of doing things, another starts up and leaves you behind again. If you are writing software, you are going to need to be keep learning or you will eventually be left with obsolete skills. New technologies like containers evolve at a furious pace and even experts are challenged to keep up with new developments.
Standards are hard to agree on. Despite the fact that we have had the World Wide Consortium to help us define standards, there are still lots of software solutions that continue to use proprietary protocols and interfaces for communication. Just because there are standards doesn’t mean that people will use them, and the browser wars showed us that some developers consider those standards inferior to their own designs.
If you don’t have the skills you need on your team, it is generally a good opportunity to invest some time on training to get your team up to speed. Finding someone with the specific talents you are looking for is generally going to take longer than simply applying some training using a site like Coursera or Pluralsight. Investing in your team’s growth has other benefits as well, such as improving skills they already have and finding new and better ways to do the same tasks as before.
While some solutions continue to prove useful, sometimes there are better ones out there that you just aren’t aware of. Before you simply decide to use Oracle as your database backend, consider whether storing your data in a relational database even makes sense. As datasets grow into data warehouses, other solutions like Hadoop actually manage that data better and allow you to search through the data in a more effective way. These solutions also tend to be a lot cheaper to implement.
The bottom line is that there is no magic. No miracles. You need to do the work to find the right solutions to every problem and not try to solve all the problems with the same solution. Look around, try different things, watch webinars and take classes, and eventually you will find many options that you can evaluate against each other. Don’t just take the promises of a vendor — make them demonstrate that they can actually deliver on it or move on.