These are strange times in the world of software development. The technologies available to the world are more robust now than they’ve ever been and even lone wolf individuals can build some pretty incredible products. But the question still has to be raised – is it better to specialize in one thing or to try and become a slightly less knowledgeable expert in a number of different things?
In the world of technology, there are any number of things to specialize in. You could be the world’s foremost expert on optimally creating Block Range Indexes for PostgreSQL, for example. Or maybe you know more than anyone else about installing Redhat linux kernel 3.10.229. And in the past, it was much easier to succeed having that kind of fine-grained knowledge, but the changing landscape of technology is making it much more difficult.
The story of technology is largely the story of automation. From the very first automated looms, machines have sought to supplant physical human labor. What’s really changed in the last couple decades is that our technology is now supplanting our mental human labor, and this has proved to be a harsh reality for specialized experts.
Because the reality of the situation is that nowadays if you can automate a solution based off of one person’s expertise, you don’t need a hundred or a thousand people who know a ton about one particular subject. You just need that one expert who knows the most.
And largely what companies like AWS are doing is scooping up these experts and focusing them on the various bits of minutiae that will optimize their stack. They have teams of people who are working everyday to make their service as powerful and stable as it can possibly be, but those teams of people are able to build a product that millions of people can use. And that’s tough for specializers.
If we imagine a million companies use AWS and that each of those companies would need on average, say, ten specialists working to optimize their product, that’s ten million jobs right there. But if AWS can hire a thousand specialists and those people can create an automated solution that will be just as good? Well, now you can see why it’s not a great time to be a specialist.
(And in reality, the solutions AWS provide out of the box are going to be better than just about anything a dedicated specialist can provide.)
That being said, there are obviously opportunities out there if you truly want to go the specialist route. Clearly AWS is always looking to hire the best and brightest to come on board and make their product even better. And if you really are hooked by something and you want to become the best in the world at just that one thing, more power to you! The world needs specialists. It’s just that the world doesn’t need as many of them now.
It’ll be no surprise that we’re long on jacks of all trades and short on specialists. The reason being is that the technology landscape as it stands today is being built for non-specialists, meaning folks who want to be involved in every step of the process. Whether it’s new frameworks or third-party services, you don’t need to be an expert in just one thing anymore.
Most developers these days have their hands in every piece of the software development process. They do design (or help do it). They build architectures (or help build them). And then they also write the actual code that powers the application.
And that’s something we encourage at Gunner Technology not only because it really does seem to be the future of software development, but because it’s actually just a lot of fun. Once you have a complete knowledge of the software development stack, the world is your oyster. You can basically write your ticket at that point.
You make yourself so much more attractive to potential employers by being able to hop in anywhere you’re needed, from design through engineering. That’s something any development shop is looking for (and honestly expecting at this point). So it’s somewhat of a necessity to be a jack of all trades these days.
Of course, a word of appreciation for the specialists. Without them, none of the tools for ths jacks of all trades would exist. Much like theoretical physicists providing the math so that practical physicists can launch satellites into orbit, the software development world needs specialists.
We need the obsessed individuals who want 99.9999999999% uptime for the servers and who want to squeeze every nanosecond they possibly can out of each database transaction. These are the folks who really make it all work, so thank goodness they do what they do.
But if nothing has grabbed your attention in that way, nothing has made you want to do one thing and only one thing for the rest of your career, we can’t recommend becoming a jack of all trades highly enough. It’s the best way to future-proof yourself in this ever-changing technological landscape. (Although, how future-proof that actually is… only time will tell.)