I just got off the phone from a very frustrating conference call. Today’s call brought to light something that I want to address. It’s a misconception that many non-developers have about software developers. I know this misconception exists because of the way I’ve heard people refer to our profession; because of the way non-developers in our industry often seem to treat developers.
I think there’s a misconception that our days are filled with free time, that we relax and chill, and that our jobs are so easy that they don’t even qualify as real jobs when compared to most other professions. I mean, we sit in a chair and use a computer, how hard is that?? Developers lead easy lives, right?
The truth is, most people have no idea what our lives are like.
Background
Before I begin, let me clarify my situation. I’m married with a 7 month old baby. I have a masters degree in computer science and am planning to begin work on a PhD next fall. I work for a (very) small company that seems to be in perpetual startup mode, meaning we have few resources and just can’t seem to break in to the big money needed to grow a mature company. Still, I genuinely enjoy my work. I’ve become very interested in the business domain (information retrieval/knowledge management), and I like working here. There are a lot of perks to working here, including being able to live in a very small town while getting paid decent money to write code.
Up and out of bed…
Here’s how my typical day goes. I wake up early, around 5:30. As I get out of bed, my mind starts swimming with partial solutions to whatever I was working on the day before. As if by magic, my brain somehow manages to come up with useful solutions (sometimes) while I’m sleeping. Once I’ve woken up a bit, I help the wife get the baby up and fed while we both get ready for work. If all goes well, I’m out the door and at the office by 7:00. I spend the first little bit catching up on E-mail, planning my work for the day, and reviewing what I did the previous day so that I’m ready for the 8:00 scrum. I scan a few development blogs for useful articles, too, and tag things to read later if time ever allows.
Morning Push
From scrum time until lunch time, I’m doing development. That may involve testing, it may involve design, and it more often than not involves coding. This is not easy. If developing good software was easy, everyone would write perfect code, but it’s not. It’s very hard. It’s mentally taxing. Unless I’m interrupted for a meeting, this is my entire morning: working as quickly as I can to create an efficient, maintainable solution to whatever story (AKA a feature for those not in the development business) I’m working on so that I can move on the next story. There is no slack time here. I use a Pomodoro timer to help keep me on task, trying to address IMs, E-mails, and other distractions in my 5 minute breaks. I occasionally get distracted, some days more so than others, but I do my best to stay focused on the task at hand.
Lunch != break time
At 11:00, I take a “break” to eat lunch. Usually this involves warming up the meal I cooked over the weekend, then eating it at my desk. I’ve started taking the time to read one research paper (or chapter from a relevant e-book) during this period, too. The papers and books I choose are all things related to my job. It’s not like I’m sitting around reading sci-fi books, I’m spending my lunch time trying to learn something that’s going to make me more valuable to the company. After I’ve finished reading today’s paper/chapter, I return to whatever task I was working on before lunch (note that I’m usually still physically consuming my meal at this point; it’s usually around 11:30 now).
Sometimes after lunch, the team takes a 30 minute break to do something recreational together. Other days, we may all go out for lunch. Occasionally, we will all eat lunch together while we watch a webinar. Again, we choose webinars that are going to help us contribute more value to the company.
Afternoon Push
After lunch/break, it’s right back to development. This mirrors my morning: I use a Pomodoro timer, try to stay focused, and drive on through until the end of the day. Again, there may be meetings or other interruptions, but most of this block of time is spent writing code. I sometimes take a break to write a blog post, but my posts are (almost) always related to work, and often are used as a way to get feedback on things we’re doing internally. We have a fairly small team, so I use my blog to try to gather feedback from a larger audience (see: liteGrid).
“Life” outside of work
“The end of the day” comes at different times. A couple of nights a week, I train kick-boxing and jiu-jitsu, and on those days I’m out of the office promptly at 5:00. The days where I don’t have something to force me out of the office, I often find myself texting my wife that I’m running late when the clock says 6:30. When I return home, I spend as much time as I can with the wife and baby. The baby is usually out by 9:00, the wife is usually in bed by 10:30 or 11:00. I usually take the next hour or so to (you guessed it) do development work. Depending on how behind we are, I may work on the same story I was working on when I left the office. If we’re not “OMFGWTFBBQ” levels of behind schedule, I may work on something that’s directly related to an active story, but I usually still work on something that’s going to benefit my employer. Lately I’ve been working on Esenterate, which I hope will be used in the backend of a future product. I also work on liteGrid when time allows (again, used by my employer).
I finally decide to go to bed somewhere around 12:00 or 1:00. Sometimes its earlier, depending on how tired I am, but I’d say 12:00 is about the norm. If I’m not too sleepy yet, I’ll open up the book on my nightstand (always a development book; always something that’s going to make me a more valuable asset) and read a couple of pages. Then the alarm goes off, and it’s 5:30. I guess I slept somewhere in there. It’s time to wake the baby up.
The end… ?
As I typed this, I just realized how pathetic my life probably sounds. :) It’s really not that bad, and my intent is not to paint a bad picture of the work environment here (it’s not great, but not horrible) or my life. Sure, it’s not easy, but I enjoy my work, I still spend time with my family (and occasionally my friends), and I’m content. The moral of this post is simply this: software development is not easy.
In the past, I’ve worked quite a few jobs outside of software development. My first job was in fast food. From there, I took a job as a farm hand. As an undergrad, I worked in the campus print shop (running old-school machines, not doing design or anything that involved a computer) and also at a retail department store. It wasn’t until I was a junior that I started actually getting paid to do development work. I’ve also helped remodel a house (though I sadly wasn’t paid for it). In my opinion, without a doubt software development is far more taxing than any other job I’ve ever had. A day of hard work on the farm can be offset by a hot shower and a hot meal, but I’ve yet to find something that can so easily replenish my mind at the end of a hard day of coding (though Red Bull does provide temporary relief). With any other job I’ve had, I could mentally “check out”, but I can never, ever do that while developing.
What brought this on…
Sadly today’s conference call included us (the developers) basically being told that our estimate for building a product for a completely new platform that none of us have experience with was too high and vague, and that the estimate should be lower because we should have already used our free time (ie: not paid for) to learn the platform already. I found this to be extremely insulting (on a lot of levels) and completely inappropriate. Things like this have happened a few times since I’ve been here, and I ran into it several times while doing consulting work. I’ve also heard stories from others in the industry who have encountered similar attitudes. I hope that this post will serve as a reminder that a) developing software is hard, and b) software development is often a thankless career path. If you encounter someone who says “oh man, you developer guys have it sooo easy in your air conditioned offices”, remind them that many of us (me) work in offices with no windows, and send them a link to this post. 🙂
did not sound pathetic to me at all. in fact it is very nice when you have a job that is also your hobby. and thats when you get really good at it.
Nice post, Nintendo DS for life! NDS > PSP! <a href="http://www.ndsroms.us">NDS Roms</a>
You not going to believe it but I have lost all day digging for some information about this. I wish I knew of this site earlier, it was a thought provoking read and really helped me out. Thanks again,<a href="http://jennysdietingdiary.wordpress.com/2009/12/09/an-introduction-to-medifast/">My Site</a>
I ne’er believed i would brainstorm such a comprehensive work.Thank you you
I love your writing I also must add say dogs are my favorite animals by far. Dogs are loyal, caring and protective. What else would you want in a family pet?
Could you please provide more information on this subject?? By the way your web site is wonderful. Best regards.
Hi there, I found your blog via Google and your post looks very interesting for me.
Hey there! I have been lurking for a while now on your blog and finally wanted to get the courage up to mention thanks to you. You have galvanized me to start out my own blog and it’s been going ok so far. I’m attempting to start an article directory, however am not positive if that will eventually work or not. Anyways..thanks for your sensible insight into this crazy blogging world!
How do you function on only 5.5 hours of sleep?!
I recommend an IV-drip of Red Bull. 🙂
This is to be honest a Super knowledge gaining post and all thanks to yahoo search engine get me on here. I loved reading your post and added to the favorites. The views you tried to put up was clearly understandable. My mom also appreciated after reading this article. I will browse for more sooner. bye – Abbie
Hi buddy, your blog’s design is simple and clean and i like it. Your blog posts are superb. Please keep them coming. Greets!!!
I’ll gear this review to 2 types of people: current Zune owners who are considering an upgrade, and people trying to decide between a Zune and an iPod. (There are other players worth considering out there, like the Sony Walkman X, but I hope this gives you enough info to make an informed decision of the Zune vs players other than the iPod line as well.)
Intimately, the post is really the best on this worthw hile topic. I concur with your conclusions and will thirstily look forward to your coming updates. Just saying thanks will not just be adequate, for the phenomenal lucidity in your writing. I will instantly grab your rss feed to stay informed of any updates. Good work and much success in your business dealings!
I know this is really boring and you are skipping to the next comment, but I just wanted to throw you a big thanks – you cleared up some things for me!
I can see that you are an expert at your field! I am launching a website soon, and your information will be very useful for me.. Thanks for all your help and wishing you all the success in your business.
Sorry for the huge review, but I’m really loving the new Zune, and hope this, as well as the excellent reviews some other people have written, will help you decide if it’s the right choice for you.
I just couldnt leave your website before saying that I really enjoyed the quality information you offer to your visitors… Will be back often to check up on new stuff you post!
Usually I don’t make comments on blogs, but I want to mention that this post really forced me to do so. Really nice post!
Most of the time I do not make comments on blogs, but I have to mention that this post really forced me to do so. Really nice post!
It is good to see you make postings on this topic, I should bookmark this site. Keep up the good work.
How are you, I stumbled upon this website by on a fluke when I was going through Google then I went to your website. I have to tell you that your website is really cool I like your theme! Right now I don’t possess any free time at the moment to look through your website web sitebut I bookmarked it. I will be back in a day or two. Thanks for a great site.
Nice to see you posting on this topic, I have to book mark this website. Keep up the good work.
Sorry for the huge review, but I’m really loving the new Zune, and hope this, as well as the excellent reviews some other people have written, will help you decide if it’s the right choice for you.