Reflections on 3 years, or so, as an independent software developer
It seems like a lifetime ago that I walked away from corporate cubicle consulting, grabbing for the lifeline of a mediocre PHP project that paid too little and demanded too much. I had endured the corporate world’s oppressive mediocrity, the shocking incompetence that Dilbert can only begin to relay credibly — one place even had a No Dilbert Cartoons policy, which should have been a clue to them — and it was finally all just too much.
Or maybe it was the diabetes.
On my last traditional gig, I would find myself overheated and agitated in the mornings, and then would crash into overwhelming depression if I failed to get to lunch by 1pm. Then the pressing need to nap at about 4pm, which, of course, I couldn’t. True, the requirements for that last project were hopelessly vague, not even well-defined enough to find some specific tasks in which to lose myself, but there was certainly a powerful physiological reason for my impatience, though I would not be diagnosed until almost a year later. But, we hairless monkeys, our brain so helpfully attaches reasons to emotions for us, even if the emotion itself is the product of crashing blood sugar, and the reasons may possess only a passing resemblance to reality, whatever that is.
Curse our foolish certainty.
So, it is hard to know where the inanity of the pursuit began, and where the illness that would drive me to the brink of a coma before I realized what it was ended. But, off I went into the vagaries of the life of the independent computer programmer. Let me tell you what has gone well, and where I have found the gremlins dwell, for those that would follow a similar path.
The idea of computer programmers that permeates popular culture has some basis, as many stereotypes do, in fact. There are nerdish, socially inept, moody, prima donnas to be found among us. Hell, I have had those moments myself. And, there are people who, even worse in my opinion, learn one way of doing things and then fight and kick for the rest of their careers not to do things differently. They see one vendor, or one tool, as the only true path, and cling to it with religious fervor.
They usually don’t like me.
But among those souls who populate the workforce that are producing the new wave of websites and online tools — the Twitters, the Facebooks, the specialized social networking sites — is an amazing core of creative people. Every time I have had to reach out into the larger community, whether to market my services (the current source of my introspection — that’s firstname.lastname@example.org, btw), or to speak at a software conference, I have come away with an impression of the software developer as renaissance man. These guys are as likely to pick up a guitar as a Macbook, and while their facial hair and sandal-rich wardrobe may be highly suspect — present company included — their determination and drive, and their willingess to take on new ideas and technologies, never fail to impress me, and to make me count myself as lucky just to be among them.
I could name names, but you know who you are.
So I have not regretted pushing the limits of my own knowledge, embracing the joys of learning and becoming proficient in new tools, like Ruby, and Ruby on Rails. It has been an absolute joy to work with like-minded developers, many of whom also work independently. That part has been great. What I have learned most from these guys is that test-first development really works, and how to build a project from the stuff of raw thought, to a fully-realized web site that comes alive in the browser. That, I have had the joy of doing repeatedly these last few years, and, P.S., you should hire me to do that for you.
It is not quite on par with swinging a 20-ounce Estwing hammer all day long, and turning around, with a beer in your hand at the end of the day, to see the brand new first floor of someone’s house. I can tell you that. But it pays the bills a hell of a lot better, and sunburn and back strain tend not to be an issue, and the spirit of the builder lives in both.
But it has not been all hookers and blow, so to speak. For one thing, home makes for a lousy office. Of course, I love being around my family as much as I can, but pressing deadlines and the sheer volume of work have often made me have to be around my family with my game face constantly on. Work is hard to put aside when it is only as far away as the laptop in the corner. Even when I have mandated time off for myself — my secular sabbath Saturdays, as I call them — leaving work behind mentally is another thing altogether, when it is not something you can drive away from.
You may even find yourself blogging about work on a Sunday afternoon.
Then there is the value of face time. When you share a too-small cubicle farm with your too-talkative workmates — good luck writing good software under those conditions, even with headphones — and you share a men’s room with the same 40 people for month after month, well…Let’s just say that you come to know more about people than their poor taste in clothes. Much more than you would prefer to know. So it is hard to see the value of talking face to face with those people when screaming and running for the woods may be your most pressing inclination. But the fact is that face time is valuable, that visual cues and body language tend to say a lot more than what we can give voice to.
Also, being the invisible team member who is a thousand miles away can be quite a challenge. When you are there, physically in the workspace, your very presence speaks volumes. The asses-in-chairs model of working together has a long and storied history, wherein just showing up is half the battle. As a remote worker, your work output, code check-ins to the version control system in this case, is what speaks most for you, and that means you must work much harder to have an acceptable level of visibility. Whether you got there on time, and whether you ironed your khakis is not the issue, nor is whether you have pants on at all.
I don’t, and, thanks for asking.
Customers also make tough bosses. They can be fickle, and even under the best of circumstances, two people can think that they have a shared vision of how something should work, and still be miles apart. Language alone is a fragile vessel for conveying thoughts. Add in being remote, and you find that an awful lot of your time is spent communicating what you intend to do, what you are currently doing, and what you have done. Lather, rinse, repeat.
On balance, I am glad I left my smelly, sometimes-ironed-khaki-donning former associates to fulminate and chat endlessly with their wives in their cubes. For sure, I loved many of those guys and was mostly indifferent to the rest. Maybe that is a world I may step back into one day, but if I do, I know I will have an increased appreciation for answering directly to the needs of the client. For focusing on the work, as opposed to the social environment. For now, it is time for me to hang out that shingle again, and keep flying solo — alone, in a sense, but in community online amongst some of the best people that I have ever had the privilege of working with.
I will see you out there.