Congratulations! You landed your first development job. The first thing they want you to do is to set up a local environment, document how you did it, and try to write some automation scripts around that process so the next new hire can get started faster than you. Welcome to DevOps!
Wait! I was hired as a Web Engineer ! Not as a devops guy!
WRONG! You were hired as a resource. The title is just to make you feel better about describing your job to your friends who have no idea what you do. Also, your title is only valuable to your next position. I’ll explain that another time. You are a resource, and the thing they need you to do is make it easier for the next new hire to do what you are doing. Yes, your job is to help your competition get a head start. Ok, that isn’t really what is happening, but that is probably how it feels.
Truth is, you are actually helping the company by creating standards for what a local environment is. Often the documentation for onboarding is out dated. The last new hire is responsible for keeping it up to date. If it is wrong, fix it. If you can make it better, do that.
The world of devops
Now the world of devops is overwhelming, always will be. I can write a powershell script that automates an entire virtual private cloud in azure, but is worthless if you are using a mac (for the record, I have done that, and it was amazingly cool to see it all provision successfully). I could spin up a jenkins cluster with two agents and my employer is using TeamCity, or VSOnline. So now I have to learn that. I have everything working great on multiple vms with scale, and now they want to move it to a container system using docker. Time to learn docker.
I sent this out in an earlier post, but here it is again: The periodic table of devops. It is pretty amazing on how much you need to know to be a “guru”. Let’s get back to your coding skills…
Why you really are hired
You are hired as a coder, not because of your amazing knowledge of code, but usually your amazing ability to problem solve. If you are a good developer, you can write code to produce expected results. If you are a great developer, you can solve a problem in a maintainable, deployable, and explainable way. If your code is crazy complicated and you are proud of that, you might be a bad developer. Oh man, I could do a “Jeff Foxworthy” you might be a bad developer… I’ll save that for later. Simple code is amazing to me. Simple process is even more amazing. Simple communication is the most amazing thing to me.
So before you go on complaining about how you were hired to do one thing and you aren’t doing what you were hired to do, think of what you are actually doing. You are probably learning something you didn’t know, helping someone who can’t do what you do, and making you more valuable overall. Wow, if you knew me, you should be laughing right now because since I was 15 I have always hated when people told me that.
Ok, Quick Story…
When I worked at A&P, yes the grocery store, I was scheduled to work outside for 4th of July, a special holiday event and I was so excited to work outside, selling hotdogs, flags, etc… Well, I showed up for my shift and was put inside doing regular cashier duty… then covering for some stocking that needed to be done… and even getting buggies! Well, I was furious. I went over to the manager, as he was stocking the dairy section, and said, “I was scheduled to be outside and I’m doing everything else. I want to work outside like I was scheduled.” He looked at me and said, “Do you think I planned on stocking dairy today? Or breaking down boxes in the back? If you don’t want to do that, then pull your till and just go home.”. I did. I left all angry. I told my mom what happened and she immediately said, “You need to go back and apologize and get your job back”. Well, in my mind I was right, but I wasn’t. The reality is I was hired to be a team player and solve whatever problem needed to be solved. I ended up improving their entire signage system for sales and continued to work there for several years. Valuable lesson, still repeating it at times, but definitely learning more.
Think about what you are learning, think of how you are helping someone else, and see how you can make your solution simple and efficient. Whether it be a powerpoint slide deck, a machine learning algorithm, or something as simple as a documented on-boarding process with a wonderful build script for a local environment.
Ok, that’s all for tonight. Go build something amazing!
Also published on Medium.