The other day I had to fix our home printer. Despite being online and connected to the home network, no one could reach the printer in order to, well, print something. It turned out that due to a power outage there was something wrong between the printer and the router, and a quick reboot of the router fixed everything.
As I got everything working again, I couldn't help but think of two things:
First, there should be an easy way for someone to write a bit of code that would check to see if the printer's internal webpage is reachable, and if the page is not reachable, reboot the router. You could even log this activity and send an email to notify the users.
The second thing I thought about was an article Scott Hanselman wrote a few years ago about how everything is broken and nobody is upset. We have lousy software all around us. I see this in the form of poorly designed products that don't scale beyond a few hundred users. It has become more important for the developers to ship what they have today and worry about scalability and performance tomorrow.
This, in turn, leads to the need to have an IT professional come in after the fact and help make things better. But that means the IT pro is essentially a piece of middleware, sitting between the end users and the developers, helping to keep things connected and running.
And middleware is something that gets replaced through automation and robots.
In many ways, system administrators are a lot like the cashier at a grocery store checkout. We are mostly operational by nature, often waiting until we are needed to take action, and able to handle a few different tasks at once. The list of tasks we perform has four main buckets:
- Query tuning
As a sysadmin, there is always emphasis on automating parts of our role so we can spend our time working on things other than watching a blinking light. One of the most common things we automate is the collection of performance data to help with query tuning.
Despite having all the tools necessary to troubleshoot application and database performance, the truth is an IT pro is middleware and middleware can be replaced. We spend time automating tasks left and right and we never, ever think that we are coding ourselves right out of our jobs.
But that's what is happening. Service providers such as Microsoft are using code to replace administrators. Just look at the list of functionality being added to Microsoft Azure, services usually done by database administrators:
Microsoft Azure is building the equivalent of a grocery self-checkout line.
I know someone reading this will point out how a human is still needed to perform some tasks in Azure. And I won't disagree, but I will remind you that through the use of Azure Machine Learning, it won't be long before Microsoft is providing a service that will require little to no human intervention. Just look at what they're doing with auto scaling of applications and you can see the trend is towards having fewer people and less middleware.
Just as I'm certain cashiers never thought they would be replaced by customers willing to do the job themselves, most administrators will read this and think there is no way their job will be eliminated. The idea that somehow humans are always going to be important, and that we can't be replaced, is a failure in our critical thinking skills.
I'm sure that's what workers in car manufacturing plants thought as the robots were deployed. Amazon drones will replace the need for a delivery person. We have machines to make hamburgers at fast-food restaurants.
We should have noticed this was coming; that one day we would code ourselves right out of our jobs.
It's not all doom and gloom here, though. The world of data is changing, and along with it so is the role of a data professional. You get to choose if you want to pivot your career into a new role such as a data analyst or perhaps a cloud architect.
For me, I just want my printer to work after a power outage.