Fog Creek Software
Discussion Board




Why are you writing code?

Some fellow developers and I were discussing Norrick’s post.
http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=3790&ixReplies=37
There was a similar post on slashdot today:
http://slashdot.org/askslashdot/02/02/20/2343218.shtml?tid=98

We know there are some death march, dark ages companies out there. Bad practices, poor quality and unenlightened management are easier to find than goodness and light. Even the worst companies hire someone.

If you have a good enough reason, you’ll put up with a lot of shit. There must be a rewards to this job other than the paycheck.

I am asking a simple question. What is your “why”? Why do you get up every morning and go back to the project you stayed up late working on last night? Why work on open source after working on code all day? Is it creativity, the zone, H1B status, what? There have to be some pretty good reasons. I have mine, I want to know what others think.

P.S. If you say money, I don’t believe you. There are easier ways to make more money than software, even with stock options.

Doug Withau
Thursday, February 21, 2002

I'll tell you mine if you'll tell me yours. <g>

> Why do you get up every morning and go back to the project you stayed up late working on last night?

I left work last night at about 18:00 as usual, home, dinner, then coded for fun (not for work) for a few hours.

So this morning I went back to work, which isn't the same project as the one I stayed up late working on last night.

I went to work this morning because "That's my job". Partly it is the money ("you have to pay the bills" ... it's been freezing outside here in Toronto); partly it's the "you are what you are good at" (I like being good); partly it's because people (including my boss) are expecting and relying on me to accomplish something for them this week; partly it's because I like to make plans more than one day in advance (so if I were going to skip work for whatever reason, I would have arranged that in advance). Partly it's because I like my work.

> Why work on open source after working on code all day? Is it creativity, the zone, H1B status, what?

A number of reasons: I do it, at home, because my wife is otherwise engaged (doing her school homework, or sleeping), which leaves me time to occupy myself (that is 'opportunity', which is as important as 'motive'); I like the experience (not 'experience' like 'work experience', I mean 'experience' like 'sentience') of programming; it's a harmless and to a certain extent productive thing to do (my Dad just forwarded to me an email that he'd sent to a colleague in the UK ... email for example is a great technology, IMO); I can take my time over it, including e.g. I can spend 3 days without doing any work on it (unlike my day job) ... and taking my time over it is the name of the game, isn't it; I've read a couple of dozen C++ books, now it's good (not 'relatively good compared with other things', I meaning 'good' in an absolute sense without comparing it, and leaving the frame of reference unspecified or implicit) IMO for me to make me a [re]usable library of such classes that actually implement for me some of what I have read; I'm experimenting, so it's creative in an exploratory sense; I have referred some other online programmers to my web site http://members.rogers.com/xwells/source/ so I'm getting feedback 'from outside' (I'm a senior programmer where I work, so it's novel and good to get 'peer' feedback from a wider population sample than my day-job colleagues ... certainly their feedback has helped to make me as a professional programmer over the years); it's uncomfortable to be in the office for over-long hours (at home I have a shower, dinner, comfortable clothes, a drink) so I don't want to be in the office forever, but then again my employer has these Intellectual Property agreements, Copyrights, Security policies re. people taking their work-work off-site, etc., so all that is a disincentive for me to work on 'their' software on my own time when I'm at home, notwithstanding that it is 'my' company, my employer, I own shares in it...;

> There have to be some pretty good reasons. I have mine, I want to know what others think.

What others?

> P.S. If you say money, I don’t believe you. There are easier ways to make more money than software, even with stock options.

Are there? Like what? Apart from being born rich.

My back-of-the-envelope suggests that $1,000,000 at 4.5%/year is $45,000/year, a below average income; even with a 6-figure (i.e. 100,000++) salary, I don't see how people save $1,000,000 before retiring, given ongoing living expenses and e.g. income tax (which is maybe 50%), so some people don't retire for years on end (at least while they're still able); so I expect I may continue to earn a living in the only way I've known; so I am at least superficially reluctant to give up my day job, which I've enjoyed so much (on and off, including off), but the end of the day-job isn't the end of my interest.

Creativity, zone, ... do you hve something better to suggest?

Christopher Wells
Thursday, February 21, 2002

> P.S. If you say money, I don’t believe you. There are easier ways to make more money than software, even with stock options.

For example

Fred
Thursday, February 21, 2002

For Example Selling Software, or Being a Product Manager

Daniel Shchyokin
Thursday, February 21, 2002

Why do I do it?

50% Money
30% Challenge/Enjoyment
10% Social Interaction
10% Stupidity

Tony
Thursday, February 21, 2002

I was set to post some non-financial reasons. But then I saw Christopher Wells's post. I'm not convinced that there are many easier ways to make money.  In what other field can you make 6 figures sitting on your butt all day? With no experience? With no professional licensure? With no college degree? The only other occupations with those attributes that I can think of are illegal...

Someone mentioned sales, but...being a salesperson is not easy.

Coding is fine with me.  It is moderately interesting, useful, pays well, etc. However,  if I could make the same salary reading books, or riding bicycle, or playing piano...I'd probably opt out of it. ;-)

El Grumpo
Thursday, February 21, 2002

1. 40% - Strong desire to make something useful for people.
2. 50% - Commitment to finish what I started for 1
3. 10% - Money.

Roman Eremin
Friday, February 22, 2002

1. Gotta do something to keep my brain sharp.
2. It pays the bills.
3. I own a non-negligable portion of the company, so I have a strong interest in our success.
4. I know I can be a better programmer with just a little more experience and a little more practice. I'd hate to stop, knowing that I could have been better.

I didn't always have the shares that make number 3 possible.

I didn't always have the mindset that drives number 4, there. When I was doing a job that involved a lot of maintenance programming on a multi-gigabyte set of Access databases, I just wanted to go be a millwright or something, anything but that. I stayed for two years anyway, because the money was fantastic (see number 2).

So, the only constants would be the money and the inherent fun of a mental challenge.

Jeff Paulsen
Friday, February 22, 2002

Why do I code?

I  think there are different reasons, and they are not
constant for me. I can not simply say 1) Money 2) Fun and
so forth. It depends on what I am doing.

You can have me do something that completely bore me to
tears, but then it is going to cost you. If instead you ask me
to join a team to create something that excites me to no end, I will help you for pizza. I think the most rewarding
feeling is the feeling of accomplishment.

So when I deploy a system and see 50 people coming into
work Monday morgning, and they are banging away on my
system and it works,  I feel like I won the olympic gold medal of sorts. So to make it short,

1) Egoboosting/Feeling of accomplishment
2) The challange of creating something useful
3) Fun/Money (less of one, means more of the other)

Patrik Öhman
Friday, February 22, 2002

Currently...

1. It's only a 5 minute drive to work
2. I need to pay the bills
3. It's only a 5 minute drive to work

DB
Friday, February 22, 2002

Why do I code?

Because writing code is like playing LEGO as a child, you are actually building something from tiny little pieces that have almost no value or shape on their own, but if you put them together rightly, you can accomplish almost everything. The joy of typing in letters and numbers for a while and then you compile and run it for the first time and it actually does what it is supposed to do. Wow! Of course it is not alwways like that. Actually it is that way only seldomly, but those rare moments of absolute joy and wonder make up for the rest for me.

Why do I code professionally?

They are paying me for something I would do at home anyway. My colleagues are just great, I am the only woman in our software department and the boys make me feel praised, honored and loved most of the time :-)

Actually I wanted to become a teacher for English and history and I spent years of studying for that. It never felt right and I was really depressed and close to suicide when I dropped out of university. I started to work in software development because I needed money and I could programm  a little. And from the moment I started it felt like salvation to me. I never regretted it.

Have fun,

Jutta Jordans
Friday, February 22, 2002

"There are easier ways to make more money than software...

For example

For Example ... Being a Product Manager"

I'm a product manager. All I can say is:

HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA! 

Mentioned that line to the product management group and we all got a good laugh.  Thanks.

Most places I've worked, senior coders make more than the PMs, rightfully so.  Good coders are a scarce resource.

I don't have the inclination and personality necessary to be an excellent professional coder, but I do write code for my personal use.

The reason is that I am a creative person in a literal sense. I have a need to create.  But I am far from an artist.

Coding, even for fun, lets me create things from scratch that I and some friends find very useful.  It rewards my creativity.

Bob

Bob Crosley
Friday, February 22, 2002

I asked for your reasons, but I did not give mine. You ‘all are right, that is not fair. Her are the reasons I believe this is the best way I could spend my time.
1. The personal satisfaction that comes from building something that works. You spend hours on something and it shows when it is finished. We build real things; we don’t just move paper from in to out.
2. Coding is much more creative than the muggles (people who don’t know magic) believe. I’m not an artist, but I think everyone must exercise their creativity in some way. It will make you nuts if you don’t.
3. The zone is also nice. I love looking up and seeing the clock says 5:30, and I had no idea time was passing. The days like that seem so easy and a lot of work gets done. Sigh, if only every day was like that.
4. There is always something new to learn. I have to be learning new things and never repeating myself. This can be discouraging and overwhelming at times, I’ll never know everything.
I had LEGO bricks as a kid (still do, Mindstorms is the best toy ever), and I built a Timex/Sinclair from the kit in the seventh grade. Maybe I was born to be an engineer.

About the money, yes I do very well at my current job. I am one of the lucky people who enjoy what they do and others are willing to pay for my fun.
I was thinking of a friend when I said there are easier ways to make money. She sells real estate, and started a mortgage brokering company. She is raking in the cash, and she does not have books and books on new technology, techniques or management. My brain is not wired to do sales or marketing. From looking around my company, those people are not working very hard, and they are still paying the rent.
I feel that telling a high school senior this is a great career, you’ll be able to get a job easily, and the money is good is a huge problem. Software is difficult to do right. If you are just showing up because the pay is good, and the office is nice, then the work you do will have no quality. I mean Zen and Motorcycle maintenance Quality. If there is no quality what is the point?

Thanks for all of the great responses. I was hoping some of the people who responded to Norrick and the slashdot posts with gripes and bad experiences would respond. If the job is so terrible, why do it?

Doug Withau
Friday, February 22, 2002

"I was hoping some of the people who responded to Norrick and the slashdot posts with gripes and bad experiences would respond. If the job is so terrible, why do it? "

Dave, I agree with you completely on why I write code and why I enjoy it.  And for those same reasons I also agree with Norrick and others who have complaints.

The employer wants the developer to be productive but often won't do simple things to support that.  Just consider the work environment.  How many of us share an office with a manager who has a constant stream of visitors or have an office mate who blasts away with the speaker phone or the radio listening to Howard Stearn or Dumber Mike yammer away all day?

For about 2% of my pay an employer could provide a nice quiet office where I could be creative without the stress of the distractions.  And that's what they're supposed to be paying us for.

Unfortunately, good coders are plentiful and cheap, or at least we can assume that from how inefficiently they're used.

mackinac
Friday, February 22, 2002

When I was a kid I wanted to be a magician. When I began playing card tricks I realised I sucked. Got aquainted with computers later on in life. When I learned some programming I came up with the conclusion "suficiently well written software is undistinguisable from magic" (borrowing a popular quote) I mean, programmers and non programmers are often fascinated about cool software, most of them don't have a clue on how did you do it, all they know is that they have seen it.

Beka Pantone
Friday, February 22, 2002

In my above post I said that 50% of the reason was money.

Since then I've thought about it a bit more.

In the late 80's when I started coding I had children, a mortgage, a wife and debts.

Now I'm 41 and I have no mortgage, money in the bank, the kids have left home (2 of them - 1 left but going soon), and amazingly these days I still have the same wife.

Money 100%.

Its only because I have money that I play with the other excuses.

Tony
Saturday, February 23, 2002

Oddly, among other things, because it's easy. Much easier than, for example, being an original researcher (my original intended career). Also, because it's not too easy (i.e. there can be a fair amount of challege in it). And reasonably lucrative. And honest (unlike, sometimes, marketing).

njkayaker
Saturday, February 23, 2002

Here's another perspective on this.

I'm a musician. Not professionally, and I have no dreams of becoming a professional musician, but being a musician, I come to know other musicians

Soooo. I've known lots of bands and musicians wanting to get 'signed' and I've decided that they're not in it for the music. They're in it because they want someone else to take care of them. Let me say that again.

Most musicians want to get signed because they want the record label to take care of their finances for them. They play music like most people play the lottery. "If I get signed and rich and famous I won't have to work, and I'll be set for the rest of my life." I swear if you took money out of the equation, half the studios in New York would close down - they feed into a musician's desire to succeed just as much as the record labels. You do need to rehearse and record your professionaly quality demo that will get you signed after all, don't you?

Now I ask you, why do you program? If you had no monetary needs, would you program? I'm sure there are some of us who do it for other reasons (the Interactive Fiction community is full of people who really just do it for the love of creating something), but I suspect the general and individual landscape would be different if we had our monetary needs taken care of.

Mark W
Tuesday, February 26, 2002

> I was set to post some non-financial reasons. But then I saw Christopher Wells's post.

A post of mine is enough to stop anyone. <g>

> Now I ask you, why do you program? If you had no monetary needs, would you program?

I was going to say "yes I would" ... that I'd probably quit my day job, take a holiday, and then resume programming because that's part of the way in which I relate with people and friends.

Various aspects of programming (consequences, such as money, and the experience itself) partially satisfy every one of the needs mentioned at http://chiron.valdosta.edu/whuitt/col/regsys/maslow.html (and so, just because one need is statisfied is no reason to give it up: it satisfies other needs as well) ...

... I'm not sure about 'ethics' though; if I didn't need money, for some reason, then I might find a different ethical/ecological niche for me to occupy.

Christopher Wells
Wednesday, February 27, 2002

If I had no monetary needs, I would still have various ego needs. For example, being in my mid twenties, I believe I have to be in a band before I get "too old to do rock and roll" whatever that means, half of me knows it's silly, the other half has this timer that's constantly going off warning me that I have to do something NOW NOW NOW.

The no monetary needs fantasy is the same as the major record label fantasy is the same (exactly) as the lottery fantasy.

That said, I'm still looking for those "easier ways to earn a living." ;)

Mark W
Thursday, February 28, 2002

i code because i am good at it.
i code because i get a kick out of it.
i code because i like to type.
i code because code is beautiful.
i code because i am commited to writing beautiful code.
i code because i like to express myself.
i code because i love abstraction.
i code because i think.

i code because i want to.

(and somehow i have to finance my studies ;)

Daren Thomas
Thursday, February 28, 2002

oh... and i code because i love to get involved.

Daren Thomas
Thursday, February 28, 2002

I think a better question would be "Why do you program where you do?"
I love programming, but not the stuff I do at the day job. I guess it's the decision between programming something you like for $n or programming something you hate for $3n.

Anyway, had a wake-up call yesterday applying for a new job. Speaking to a recruiter, he said "the client wants to know your date of birth."  I told him, but said that under EU law, a company isn't allowed to ask.  Recruiter replied with "well, company's policy is not to recruit developers over 35."  35!!!  So, it looks like 7 years left in the industry.

Mathew Watson
Thursday, February 28, 2002

WHAT? 35? That's ridiculous. That company must produce really bad software. Don't they realize that experienced coders are seldom 19?

I really don't understand the reason for not recruiting older people - in any business!

Could some manager type person shed some light on this please?

Patrick Ansari
Wednesday, March 06, 2002

Simple.  Experienced people cost more money. 

It is easy to show a cost savings by replacing and old, experienced resource with a young, cheap one. 

Hurts in the long run.

Malachi Brown
Tuesday, March 12, 2002

'The reason is that I am a creative person in a literal sense. I have a need to create. But I am far from an artist. '

Bob..whether you can write code at guru level or hobbyist level, art has nothing to do with it. I build software for a living and make music for enjoyment.  I am not an artisit. Neither is anyone else.  I don't know what art is. Neither does anyone else. That's because art doesn't exist. It's an amorphous meme that thrives on perceived exclusivity. If you remove art from your vocabulary and thoughts, you will forever be free from it's grip. Guru coders are guru coders. Prodiguosly talented musicians are prodigously talented musicians. Great painting or sculpture is just that. It only has to be art for the minority who feels a need to exclude the majority. Sorry for the off-topic rant. 

I write code because I have to. My only other choice is music, and I don't like the odds or the culture of the entertainment industry..

Dan Sickles
Wednesday, March 13, 2002

Next to successful gambling, coding is the best guaranteed money I've ever seen.  Zero risk.  Show up, and get paid a damn good amount.  I love it...Glad I found it.  Glad I exploited it.  Glad I got real good at it?  Maybe.  Glad I didn't get dependent on the money?  Yes.  YES!

Bella
Thursday, March 14, 2002

*  Recent Topics

*  Fog Creek Home