I don’t remember the exact quote. Actually, I don’t know if she actually said it aloud, or I could just read it in her eyes, but my wife recently let me know (in her own special way) that I spend a heck of a lot of time on my computer with very little to show for it. I’m sure I’m completely over-simplifying it, but I think it boils down to this:
I’m doing something software related roughly 100% of the time I’m on the computer. Since software development is my livelihood, one could reasonably deduce my time spent on the computer is time spent working. Since most people get paid for their work, it isn’t such a stretch to think I should be compensated for my time on the computer.
I’m sure that some of you are ready to get into a shouting match with my wife. Now, let’s not judge her quite yet. She does understand that a good number of coders (including her husband) have a love affair with their work. Software development may pay our bills, but we also eat, sleep and breathe code and my wife knows it. She also knows that we need to spend some of our spare time keeping up the Joneses – learning, experimenting, creating, reading, playing outside of office hours. She totally gets it. She really does. All the same, I do tend to spend an exorbitant amount of time “online” and my wife does have good reason to give me the stink-eye more often than I wish to admit.
[ Off on a tangent, I have another blog entry in the works. It's about the importance of choosing an appropriate development estimator. In the process of writing the article, I considered how estimation plays into our daily lives. For example, when my wife asks "What time are you coming home from the office today, Honey?" I tend to be overly optimistic. When I arrive home a few hours later than expected, the stink-eye comes out. Perhaps you have seen it as well? ]
Most recently, my wife asked why a coder would contribute to an open source project. I fell back on the the obvious answers: learning and enjoyment. I knew what she was thinking, ”Well, that’s fine, but what you are really doing is coding and giving the product away for free.” She was blunt, but she was right. It is a little different than just goofing around on the computer “learning” and “having fun” on my spare time. This was contributing to a legitimate development effort … for nothing. I did mention that it was also good for networking (meeting other developers, finding future work) but I don’t think I appropriately made my point and the conversation died a quick, yet terrible, death.
Since our talk, I have been thinking about all the other times I’ve done work for nothing.
As I mentioned, there’s open source project contributions which, I admit, I haven’t been very involved with in the past. There’s the dozen or so websites I’ve put together for friends and family over the years. There’s the handful of sites for the good cause and non-profit organizations. In some of these cases, I didn’t only do the coding, I also purchased the domain and the hosting. There were also a couple of savvy business people who promised to make us gazillions of dollars in exchange for a beta version of the software to show the venture capitalists they have lined up. Finally, I suppose JohnnyCoder.com could be added to to the list of “work I do for nothing” as well.
Well, there’s a lot of debate on whether or not you can measure software development productivity. If productivity is a measure of what you get for what you give, I guess, on a personal note, I haven’t always been productive over the years. Now, I’m not saying it is good or bad, but I would like some additional justification for going about my “business” the way I do.
Any thoughts?
Perhaps you should try the “Community Service” angle. If you spent a day at the beach picking up garbage as part of a community service project, is that giving away the “product” for free?
By writing on your blog or contributing to an open source project, you contribute to the collective pool of knowledge.
Consider the fact that you already make use of this knowledge every time you search Google or Google Groups during the course of your paid work. Why not give back?
Also, don’t underestimate the networking and job recruiting benefits. Hiring is challenging, so having a blog helps your case for more progressive interesting companies looking to hire.
37Signals, for example, points out that open source contributions is a great way to judge potential candidates.
Through my work on open source software, I’m not only being put in touch with great software developers to hire, but great clients interested in the work we’re doing.
I’ll throw in my bullet points, the maybe fill this out into a full post some time:
1. Working publicly (publishing code, blogging, etc.) forces you to really know your stuff. There’s a huge difference between Googling a few links on a technology and presenting it before educated peers.
2. There’s nothing like shipping and supporting code to really hone your craft. There’s only so much of that you can do in any day job. Shipping code on your own time can double the experience you’d have compared to your peers. More people have used my open source code than code I’ve written on the job by a factor of at least a hundred, and that doesn’t count code I’ve posted on my blog.
3. Passionate developers blog and contribute to open source project because they can’t stop learning and building when the 5 o’clock whistle blows. Blogging and working on open source projects puts you in a position where you’re routinely working with passionate developers.
4. Like I said before, passionate developers are going to be goofing of on the computer in their off hours anyways. Why waste your time on throwaway code when you can be productive as part of a community?
5. A blog and references from open source projects are getting to be more recognized as valid job experience. If you’re working on your own, it may bring you work.
6. You can actually make money by giving things away for free. I’m making a little over $200 a month from pretty minimal ads on my blog. That’s not a ton, but I’m not sure I’d do any better by trying to sell code I’ve written as products. I know some friends who make a lot more than that with a little more frequent blogging, too. The same goes for open source code – there are a lot of success stories for projects which have graduated to a free / premium model, or people who make a good living selling integration or customization for their open source projects.
Haacked: My wife said you provided a “great response.” With a wink, she then asked me why I didn’t just say what you said in the first place.
Jon: Susenn said your response was “just okay.” She then sent a virtual smile and wink your way.
Gentlemen, thank you (from me) for the feedback. I especially appreciate that you took the time to write enough to make up your own full post yet you both chose to leave YOUR work on MY blog. It further demonstrates your dedication to sharing and giving [back] to the community.
Sure there’s a way to gauge productivity, but it’s based off your goals. Don’t confuse this with business projects and gauging programmers productivity at meeting customer requirements. Here, you’re talking about your life goals. When your wife married you, her goals were probably to have a nice stable husband that makes a nice income, doesn’t waste their life in the bars, and cares about the family. Rate your success/productivity against her marriage goals. My guess is that if you’re like most of us, your income exceeds any expectation she could have had at the time, unless you just got married, you spend time with your computer instead of out at the bars, and you’ve held a consistent job the entire time. I’ve got friends who from my opinion let their wifes control entirely too much of their career. I feel that only if your wife is a coder herself can she understand all the nuances of the career path you’ve chosen. If you’ve done your part at meeting her expectations for your marriage, then she should leave you alone as to how you actually go about accomplishing it. I also think your wife is trying to compare the programmer’s career life to other people’s lives that have just jobs. I would doubt that she could come up with very many highly paid successful career minded workers in general, that don’t spend a majority of their free time trying to fine tune their craft, at the expense of other parts of their life I’m sure. I would suggest however that you make a point of leaving work everyday at the same rough time to split up the job from the career. It seems to me like my wife is a lot happier just having me at home rather than sitting at work. I’ve made an agreement with her that I won’t work a day job more than say 45 hrs a week, and I won’t do hourly side jobs for under a certain hourly pay, and very few of those even. Instead, I spend my time at home on the computer working on career/future oriented projects, things that will hopefully somehow improve our lives down the road. This is where I would put all your side activities into. She should be able to trust you that if you’re spending time not focusing on your family, that you see a reason for it, and not have to fully understand how. Now when the wife claims a family day, you better just shut down the computer and forget about being a programmer for the day. Just my perspective on things.
Bruce, thank you for throwing in your two cents. I think you are onto something with setting some “ground rules” up front. And I do believe it is a good idea to emphasize words like “career” and “future” when discussing my extra-curricular activities.
Also, it’s funny you should write “only if your wife is a coder herself can she understand…” She was a coder, but she converted to project management. And in spite of this, I still married her. Can you believe it?
C’mon people, click on some of poor Johnny’s ads. Johnny, I’m clicking every visit. We’re here for you dude.
Thank you David for pointing that out. “Lead by example” they say. You just made my ‘aha!’ moment. From now on, I’m going to click on all of the ads on all the blog sites I visit. These people are sharing what they’ve got and that is the least we can do