This post was migrated from Justin’s personal blog, 'Codethinked.com.' Views, opinions, and colorful expressions should be taken in context, and do not necessarily represent those of Simple Thread (and were written under the influence of dangerous levels of caffeination).

If you haven’t yet read this thread on Joel’s Software Discussion Group and Jeff Atwood’s response to it, then please go do so. I’ll wait…

You done? Okay, well for those who didn’t read them (and that is probably most of you), I’ll quickly summarize… a guy posted Joel’s board asking about what career he could switch to from being a developer. He is clearly dismayed by the current state of affairs in the development industry and is looking for an out. While I agree with Joel that now is not the time to go switching jobs (never a good idea during a recession), I don’t agree with a lot of what Joel says. Every time I read something Joel writes I have to remind myself that he lives in the land of milk and honey. Joel is obviously a talented guy, so why does he think that programmers are spoiled?

But before I start in on Joel’s comment, let me first comment on Jeff’s post… why is it that developers who are very passionate about their jobs get so pissed off when others aren’t as passionate? This is the same mind-set that pisses me off when it comes to religion, politics, operating systems, etc… Okay, so you love your job and you just wanna hug it and kiss it and take long walks on the beach with it, well that is freaking great. Not everyone in this world is passionate about their jobs people! Do you think that every dentist out there just looooooooooves drilling teeth? Sure, there are probably a certain portion of dentists that love helping people, attend conferences about new tools and techniques, and just love everything there is about the mouth drilling arts. But reality is that most dentists go to work, drill some teeth, get a paycheck, and then go sip martinis while they stare out over their 300 acres of lush pasture. Being a dentist affords them to be passionate about something else in their life, wether it be their families, cars, art, pets, or martini sipping. But you don’t hear dentists all over the internet complaining about how they can’t believe that other dentists don’t care as much as they do about what brand their particular water pick is. How could they possibly be using Oral-B’s water pick when Colgate’s is so superior!!!?? Freakin’ idiots.

Get over yourselves. In most careers (and I say careers and not jobs on purpose) there is always going to be a small percentage of people who are going to be very passionate about what they do. And guess what, they are going to have an advantage above everyone else. If every single person in your career was as passionate as you are, then you might just be mopping the floor right now. We can’t have development shops full of alpha geeks, nothing would ever get done because no one would ever be able to decide how to do anything. Most alpha geeks have very strong opinions on everything, and they can’t freaking stand it when someone else doesn’t have an opinion…unless it is different than theirs. In their conscious mind they want other people to be just as passionate as they are, but as soon as someone disagrees, stand back cause sparks are going to fly.

But back to my point… not everyone is passionate about their job. And honestly, we shouldn’t expect everyone to be. There just aren’t enough people in the world to find a passionate person to perform every single task. And I’m not saying that grossly incompetent people shouldn’t leave the software industry, but I have known plenty of good developers who want to leave work and not think about programming until the next day. Jeff also says that the silver lining on the dot-com bust and the current economic downturn is that it weeds those people out who don’t truly love software development. Well, I think that it might weed out those people that are bad at programming, but I’m not sure that it will weed out those who don’t love it. It is possible that these two sets overlap to a good degree, but again, I’ve known plenty of good developers who don’t do a thing involving computers in their free time. And before you say that they can’t possibly be good if they don’t program in their free time, then try and remember that if you are spending 45 hours a week writing software at work, how much free time each week are you going to have to devote to writing software? 5 hours? 10 hours? No matter how much time you put it, it is likely dwarfed by the amount of time that you spend perfecting your craft while being paid for it.

So to say that people who don’t love programming need to find new careers, well, that is just silly. At the same time though, to say that you should continue to be a programmer if you don’t like it is all about whether or not you can make money doing the other things that you are passionate about. And if you aren’t passionate about anything, then god help you because you are in for a long and boring ride.

But just because someone doesn’t love programming, does that make them spoiled? Well, to say that they are spoiled is to assert that they have been given something that they don’t deserve. When someone has a child and they work hard to get paid an allowance and then they go out and buy something nice for themselves, do we call them spoiled? No, of course not, they earned that. The spoiled kids are the ones that mommy and daddy buy everything for, and yet they have no appreciation or respect for any of it.

And yep, we make good salaries, but do we really get treated better than people in other jobs? Well, I might get treated better than someone in a coal mine, but I’ve never worked in an office where developers are treated any differently from any other office worker. The only people that I have ever seen treated better than others are really passionate about their work, and they quite frankly worked hard to get where they are. In most companies I wouldn’t say that developers are pampered any more than any other profession. But what about the salaries? Well, I make less than a surgeon, but do I think that surgeons are spoiled? No, they made their career choice. When I was in high school I was well aware that doctors and lawyers made tons of money, but I was interested in software. We all made those choices.

So is programming a fantastic career? That all depends, can you sit in front of a computer typing on a keyboard for 7+ hours per day? Sometimes a lot longer? Some people I know would think that is hell on earth for any amount of pay, free snacks, or foosball tables (and I, for one, have never worked for a company that had foosball tables). Personally though, I absolutely love it and wouldn’t want to do anything else. I cringe at the though of one day being promoted into management. I love writing code and digging into complex problems. Sometimes I am up late at night programming away on something that I will toss aside a week later for some other piece of shiny code. And I love it. But do I expect all of my coworkers to do the same thing? Nope.

And yes, I get paid well, and I get treated well, and I probably have it better than 99% of people out there. Am I thankful for that? I absolutely am every single day. I realize how awesome it is to love what I do, but I didn’t just fall into it. I wasn’t just handed it. And every single day isn’t gumdrops. I think I worked pretty hard to get where I am. Am I spoiled? I wouldn’t say so. Okay, maybe a tiny bit. But when it really comes down to it, do I know any developers who are very successful and don’t pour their heart and soul into their work?

Absolutely not.

16 Comments

Rick Kierner

I like the post. I find myself in a quandary though. What should be the expectation of the people that you work with? Furthermore, what should they expect of you (or me) as people who are passionate about their craft. Do passionate people have an underlying responsibility to attempt to instill a passion with those we work with…Do the people we work with expect that of us?

I should note that if a passionate person hadn’t done so with me, I doubt that I would be as passionate about what I do. I’m not sure I would have realized how programming could be so much fun.

Reply
Marcus McConnell

I think part of the frustration comes from the fact that so many non-programmers don’t really understand the level of effort required to develop code on a daily basis. To non-programmers we almost seem magical. Disappearing into a dark cave to come back several days later with a working web site or program. By nature, most programmers aren’t social creatures and we don’t communicate our job to others outside of programming well.

I get frustrated with the pace of change sometimes but I realize that if I had to do the same thing for 40+ years of a career without learning anything new I’d go insane.

We’ve got it pretty good compared to a lot of jobs. Doctors and Lawyers routinely work 80+ hours and most won’t ever be the top paid surgeon or partner in a big firm. If you’re not happy with your current employer, find a new one. If you hate programming, retrain for a new profession. Simple as that.

Reply
K. Brian Kelley

Your viewpoint pretty much reflects what mine has become: work to live not live to work. Not everyone who is a great developer happens to have as a personal fascination software development. Nothing wrong with that. It doesn’t necessarily make them a less capable developer than one who "lives to code," either.

Reply
Justin Etheredge

@Brian I would say that overall passionate developers have a leg up on developers that aren’t passionate. Because of the fact that they spend time exploring rather than just doing projects at work, they often find better and more creative solutions outside of what others would have been exposed to. This isn’t to say that they are bad developers though, they just might not have been exposed to as much as a passionate developer.

Reply
Zehra Nasif

People have different passions in their lives; their cars, children, nature, helping others, food, making lots of money. They are rewarded with their investment in their passion choices also. Lucky ones have good return of investment to their what they love to do. Being a passionate programmer definitely pays of these days.

And this is so true: "Most alpha geeks have very strong opinions on everything, and they can’t freaking stand it when someone else doesn’t have an opinion…unless it is different than theirs. " I can not stand people who does not form any opinion.Classic saying and I agree with it "Who is better to have a intelligent ‘enemy’ or a foolish friend?"

Reply
NNeko

Joel and Jeff set up some hasty generalizations that incorrectly lump professional software developers. Joel seems to charitably assume that professional software developers are all "professionally" good at their craft, and don’t get astounded by the ineptitude of coworkers with whom management treats them as functionally equivalent (that is, Fungible) — except that this leads him to the uncharitable claim that software developers are spoiled emo girls. (Thanks Joel, we love you too.) Fortunately, Jeff clears it up by pointing to McConnell’s regurgitation — personally I prefer Brooks’ Mythical Man Month — of the disparity of quality between professional programmers in the field. Except that Jeff goes on to say "Love it or Leave it!" as if "love" is enough to compensate for sucking at it. Yes, you’re not likely to be a good programmer if you don’t love programming — but overall (in a world with 6.6B people in it) you’re not statistically likely to be a good programmer even if you *do* love it.

So let’s try this on for size: The spoiled programmers are the underperformers (who are not necessarily complaining about anything) that are being treated by HR and Accounting as if they are performing on par with their alleged peers despite having a net negative impact to the overall performance of their project team(s) — heck, they might even be getting treated better because they’re not complaining. The remaining complaints about the state of the industry merely reflect the generalized discontinuity between parity of compensation and disparity of professional performance. Based on the original post behind this whatever-fest, I get the general impression that the *actual* concern is that despite programmers being wildly different in terms of professional capacity (and this being the state of reality for, what, over 35 years now?), programmers are still being treated as fungible within the established project management triangle of "scope, time, resources." (So the bad link between enjoying programming and enjoying work as a software developer that Joel and Jeff use to berate the malcontents of the profession strikes me as more ironic than oblivious.)

For my part, I don’t think you can be a good programmer without being smart and it shouldn’t surprise anybody that a smart person doesn’t want to settle for being fungible with a not-smart one. This shouldn’t be construed as career advice other than "Try harder to be uniquely appreciated where you’re at."

Reply
Wim Haanstra

I wrote something similar a while back, covering it from a little bit of a different angle. http://www.depl0y.com/?p=136

In my environment a lot of people only see the ‘good’ sides of being a developer. We earn a nice salary, often get your lease cars, mobile phones, high-tech laptops etc etc. They want to get into the fun too.

For example, a person I know (about 35 years of age) is a car salesman. But he doesn’t make a very good living of it (especially lately). When he moved to his last job he actually got less pay.

Now he wants to start taking lessons in programming. The dude never actually put together a static HTML website in his life. Is this the kind of people I want to be working with? The guys that think they wanna go ‘into computers’ just because they were able to leech the latest Fifa ’09 from usenet?

No thanks, I rather work with the people that actually take the development job seriously.

Ofcourse he is free to choose whatever he wants, but don’t expect me to work with them.

Reply
Adam

We are spoiled, and it’s partially thanks to Google. When they got big, they offered positions with pay and perks that basically no other company could compete with. Without Google, there wouldn’t be 6-figure salaries for mid-level developers, they are very much responsible for the salary and perk inflation of our industry.

The average salary of a surgeon is about $140k. My starting salary out of college (I took an extra year for a combined BS/MS) is six figures with a myriad of perks and benefits. A doctor spent an extra 3 years, $100k in school and 6-8 more years as basically a surgeon’s apprentice (aka residency), and only then does he/she do well financially. Moreover, they have to deal with significantly more liability and risk in their job.

Yes…we are INCREDIBLY spoiled, and I am very thankful and privileged for the job I have. Accept that and cease this conversation, because we get it — passion breeds the best, no matter what the profession, but some people have to do what they don’t love. And you’re right, this is the case in every profession, so we just can’t say "love it or get out," or we’d be a very unemployed world.

Reply
Erwan

I have seen non-passionate people who are good programmers, and I’ve also seen passionate people (who love programming) but are really bad programmers. The kind of guy who would spend nights writing spaghetti code, and who would take pride in his code complexity ("I’m smart because I write complex code").

I think the second category it’s way more damageable for a project that the first category. The first category is usually not going to write a lot of code, but the second one can have high productivity to write bad code and can really put a mess in a project.

Reply
Dean

Joel Spolsky is an elitist and he’s in management. He’s not a software developer. He worked at Microsoft and then at his own company. I doubt he understands how bad many of the software dev. environments out there are.

It’s like an officer who lives in the BOQ telling his enlisted men that they should love living in their quantset hut.

A general theme I’ve noticed at many companies (I was a contractor for 10 years) is that management dislikes software engineering. It’s complicated, it’s expensive, and it has too many failures. Many managers want nothing more than to offshore software development so they don’t have to deal with it any more.

I have considered getting out of software development myself. I was planning to get a MS in finance and earn a CFA. I postponed it because my wife is going back to college this semester so I’ll have to wait until she is finished. But I would love to get into a field where what I do is really valued by the organization, not viewed as something to get rid of when possible.

One other observation I’ve made is that software development is probably the most grossly mismanaged field in business. Ask any software development manager what his output is and he probably won’t know, or even have thought of it.

Reply
shawn

joel’s post had a bunch of concrete evidence explaining why we are spoiled. i stopped reading your post at the fourth paragraph (about alpha geeks); it’s poorly written and completely based on personal opinion.

Reply
Will

The answer for me is I simply didn’t know people weren’t passionate. There is a scene from a Matt Daemon movie where they are at a construction site with bricks, and the guy says to his friendly math genius ‘if you plan to still be here in 5 or 10 years laying bricks you are a complete idiot!’

On a separate note, passionate folks are the ones that want to see improvements, which often times don’t take place because of societal pressures. A passionate person is looking to get to that ever closer ideal of business work flow or other software solution. If you’re just the guy drilling teeth and hating it because you need to get back to your real passion for the few remaining hours of the week, please don’t take the solution as a personal insult. This isn’t a case of ‘love gone overboard’, I’d say it’s a matter of doing the right thing.

Reply
Gabe

@shawn – Joel is definitely a better writer (hence his fame), but it’s also really just opinion. You can set up the list of pros and cons for any profession to make it look however you want. I mean sure being a developer gives you options. The software and internet world are creating a whole new level of economies of scale, and developers are the ones who have the direct skills to tap into that.
That’s true, but on the other hand there’s no silver bullet or recipe for success. A savvy businessman with only soft skills has just as much chance at getting rich as an engineer. And both of them are statistically dwarfed by standard salaries for smart people in the financial sector.

Bottom line here is that Justin’s post is a rant, but it rings very true for me. I don’t want to get into who’s spoiled or not. If you ask me, everyone born in the US, including the bum on the corner, is spoiled. The debate over who deserves what is messy, and it’s painful enough to deal with pragmatically in the context of how we structure our society, public benefits, etc. On a personal level it’s maddening to even consider. Rather I choose to consider myself fortunate, and I think anybody in the world will be happiest if they think the same way.

Passing judgement over who is spoiled, and how developers in the industry [i]should[/i] be is just mental masturbation that ultimately says more about the pontificator than it does about the objective state of anything.

Reply
Dean

Adam,

Your comparison with doctors is way off the mark in several ways.

If your starting salary was six figures then you are way above average. Way above average doctors make high six figure incomes. You won’t find any programmers making high six figure incomes, though.

Have you ever heard of an unemployed doctor? There are lots of unemployed programmers.

Medicine, like law, has a high barrier to entry. The barrier to entry to be a programmer is much lower: just find someone who will hire you.

Medicine and law have professional standards that are enforced through rigorous exams. They also have codes of ethics. Programming has neither.

Reply
Buu Nguyen

Good post! As a software manager, I used to be fanatic about hiring only passionate developers until I discovered that there are passionate developers writing bad code, arrogant and have poor teamwork spirit while there are other who are not passionate but get the job done for they are *responsible*. While it would be ideal to hire passionate developers who are smart and humble, as you wrote, there are just not enough of them for all of the software to be built…

Reply
Mike Borozdin

Justin,

You are absolutely right. The people who are very passionate about something, say programming, just cannot understand why other people don’t love programming, or as you say, why other programmers are not that passionate.

It’s really obvious that each person is different and has different interests, but when it comes down to business, but for some reasons it’s getting harder to understand this when it comes down to particular persons.

Reply

Leave a Reply

Your email address will not be published. Required fields are marked *