You're probably not a professional slacker
Every human being experiences tough days where their productivity is low. Professional slackers rarely experience productive days.
In my previous post, I discussed the professional slacker. If you haven’t read the post yet, I recommend taking the time to do so before continuing with this post. Interestingly enough, many of my friends reacted to it as if I were describing them personally.
The truth is that some aspects of our “professional slacker” could describe many of us sheep on a bad week, myself included. In fact, some of what I described could have been me at my low points.
Am I a professional slacker? No. But I have had bad days and bad weeks just like most of us have had. What’s important is that we don’t habitually practice laziness and sandbagging and take steps to make sure those bad days rarely happen.
A key first step to overcoming lazy tendencies is to join a team or company you believe in. How do you know if you believe in it? You know you believe in it if the work gives you a sense of purpose. Many software engineering roles involve creating or supporting a product that generates revenue for your company. You may or may not find purpose in that, but do you find purpose in helping customers? Ultimately, only you can discover what gives you a sense of purpose, but here’s some things that may do it for you. This is NOT an exhaustive list and some points overlap.
Projects of large scale
Customer facing work
Teaching/Mentoring
Cutting edge innovative work
Getting paid
Problem solving
Projects with humanitarian benefit
Troubleshooting/Fixing bugs
Recognition (public or company internal)
Leaving a legacy (open source work, blogging)
Some of these are available on most any engineering team whereas others are very limited. All teams should give you the opportunity to mentor, but very few grant you the opportunity to work on cutting edge innovative projects. For me, I find satisfaction and purpose in getting paid and working on projects of large scale. Find what works for you.
Establish routines and stick with them if they work. I have actually found that routines in my personal life are beneficial to my professional life. For instance, in my weekday routine I prioritize time to exercise. I treat that exercise time as important as my actual work. By prioritizing my physical health, the quality of my code at work actually improves. This will be the subject of a future post.
For work, I have only two self-enforced routines. I start every day thinking about what it is I need to accomplish that day. Usually, I write this out in my Slack self channel. Your Slack self channel is the channel where you can have a monologue with yourself. I’ve found it a good place to put my daily TODO. If my TODO from the previous day isn’t complete, then I add the incomplete items to my new TODO but leave them unchecked in the previous TODO. This lets me evaluate every morning whether I’m meeting my own benchmarks. If I thought I could could complete those items, what kept me from being able to do so?
Aside: On a technical note, Slack doesn’t easily allow you to add checkboxes to a message. You can get around this by using a Post. However, I actually track progress by using strikethroughs like this. If something is crossed out, that means I finished it on time.
My other work routine is my end-of-story document where I put together a document detailing what I did to complete a story. I’m still working on this one. I’ve only done it a total of 3 times so far, but it works as a good “self check”. It also is easy to pass it to a team member if they have questions about my work. The document usually has the following information:
links to all relevant tickets
links to pull requests
links to key lines in the codebase
a flow diagram
rationale for very decisions made a long the way
concerns/risks/etc.
Resist the temptation to delay work. Perhaps you’ve been in a situation where you think you’re about to complete a story, but then an unexpected roadblock gets in your way. It may be that you made assumptions earlier in the process that were not actually valid or that your codebase requires a complicated merge. Or perhaps the damn continuous deployment pipeline is broken again, so the build and deployment process can’t complete. A natural reaction to this sort of thing is to move onto something else instead of dealing with the frustrating problem. Maybe you selected two stories during the sprint, so you start working on the other one while leaving your frustrating story unfinished. Or maybe instead of finding something else to work on, you think maybe it’s a good time to check whether you won that argument on Twitter or not. In general, it is better to complete a story instead of moving on to another one. Multitasking is to be avoided. If you’re blocked by external forces, then at least attempt to get the blocking issue resolved. Send that email today instead of waiting till tomorrow.
Sign out of social media during work. As mentioned above, a natural reaction to unexpected frustration might be opening up social media. I am guilty of this. To avoid it, I sign out of my accounts on my computer and phone if it is becoming a problem. Sometimes I even go as far as to delete the app for the day. By “not having the app” or opening up to the annoying login page it reminds me that “oh yeah, social media during work is a productivity killer and has little to no benefit. That’s why I signed out”. It is amazing how helpful putting soft barriers in front of things like social media can be.
Put yourself in your manager or employer’s shoes. It is no secret that software engineers are paid well. Many people can learn to code but very few can consistently ship quality software. Your company and manager hired you because despite your high cost it is worth it to them to ship software. So it is correct and proper for them to expect you to ship software consistently and for your performance to improve with tenure. Furthermore, failure to do so on your part affects your manager’s performance and often your company’s profitability. They are entitled to your time whether it feels that way or not. And let’s be honest, most other jobs don’t have nearly the flexibility or comfort we do. Sandbagging is not possible in many roles. Imagine if your emergency room doctors and nurses did this.
Take breaks away from your workstation. It might sound like I think that every minute from 8-5 should be spent working. No, breaks are absolutely important. We have to eat and clear our heads sometimes. In rare cases, you might need to cool down after an argument. But I think you should do this away from your computer. Why? Because if you’re still at your computer you might end your break before you are mentally ready and because it’s important to move your body during the day. Go get coffee, take a walk, have a conversation with whoever else is on break. My mailbox is down the road from me, so one of my daily routines is to get the mail during a break. I always come back from that break more productive.
It doesn’t make you a bad worker to get distracted from work from time to time. Life will force distractions on you at times. Let’s do what we can to develop habits to manage these distractions.
I am adding a professional slacker’s response to this post. This is fictional and just for fun. Think of it as a creative writing exercise but also sort of a sh*tpost. I hope you enjoy it!
Hello, my name is Slacker Sam. I’m a software engineer at Inefficient Corp. I am in complete agreement with much of this post! Shocking to you? Here’s why.
I joined a company where I found meaning and purpose. What gives me purpose you ask? Here’s my list.
Developing super simple features and spreading the work out over years
Getting paid for not doing much
Coaching fellow slackers on how to get away with it.
My daily routines include:
Trashing far more successful companies on Reddit
Supporting posts on LinkedIn calling for 24 weeks of vacation for all employees
Never using my vacation days since every day is a vacation anyways
Taking breaks browsing Reddit and Twitter
Laughing at social media outrage that I caused
I understand your concerns with “social media” being a productivity killer, but productivity is not valued in my org! My manager deals with productivity issues by increasing headcount. So I’m actually creating jobs with my habits! Does that sound like such a bad thing to you? You might think I’m in danger of being the first one to go during a layoff, but I’ve prepared for this. I have trained junior engineers to be slackers as well, and we all know the juniors will be the first to go!
Where I disagree with your post is about delaying work. The vast majority of times I delay work, it is because someone else didn’t do their job so I can’t proceed. My strategy in this case is to 1.) identify who is blocking me. 2.) wait till the end of the sprint to tell them. This gives me sometimes a whole 10 days of cover where I have a perfect excuse to be inefficient!
As far as “taking breaks away from my computer”, listen bud I hear you on this. My IPAs are in the fridge, so I have to walk away from my desk to get them. HAHA
—sincerely, Slacker Sam