Fog Creek Software
g
Discussion Board




What angered me the most as a developer ...

About 6 years ago, I was a developer, and a good one.

I enjoyed programming ... however, there was one thing that angered me:

I was stressed and tense, and concentrated a lot to get things done on time, to get things done correctly, and for some extremely difficult and advanced projects, to simply get things done.

In this time, I saw my manager being relaxed, enjoying life. There was no trace of stress in his voice when he was speaking. He always had a smile on his face.

It was clear that the guy relaxed a lot, that he didn't do a lot of work, and that he was quite happy.

Yet, he had a very expensive car, a very expensive watch, etc.

This got me mad, after a while...

I said to myself - I am smart, and I write good software. But what is the result to my personal life?

Is this guy smarter than me?

And I decided that, yes, he was smarter than me ... he didn't know a lot about programming, but he did one basic thing right - he choosen the right career so he could enjoy life a lot more than I was enjoying it.

So, I became an entrepreneur. It was extremely hard.

In order to be an entrepreneur, you have to have excellent psychological endurance - when things go bad, you have to keep working on your plans and not give in.

You also have to study management, marketing, and spend a lot of time studying the market itself.

Now, 5 years later (which were hell) we are finally profitable.

I now have a much higher salary than I had as an employee. I also enjoy life a lot more ... for example if I want to take some time off, I take it.

I no longer consider myself a programmer. I code from time to time, for pleasure, but other people do the work for me, and while they are tense and worry about every little detail, I am relaxed and have a smile on my face.

So .. what I just described above is a solution, if you are tired of programming and of the stress it generates.

Knight
Wednesday, October 29, 2003

Thanks. It's a really nice story. I like the psychological endurance part - stick to your plan whatever happens and do not give up.

The WebSpeed Man
Wednesday, October 29, 2003

This is one of the options I'm considering (I started the "Life and Career" thread).

Knight, your words definitely strike a chord. I look in the mirror and say, "You did so well in university. Your software doesn't suck that much. Users actually *like* you. So why do you put up with this?"

I'm not anti-work at all; if work is fun, then overtime changes its meaning - there was a time once when I felt guilty about asking for overtime pay because I was having such a great time.

Nice to hear a story about going it alone working for someone... maybe I'll come back here in a few years with a similar story...

Shodan
Wednesday, October 29, 2003

It would be nice to hear about programmers who continue doing programming but who also handle the commercial interface and get the rewards that go with it, in the way accountants, solicitors and advertising creatives often do.

Programmers themselves are largely responsible for creating this dichotomy, by showing extreme distaste for real world needs and problems, and wanting a happy, mad, fantasy world. Whereas good software engineering ought to focus on real world problems, including how much it is worth to solve them, what software techniques are therefore appropriate, etc.

Regarding entrepreneurship, one has to ask what is causing the stress. There can be (1) psychological problems just keeping going and (2) objective problems with the market, pricing, promotion etc. Both are very real and common. Being extremely resolute, positive etc may overcome (1), but never (2).

This situation can be curiously and cynically summarised as:-
(1) It is good to motivate yourself with a lot of bullshit.
(2) Never, ever, really believe your own bullshit.

John Jackson
Wednesday, October 29, 2003

Knight,

I was really expecting to be sold a book by the end of your post.  It reads exactly like one of those advertisements.

Ged Byrne
Wednesday, October 29, 2003

>>>
and while they are tense and worry about every little detail, I am relaxed and have a smile on my face.
<<<
You're the boss and created this environment for them? Learned nothing from your own experience? How long until they leave you?

sgf
Wednesday, October 29, 2003

>> "I code from time to time, for pleasure, but other people do the work for me, and while they are tense and worry about every little detail, I am relaxed and have a smile on my face."

Let me get this straight.  You run a software company and don't have anything to do with the software?  Damn you are one smart SOB.  I wish I could be like you.

You: Yea my employees are sweating their butts off to get this next gig done.

Other guy: Don't you feel you should provide a better work environment for them?

You: Naw, I was driven insane at my jobs and now I'm driving them insane.  Revenge is sweet success.

Other guy: So you did this all out of spite?

You: No. Absolutely not. I can prove that the Weapons of Mass Destruction exist.

Other guy: /ROFL


Wednesday, October 29, 2003

">>>
and while they are tense and worry about every little detail, I am relaxed and have a smile on my face.
<<<
You're the boss and created this environment for them? Learned nothing from your own experience?"

I think what he was saying was that if you work for someone else as a software developer you /will/ be tense and worrying about all the details. That is what software developers /do/. I would suggest that he has his own worries, but he is more suited to handling those kind of things.


Wednesday, October 29, 2003

Knight - great story - exactly what I needed to hear.
I am interesting to know more about your own company.

Can I somehow contact you?

another_angry_dev
Wednesday, October 29, 2003

What should you create someone a nice enviroment? Because you want nice people to work for you. If people are not so critical, then you musn't worry.

How long till they leave you? Forever! They have morgages and loans and leases and spouses and children. They made their choices and they couldn't resist the temption of bigger house and holiday trip. Now its time to pay.

You're doing them good by providing them with a job and a regular paycheck.

The WebSpeed Man
Wednesday, October 29, 2003

I am a programmer and i am staying a programmer
because i am good at it and i enjoy it. Programming
is hard because we actually have to do something
and make it work.  But isn't that the good thing
too?

The stress part is your reaction to programming,
it isn't inherent. To be trite, you needed to have
some perspective and a sense of humour.
It's not the end of the world no matter what happens.

An artist would never be happy as an art dealer.
You clearly weren't a programmer in you heart.

son of parnas
Wednesday, October 29, 2003

"An artist would never be happy as an art dealer.
You clearly weren't a programmer in you heart."

Rubbish.

How do you explain all the musicians who run minor record labels, eg Jello Biafra (The Dead Kennedies -> Alternative Tentacles)?

Similarly, many musicians turn to the production side of music (Brian Eno, Trent Reznor, etc).

Humans can have more than one interest in life you know.

Sum Dum Gai
Wednesday, October 29, 2003

As for the original post, I know some business owners who are a hell of a lot more stressed out than I am. It's not always the panacea that is described.

Remember that most small businesses fail in the first few years. When it's your livelihood on the line, plus you stand to lose a good chunk of cash you've sunk into the business to get it off the ground, it's easier to see how it can be more stressful than "working for the man".

The potential rewards are great, but so are the risks. If the reason you're stressed is because you like to overanalyse things and get them perfect (a common programmer trait), going into business may not be a good idea. A risk adverse personality does seem to me to be a good fit for the role.

Sum Dum Gai
Wednesday, October 29, 2003

Sum Dum Gai, you can certainly have more than
one life. Have as many as you wish. I am happy
for you.

But you can't say you were chased away from your
true calling because there were difficulties. Renior
painted almost his entire career without making
a dime. He stuck with it because he was a painter.

If you are a programmer then you will stick with
programming because that's what you are.

There's no problem with going a different direction.
But that means, imho, that you were a programmer
because it was just a job.

son of parnas
Wednesday, October 29, 2003

"If you are a programmer then you will stick with
programming because that's what you are.

There's no problem with going a different direction.
But that means, imho, that you were a programmer
because it was just a job. "

Do you believe that we only have one calling?  I don't want to limit my thinking that way - are you sure that's what you meant?

Konrad
Wednesday, October 29, 2003

>>If you are a programmer then you will stick with
programming because that's what you are.

Then it's a damn good thing that computers were invented.

Feel sorry for all the warp drive mechanics - they're stuck in the wrong jobs right now because noone has invented the warp drive yet.

RocketJeff
Wednesday, October 29, 2003

>Do you believe that we only have one calling?
>I don't want to limit my thinking that way - are you
>sure that's what you meant?

You follow a calling because it calls to you, not because
another path was difficult.

son of parnas
Wednesday, October 29, 2003

>Feel sorry for all the warp drive mechanics - they're stuck in
>the wrong jobs right now because noone has invented the >warp drive yet.

I often wonder what i would be in a previous or
future time.

And yes, a lot of us are stuck in the wrong jobs.

son of parnas
Wednesday, October 29, 2003

Son of Parnas, I'm not sure that's fair. I enjoy programming a hell of a lot - but when I get to do it. Most of the time, I'm either supporting legacy systems from the dotcrap era or building something which is designed for adequacy rather than quality.

I want to get out because I'm fed up with squandering what I consider talent on what is considered the "programming industry". Sure, I may be unlucky with my experiences, some of us are I guess.

I think programming on your own time is more like the painter who doesn't make any money. Just because we hate the job doesn't mean we hate the art. The two are separate.

Maybe it could be said that the more you love the art, the more you would hate the job.

Shodan
Wednesday, October 29, 2003

-> It would be nice to hear about
-> programmers who continue doing
-> programming but who also handle
-> the commercial interface and get
-> the rewards that go with it, in the
-> way accountants, solicitors and
-> advertising creatives often do.

After I started my own company I have tried this for a long time. It is very hard to have 2 or 3 demanding projects AND also do marketing, write invoices, talk to the clients, etc.

Even if you can do it, the amount of work you can do per day is limited.

If you hire people, this limit doesn't exist anymore.


-> Regarding entrepreneurship, one has to
-> ask what is causing the stress. There can be
-> (1) psychological problems just keeping going
-> and
-> (2) objective problems with the market,
-> pricing, promotion etc. Both are very real
-> and common. Being extremely resolute,
-> positive etc may overcome (1), but never (2).

John, this is not true. Being extremely positive can overcome (2).

Let's say that the market is in a bad shape right now, and you can't make a profit large enough to sustain yourself.

If you aren't extremely optimistic and positive, then you will quit.

If you are extremely optimistic and positive, you will search and search and try and try to find a way to sell products and services even on a bad market.

This isn't easy, but can be done - you just have to adjust your approach.


-> >>>
-> and while they are tense and worry about
-> every little detail, I am relaxed and have a
-> smile on my face.
-> <<<
-> You're the boss and created this environment
-> for them? Learned nothing from your own
-> experience?

I provide a good salary and good working conditions.

The problem is that programming is a very exhausting work, and even in the best of conditions, most people get stressed.

If I take two persons of equal programming skill, and ask person P to write programs, and ask person M to go to business meetings, think about a strategy for the company, and write specs, person P will have a lot more stress than person M, even in the best working conditions for person P.

So - when I was working as a programmer, I was person P. Now, I'm person M.


-> Let me get this straight.  You run a
-> software company and don't have
-> anything to do with the software?

I write specs and supervise projects. I don't write code.


-> I think what he was saying was that if
-> you work for someone else as a software
-> developer you /will/ be tense and worrying
-> about all the details. That is what software
-> developers /do/. I would suggest that he
-> has his own worries, but he is more suited
-> to handling those kind of things.

This is exactly what I wanted to say. Thank you for the clarification


-> An artist would never be happy as an art dealer.
-> You clearly weren't a programmer in you heart.

You are probably right. I learned programming and liked it a lot, but doing this full-time, for years after years, was very stressful to me.

Knight
Wednesday, October 29, 2003

This is very interesting really.  I keep saying I love software but hate the software industry.

For one thing, the system self-perpetuates crap.  Code and fix, territorial developer primadonnas, and blaming the other guy are all examples of things that tend to escalate over time.

Also, as a general rule people get punished only for complete incompetence, or for having principles and high standards.  In my company, Bob the Useless Tester gets occasional dirty looks for not having even started some task that should've been done months ago.  And I get them for refusing to define whatever I have at the deadline as 'done.'  And everyone else, for generally not playing online games but being willing to ship crap without speaking out against it, gets rewarded.

And no, I don't program in my time off when I'm in a coding job.  I do home repair, study management and entrepreneurial subjects, play video games, hang out with friends, and ponder the nature of reality.  (Only two of those pay, so far's I can tell, and they aren't the ones I do for fun.)  On the other hand, when I don't code for work, I get that itch to do so.  I don't feel like I have to code 24-7 to be a programmer.  And I get tired of being ridiculed as 'not a coder' for my post-management-stint perspective shift.  I can't help seeing the bigger picture, of course I choose to do what really *needs* to be done.

I'm still a coder.  And so is the OP.  Although if he was trying to change everyone's environment and not just his own, I'd be more pleased by his success, it's still something to know there is a way out.  The people who are just coders shouldn't need a way out, but right now they often do.  And acting superior to us not-*just*-coders isn't exactly going to make us feel particularly generous if we do 'make it' someday.  Get some common sense and a side order of people skills, folks.

Mikayla
Wednesday, October 29, 2003

"How long till they leave you? Forever!"

Or until the economy picks up.

Jim Rankin
Wednesday, October 29, 2003

Hmmm..

I'm a very relaxed developer and am adequately compensated.  I'm not management, either.

Strangely enough, I do the work of at least 5 people at our competition (I checked)  I don't know if I'm necessarily brighter than all of our competitor's, but I do think that our corporate culture and orginization contributes to this.

The thing to remember is that good programming practices are also self-prepetuating.  The problem is that people are so used to the 80+ hour/week stress-programming that any other way of doing things seems alien.

The part that I'm really noticing is that a manager doesn't necessarily have to be an expert coder who's gone over to management.  But a manager who has done a non-negligable amount of coding in the past is truly valuable. 

John Jackson is very right in saying that programmers, in general, by being so averse to "real world" stuff like management have been shooting themselves in the foot.  I think there's some other issues, however.  In order to have an environment that is condusive to some senior programmers moving over to management, you need other managers who have also made the switch, based on my glimpses into various corporate orginizations.

One of the basic things is that a company needs to value their programmers.  If you value your programmers, you pick out bright engineers, pay them well, treat them well, provide them with opportunities for growth, etc.  You will still have an office in NY or silicon valley because you want to have them in an environment where they can be adequately stimulated, even though it means that you pay more for the office and pay a cost-of-living adjustment.  You don't try to increase the stress level and squeeze every bit of work out of them because you know that they'll quit and do something else after a few years.

If you don't value your programmers, then it's working them to death, outsourcing them, etc. because they are not beautiful unique little snowflakes but they are cogs in the machinery.

The second way is presented as not making sense, but if you replace engineers with assembley line workers, it makes sense.  Programming is not yet an assembley line, nor is it yet a full-fledged branch of engineering (Which incidentally is also not an assembley line but is treated as one, to it's detriment)

Flamebait Sr.
Wednesday, October 29, 2003

It supposed to be that "programmers program and managers manage". Being a manager should be just as much hard work as being a programmer, just a different type of hard work.

It supposed to be that management isn't so much superior to programmers -- they just have different areas of responsibility. The theory/dogma states that without good programmers, theres nothing to manage; without good managers there'd be nothing to program.

In reality, it doesn't work out that way. Management is seen as a level distinctly above others; more responsibility, more authority, more status. If you get promoted to management, you have the authority to tell others what to do. You get to use the results and hard work of others and make it seem as if you accomplished them.

In my career (at least to date), I've only ever had one or two really good managers. They made decisions, but they also consulted. They were open to new ideas, even criticisms. They were sensitive to the needs and problems of their "underlings" (couldn't think of a better word). They shielded us from the background political manoeverings of the other managers.

These ones are very much in the minority. Every company has one or two of them, and they are disproportionately more responsible for the success and proper workings of the company than the others.

If you are a manager, and you are abusing the position (i.e. enjoying the prestige and authority of the position without paying attention to the responsibilities of the position), then you are not managing.

AnMFCAndJavaProgrammer
Wednesday, October 29, 2003

This is an interesting thread.  Eric Sink, the dude who runs SourceGear has some very very good articles on this topic.  He is sorta like Joel, in that he is a programmer who now runs his own company, but still codes.  His articles are about the biz/management/marketing side of software, but targeted at a developer, hopefully helping those who have the potential to cross over or enhance their current status to do so.  And he has a new monthly column on MSDN doing the same thing.  His articles are a nice compliment along side Joel's, where Joel's seem to focus more in internal issues (staffing, process, etc...), and Eric's more on the external part (marketing, etc...), but both aimed at developers.  Together they are a pretty great resource covering lots of bases.  They have definately helped me as I transition from one to the other in an effort to improve my quality of life. 

anonymous
Wednesday, October 29, 2003

"How do you explain all the musicians who run minor record labels, eg Jello Biafra (The Dead Kennedies -> Alternative Tentacles)?"

Maybe it's because of the way the industry is stacked in favor of labels and against artists?

Steven R. Wheeler
Wednesday, October 29, 2003

It's all about balance. Programming is a job, not life. I work from 8 - 5. If I have a particularly interesting or important task I'll stay late.

When I leave the office I am no longer a programmer. I don't think about work. If I take a couple of months to develop a program and a month later the company cans it, I don't care. Did I mention that programming is not life?

Don't get me wrong. I love code. Blowing away whole days because I'm zoned in to a certain project is nothing new, but it's still a job. I'd rather be surfing, playing on the xbox or sitting infront of the box fingering my navel.

There are 3 things I believe are fundamental to life.

1. don't sweat the smalls thing.
2. don't take it personally. just take it.
3. don't be afraid to walk.


life's too short not to enjoy the little things - that last one is my excuse for caffiene ;)

Jack of all
Wednesday, October 29, 2003

I've been working on starting my own company...  I have to admit it is grueling work.  I still put in 40+ at the office, and work on the my other project almost everyday.  It is difficult on the personal life, as others don't understand what it is I am doing hunched over the keyboard all the time. 

Recently I thought I was making a lot of progress, but now I feel like I'm back to where I started.  This is can be painfully frustrating, but I think back to early stages of all the projects I've been involved in and the first release is always the most difficult. 

I too have been reading Eric's Blog and have found inspiration in it, and hope I that someday this work will pay off.

stay tuned.

Christopher

christopher baus (www.summitsage.com)
Thursday, October 30, 2003

> Being extremely positive can overcome (2).

Being positive is an incredibly dangerous thing to do on objective matters.

One needs the freedom to say that this market segment is more promising than that one, that this product is useless, without the burden of a lot of cant.

There are people who really do start saying everything is fantastic because they have convinced themselves they must only ever breath positive stuff.

This is crazy, mad, unbelievably dangerous. It is painful to have to talk to an idiot of this type.

You seem to have a need to rescue somehow the positive thinking / NLP creed, and are cheating, by going away and doing rational stuff (eg ditching your previous plan), but doing it in an incredibly positive-sounding way.

It is even doubtful if the positive mental state is good as psychology. Maybe hard work is more what it is about, not drumming up distorted attitudes.

Deciding whether to continue should be a rational decision, on the basis of what one now knows and expects in the near future, again not a place for cant.

Simple people always think their psychic powers have more to do with things than is actually the case. Reality is a lot duller.

For example, people might not deal with you because you are under-capitalised or hav'n't been going long enough - not things a psychic force field can do much about.

John Jackson
Thursday, October 30, 2003

Programmers often accept work on extremely adverse terms. I will work day and night to try to make this thing happen. Someone will ask me once a day how I am doing and report on me and make ten times more money that way. I can be sacked if I make some valid point that is embarrassing to someone more senior than me. I will have no prospects, and most likely get pushed out the minute my work is safely archived. I will let someone else give a simplistic summary of my work and be treated as company expert.

Programmers should have more nouse and defend themselves, and be prepared to talk about their work.

Programmers should negotiate a better working environment from the word go.

Irrespective of whether it is called employment or a commercial contract.

John Jackson
Thursday, October 30, 2003

>If I take two persons of equal programming skill, and ask
>person P to write programs, and ask person M to go to
>business meetings, think about a strategy for the
>company, and write specs, person P will have a lot more
>stress than person M, even in the best working conditions
>for person P.

I'd agree with this if the level of programming skill was 'low', but as a developer, I'd say that if P's a decent programmer, he should be less stressed by avoiding the "business meetings"...

Gwyn Evans
Thursday, October 30, 2003

I have started the following blog on programming job problems, focussing on the programming role, not the entrepreneurial role, and have placed some additional material on it. Please feel free to add your comments. I am jgj43uk.

http://www.angelfire.com/electronic2/jgj43uk/jobprobs/

John Jackson
Saturday, November 1, 2003

*  Recent Topics

*  Fog Creek Home