Passionate About Programming or Passionate About Life?

 

“Life moves pretty fast. If you don't stop and look around once in a while, you could miss it.” -- Ferris Bueller.

 

There is a recurring topic that crops up at the ACCU Conference during the lightning talks and this year was no exception. In the first round of lightning talks Björn Fahller asked the question “Why Are (Only) We Here?” And in the second set, Mike Long continued the trend with a talk titled “Passionate vs. Professional.”

 

Interestingly the use of the term “passionate” was itself questioned by Seb Rose in his own 12” edition of the lightning talks with “Are You Passionate?” For those that weren’t there I suggest you look the word up in the dictionary and draw your own conclusions. For what it’s worth I agree with Seb’s sentiment, but I’m still going to stick to what I believe we mean by the word as it adds fuel to this particular fire…

 

So, let me ignite it now by suggesting that not everyone who works as a computer programmer does it because they are passionate about it. Yes, some of us cut our teeth on a home computer and are still bemused how we ended up getting paid to do what was essentially our hobby before entering employment. But that only applies to some of us. That’s right; lots of people actually do a job for reasons other than the love of it.

 

Many of the people I have worked with in the past do enjoy what they do. To go back to Seb’s point about the word “passionate”, let me suggest (after clicking Shift+F7 to bring up the Thesaurus) the slightly watered down “enthusiastic” instead. Programming is a career that they have chosen because they are genuinely interested in the subject. But I have also worked with others for whom programming was never really the end goal – they do it because it pays reasonably well (very well in certain industries) and perhaps they’re better at it than other careers they originally had in mind. They are not, and never expect to be, The Best of the Best, but does every programmer have to aspire to be that?

 

When I went to university back in the late ‘80’s I studied Electronic Systems Engineering. My choice was based on my dream of working in the Audio industry because I loved music and I loved my hi-fi. It turned out that I sucked really badly at analogue electronics! However I had slightly more success in the digital realm and eventually discovered that writing software was an actual profession, and one that I might be a little better (and therefore more successful) at.

 

I am one of the lucky ones who managed to make a course correction early in life and end up doing what I had already been doing for the 7 years prior to university, but hopefully in a somewhat more “professional” manner. Of course not everyone is fortunate enough to have their path laid out clearly before them and so instead they fall into a job that pays the bills and then see where it goes. And so, if the mortgage is covered and it’s not detestable, then why shouldn’t that be enough for some?

 

There’s that word “professional” this time. What does that mean exactly? I can tell you I believe it doesn’t include committing a load of changes that haven’t even been compiled just before going off on a week’s holiday. But what about some of the practices that many of us feel are beneficial to a sustainable system, say, test-first versus test-later or continuous integration? What’s the penance for not adopting these and continuing to work in an “old fashioned” way? If the goal is to deliver working software then surely how that’s achieved is of secondary importance to if it’s achieved?

 

I once worked with a chap at a big corporation who was purely in “the programming profession” to fund his non-working life. This was quite an eye opener for me as I couldn’t fault his rationale even though the inefficiencies of his development style used to annoy the hell out of me. I tried (largely in vain) to evangelise about the virtues of certain modern development practices but ultimately they fell on deaf ears. His performance wasn’t brilliant, but via perspiration he would end up delivering something that works. Is it “unprofessional” to get the job done in ways that perhaps not everyone agrees on? As his peer I had to leave him to it; just so long as what he did had no direct affect on my ability to deliver.

 

You can of course argue that poor design, lack of tests, blah, blah, blah all leads to an increased delivery time for subsequent changes and so it will eventually affect my ability to make changes. But I do not feel that is of my concern – that is a management issue to me. Like it or not software development is rife with politics and the “performance” of an individual is just one facet that determines the make-up of a team. Much to the chagrin of one manager I worked with, you can’t just fire someone because you’ve found a better replacement. Anyone who has ever worked in a large corporation will wince when I mention the term “head count” – a pejorative used to describe why you sometimes have to settle for the 10th best interview candidate instead of holding out for the 1st or 2nd.

 

In (my) ideal world there would be a causal relationship between “coolness” of project, quality of team members, and rate of pay; with them all increasing together. Sadly it’s more likely that there is an inverse square law in effect somewhere as there are industries that seem to rely on youth and adoration to compensate for a lack of remuneration. Conversely you’d expect Finance, with its deeper pockets, to only hire the best-of-the-best; but I can assure you that hypothesis doesn’t hold water either.

 

Coming back to the original question then, I wonder if there is an expectation that ACCU conference attendees (or SPA, QCon, etc.) are considered by some as “the norm”, whereas those who choose explicitly not to go are somehow “exceptional” for not wanting to better themselves? There is a third group of people who are even unaware of such events, but I’m guessing the most curiosity comes from those who choose to ignore our evangelism rather than embrace it. I don’t believe anyone genuinely goes out of their way to be a Luddite, although people can become disgruntled when they believe they have been treated unfairly. Instead I’ve come to see my fellow programmers as people with different abilities, and more importantly, with different priorities. They all have a desire to learn and improve; it’s just that they’ve chosen a rate that is much lower than we have chosen for ourselves. Is it “unprofessional” to be a slow learner?

 

I’m sure I didn’t fool anyone with the purposefully controversial title that suggests it’s impossible to enjoy a career in programming and at the same time enjoy a fruitful life. In essence it’s a thinly veiled attempt to re-cast the age old debate of “live to work” or “work to live” into a programming context. Clearly each of us has a right to devote as much or as little time, outside our normal working day, to our career progression as we see fit. What I’m going to suggest, and I’m sure I’ll be labelled a heretic for suggesting it, is that the next time you are presented with the question of why you are there, is to first ask yourself why you’re not snowboarding on the Alps, lazing on the beach soaking up the rays or curled up on the sofa reading a trashy novel?

 

Chris Oldwood

04 June 2013

 

Bio

Chris is a freelance developer who started out as a bedroom coder in the 80’s writing assembler on 8-bit micros. These days it’s C++ and C# on Windows in big plush corporate offices. He is also the commentator for the Godmanchester Gala Day Duck Race and can be contacted via gort@cix.co.uk or @chrisoldwood.