One of the most useful skills for people working in tech industry is the ability to avoid hypes and focus on stuff that matters instead. But the problem is that the things that matter, that improve your productivity and processes are considered “boring”.
Do you want to start using React or finally set up a proper error reporting solution for your frontend app?
Yes, I know the answer.
Should you care about NSA breaking into your infrastructure if you’re running a food delivery company or a knitting website? Probably not. I know it’s fun to spend nights coding your home-grown pentest solution or reverse engineering a binary to find a bug and write a 0-day exploit. But that’s not what you should focus on. Focus on boring stuff.
Make sure that everyone’s laptop is properly encrypted. Teach people how to use a password manager and burn all those pieces of paper around the office with “monkey32” written on them. Monitor any phishing activity around your website, explain to your customers that you don’t ask them for their credit card data or send them executables with “new updates”.
This one is usually an opposite of boring. For some teams deployment is crazy fun, for some it’s so scary and complicated that they do that once a month and for some teams it doesn’t exist, because there is a special team that only does deploys.
You know how would my favorite deployment interface look like? One green button with “Deploy” written on it.
Deployments should be boring.
You shouldn’t care whether you need to push your branch to the remote server or run
npm install before running a deployment script.
You shouldn’t care about tons of switches in that script either. Just hit that button.
Immutable Kubernetes cluster with a fleet of microservices deployed with your custom polished Go script sounds awesome. But chances are you’ll probably be fine on OpsWorks with the classic “load balancer - app - db” solution (at least until you’re mature enough to explore other solutions).
Boy oh boy… How many times have you been involved in these hour-long “tabs VS spaces”-like discussions? Aren’t you fed up with them already? Put a linter in place, agree once on all the rules and styles, be consistent with using them.
Let machines fight.
Keeping stuff up-to-date
You’re probably good at keeping an eye on the new versions of your favorite framework or programming language.
But remember that library you found on github a year ago and linked to your project because of the pending issue or PR? Have you ever checked on the status of that PR?
What about that authentication library you’re using? Didn’t someone just tweet about a new security patch for it? No, you missed it, because cat gifs are much more fun.
AKA “speaking with other people in your team”.
I know it feels good when you just picked up a new feature from your tracker and immediately rushed into coding. You have all those great ideas on how to build stuff and your fingers are flying over the keyboard. Slow down a bit. Get up from your desk and walk 5 steps to the left where your colleagues sit. Ask them for 10 minutes of their time and explain your solution over a cup of tea in the kitchen.
I knoooow that’s for old people, we are living on the edge - in a dark room with the closed door from where you can only hear some clicky sounds. But just try that and you’ll never see these giant pull requests full of drama which you have after every iteration.
Learn to enjoy boring
Next time you think about what to do next, make a list of “boring” chores that you’ve been avoiding for a long time.
Then start with the first item from that list.
It’ll pay off, I promise.
I love boring.