I was speaking with a friend the other day about how lazy developers tend to be good developers because they will automate most of theirs tasks. While I understand the point being made (automating tasks is a good thing), but I do not agree that it makes the developer lazy. I began ranting to myself, and now I am ranting to you.
Put it this way, how many times a week do you perform the same task? If you spend 30 minutes a day performing a repetitive tasks, that is two and a half hours a week that could be spent elsewhere. If you automate these tasks, you can spend your new found time elsewhere, like those annoying meetings you have to go to every week. Two and three hours saved in a week may not seem like much, but most people under-estimate how much time they spend doing a manual process that could be automated.
For example, I deploy 10-20 virtual machines a week. Sometimes more, sometimes less. The process is very repetitive. Steps: Log into vSphere, create a virtual machine, define hardware provisions, boot to an ISO, install the OS, log into OS, assign static IP address, set A record on the local DNS, perform updates, install required software, configured software, hand off to the developer that requires the system and hope that you did not forget something. Just the other day I had a request for six virtual servers before 8am, all of them being identical. Imagine if I had to manually perform all of those steps on each server with no automation? My entire job would essentially be deploying virtual servers and nothing more. Fortunately we leverage automation technology to do these tasks for us. Is this laziness or simply being more efficient?
Automation tools have become popular in environments where new servers are provisioned and configured without the developer having to baby sit. One can simply kick off an automation script or tool and move on to something else while their virtual servers are built. The only downside to automating is the time spent developing and implementing the automation process. It takes a lot of time and dedication to write a Chef cookbook that installs and configures an oracle database on six different versions of Linux. It takes time to configure Foreman to integrate into your environment.
Lazy developers prefer easy repetitive tasks with no learning curve. Smart, dedicated, and hardworking developers will spend time automating repetitive tasks in order to spend their time doing more important work. Is your DevOps team automating tasks? How much time a week can your team free up?