The Value in Not Working
You wake up at 5:30 in the morning. Get showered, brush teeth and hair, dress, walk the dogs, get the kids ready and fed breakfast and out the door by 7. After dropping the kids off at school you remove the Frozen Soundtrack and put on a coding podcast (like CDP) for your drive to work.
You get to the office, find the coffee and start pouring the juice of life down your throat before the morning stand up. A few meetings, some emails, and a brief stint looking at the code and you’re off to lunch with coworkers discussing the afternoon’s agenda.
Upon returning to the office you code the rest of the afternoon then it’s time to go. On the way to pick the kids up from school you listen to another podcast, this one about starting your own business because once the kids are in the car it’s Frozen, Frozen, and more Frozen.
You get home, get the kids a snack and set them to doing homework while you set up shop in your office for a long night of coding on your side project.
Wash, Rinse, Repeat. Another day!
This week Will and BJ discuss why we as developers need to take time away from working and coding. The episode starts with the guys defining down time and how it applies to developers. Next they give reasons for needing time away from coding with emphasis on avoiding burn-out. Will opens up to the audience about his experiences with burn-out and how he deals with it and attempts to avoid it when possible. Finally they talk about how to manage taking regular down time and end the episode with a discussion of their favorite hobbies and how they get away from the computer screen.
09:50 What exactly is Down Time?
The Dictionary Definition
“inactive time (as between periods of work)” ~ Merriam-Webster Dictionary
In addition Urban Dictionary defines down time as “a period of rest or sleep taken during the day.”
Not Time For Other Projects
Down time can mean tile spent not coding at work for various reasons. For this episode though the guys use down time to refer to total down time, not at work and not working at home. Time away from the computer screen.
“Have something worth spending time/boasting outside of work. This helps you to [have something to] draw inspiration from, when things don’t go well at work.” ~ Ramanan Jagannathan (Quora answer)
Taking Time For Yourself
Taking time for yourself to refresh and relax will help mental wellbeing and avoid problems related to overworking. This can be a difficult process. A few weeks back Will talked about feeling guilty for spending time playing video games.
12:25 Why Developers Need Down Time.
Developers need time away from the computer to recharge, gain perspective, and reduce the effects of working too much.
Burn-out is defined by Merriam-Webster as “physical or mental collapse caused by overwork or stress.” It is the cumulative effects of working too hard for too long without a break or time away from work.
The physical effects of burn-out include feeling tired and sick most of the time. This may even manifest in extra muscle aches and pains, frequent headaches, and back pain. Will states that one of the signs he knows he’s working too much is when old injuries start hurting again.
Emotionally burn-out appears very similar to depression. Overworked developers may experience a sense of failure and self doubt or feel helpless, trapped, and defeated. A feeling of being alone in the world or detachment also accompanies burn-out. The motivation that drove them to the point of overwork or overcommittment is gone. Burnt-out developers may present with a negative or cynical outlook on life, work, or other coders. They tend to have less satisfaction or sense of accomplishment even when finishing projects.
Not only does taking time away from the computer help to prevent burn-out but also promotes mental wellbeing. Time to relax and refresh or loosen up. Just being able to spend time with friends and family without the pressure of working can build the motivation to return to working.
“When all you do is deal with machines it biases your decisions”
Time away from the computer gives developers a better perspective on life and better understanding of the users of their code. When coding is the only thing in life we can forget that the code we write is going to be used by others. Also, taking time to relax will give developers a better ability to focus when actually in front of the computer. In effect gaining a better perspective on life through time away from the computer will help developers to be better coders.
25:42 How to Take Time Away From Projects and Work.
“Wine, persons of the appropriate gender, and song.” ~ Phil Darnowsky
Scheduling Free Time
One thing that Will and BJ both learned through experience is that if you do not schedule free time as in block off a chunk of time in your schedule for down time it will get taken if not by you then by someone else. This is a vital strategy to overcoming the feeling of wasting time that could be better spent because it is in your schedule. Blocking off the time also reminds you that the time is productive because when you are relaxed you will focus better on the tasks when working.
Spend Time With Family and Friends
Time with people you enjoy being around doing the things you enjoy doing is a great way to relax away from the computer. BJ visits his nieces and nephew as often as possible. Will takes time each week to watch X-Files with his wife and play retro NES and SNES games with his daughter. They will both go to lunch with He-Who-Shall-Not-Be-Named at least once a week and on fishing and camping trips with friends during the warmer months.
While not a cure for depression exercise can help combat both depression and burn-out. It relieves stress and helps take out aggression. It can be as simple as going out for a walk when you are stressed or frustrated to clear your head to as in depth as the almost meditative practice of swinging kettlebells Will does on a regular basis. Get up from your computer and move around, you’ll feel better. Even the out of shape developer that is up moving is better off than the one that never leaves the computer.
39:30 Complete Developer Hobbies
“Whatever you do, do it with all the power you have left. Like you do in your work time. Do it seriously. A hobby is not just a hobby, it’s an expression of who you are. Don’t let anybody fool you, when they say hobbies are not important. Nowadays we can afford having hobbies.” ~ Zen Programming
To close out the episode BJ and Will discuss some of their individual hobbies they enjoy to get away from work and destress. Both are avid readers with large libraries of books not related to coding or learning to code. BJ enjoys riding and modifying his motorcycle. Will even points out in the episode the change in BJ’s tone of voice when talking about his motorcycle. Wine making, cooking, and baking are hobbies Will enjoys as the recording studio also hosts a few dozen bottles of wine he recently made. The goal is to have something to be passionate about off the computer screen.
The Pi Dashcam
This is a guide to building your own dashboard camera with a Raspberry Pi. It has a front and rear camera for the vehicle. The guide is well written and broken down into sections starting with installing the OS, wiring, and then packaging.
- Raspberry Pi Model B
- Stealth Black Raspberry Pi Case
- Pi Camera and mount
- Microsoft LifeCam HD-3000
- 3 x 3mm LEDs of different colors
- microSD card
Arch Linux or Raspbian OS
Tricks of the Trade
The way your software loads up other systems dovetails with down time nicely. You want to send information in batches with breaks in between. Don’t do all of the available work at once to avoid catastrophic cascading failures. Trying to do too many things at once you don’t do any of them well and when one fails they all fail. Kanban boards are built to show a visual representation of this concept if too much is piling up it will be visually obvious. The way we interact with computers is with metaphors to the way we process information.