Writing and coding - deadlines siphon out the fun
I was chatting with a friend on instant message tonight. We got to talking about how we enjoy coding and enjoy writing about technical things. He was telling me about how a couple of years ago he had sent some emails off to someone at APress after thinking of writing a book. The route the conversation took after that was interesting though. We both agreed that when writing articles or book chapters for a publisher, or even doing technical reviewing for books, pressures such as deadlines or word counts often seem to take the fun out of writing, whether it be code for software or text for an article or book.
When you're under a code-writing deadline it can sometimes make you rush the work you're doing, causing you to feel like the quality of what you produced isn't really representative of your abilities. You feel like you were forced into writing “half-ass“ code. The same can be said of article or book writing deadlines. Writing and coding for yourself however, without deadlines, brings so much of the fun and enthusiasm back into the work that I hesitate to call it 'work'.
When I write articles I usually like to read over what I wrote - often over a span of several days - to make sure it still sounds good to me as my way of editing myself before the real editor edits my work. Deadlines have cut that short many times. I guess that's what an editor is for but, I like to think that most editors find my writing easy to work with.
With the code I write, I often like to think of as many ways as I can to break it with bad input. I like to run unit tests on it. I like to refactor it in my head, thinking of ways to improve performance and security. Deadlines often eliminate the time I have for that also.
Thinking about this further, I came to a certain understanding about myself and the group of developers I consider myself a part of. No matter how much time we put in writing code or articles for work, we always like to have a side project going. Sometimes it's a website, maybe it's a project that we'll later release the source code for, or maybe it's just a blog that nobody reads (like yours truly). The reason we can't help but to do these things though is that we are in this for the long haul. To us, this is a career, not a job, nor a project, nor a contract. The side projects are our way of staying interested in and passionate about the technology. If it weren't for the side projects the stress and lack of fun at work might send us looking for another career path. We know in our hearts though, that coding and writing is what we were meant to do, so we don't let the lack of fun at work keep us from having our tech fun somewhere else. I think it's the same reason why pro athletes take up golf after they retire or go into sports broadcasting to remain part of the action. I think it's also the reason that so many of us like to go to TechEd, or the PDC, or DevDays, or TechFest, or the MVP Summit, or....you catch my drift. There are no deadlines to meet for attendees of these parties conferences other than showing up on time. It helps us renew the feelings we have about technology being fun.
Probably the biggest reason for this blog entry is because of the writing I've been doing for DevCampus lately (yeah I know you heard it coming, shut up.). The only deadlines I have right now are the ones I'm imposing on myself. So really, I don't have any. If I had to guess, I'd say I have about 20 articles that I'm writing currently, that are all in different stages of production. I get to bounce back and forth between articles, writing about whatever I feel like I'm in the mood for. Last night was performance tweaks for VSS, tonight was about licensing and installation of SQL Server 2000. Tomorrow night I'll probably finish up the article I'm writing on starting out as a computer programmer. Due to the lack of deadlines though, this is probably the most fun I've ever had writing technical content. If I don't like the way something sounds, I can spend a few days editing it or rewriting it until I'm satisfied.
If you don't have any side projects going, I'd encourage you to make one for yourself. I think you'll find it worth any amount of time you can donate to it. At least that's my experience. Your mileage may vary.