Fog Creek Software
Discussion Board




In Search of the Peopleware Workplace

So I’ve been around the block a little bit.

For 9 years, I have worked in software development. Software for in-house use, for speculative purposes, for existing products with established market bases, for shrink-wrapped products, for customized products and for products that fall someplace in between. I have worked on contract, as a W2 employee and on my own. Currently I split my time between managing coders and actually coding.  And in those 9 years I have learned something:

Working as a software developer sucks.

Don’t get me wrong. Development work has good points as well as bad. But development work virtually guarantees one or more of the following:

1) You WILL BE involved with “death march” projects on a regular basis (in fact, some damn good programmers spend entire careers in this mode).

2) You WILL BE set up for failure by your employer’s lack of institutional courage regarding commitment to unrealistic deadlines, bids and feature sets.

3) You WILL NOT receive sufficient training in the job functions that are expected of you, nor will you be given the best tools available to perform those functions. Sadly, this means you will have to spend 8 hours at the office attempting to do work, and another 8 hours on your own time learning how to do work.

4) You WILL BE made responsible (and accountable!) for things that are, by design, completely outside your span of control.

In my book, this is more than enough to outweigh the moments when you feel the rush of creation and the satisfaction of a job well done. Let’s face it, in software development there is rarely a time when you can honestly feel the satisfaction of a job well done. Your employer’s very operational behavior hampers your ability to produce. Is this intentional? Of course not. But it happens all the same.

Just between you and me, I’m sick of this. Hence, I have decided that I must do one of four things:

1) Get the hell out of the software industry entirely,
2) Become a merciless change agent here at my work,
3) Start my own firm,
4) Try to move into management, or
5) Seek work elsewhere – preferably someplace that adheres to Peopleware-style management.

What to do, what to do?

Let’s look at these.

1) Get the hell out of the software industry entirely.
This is far too extreme, although I have considered it. Nobody wants to become low man on the totem pole overnight, and I am no exception.

First there are the basic economics to consider – in what industry other than software development can you be sniffing at 6 figures regardless of how little work you’re allowed to get done? The pay/performance ratio in this industry is preposterous, but I have a wife a child to feed, and I am more productive than most (which isn’t saying much in this industry).

2) Become a merciless change agent here at my work.
Despite what Joel says about getting things done as a grunt, and not to put too fine a point on it, I doubt there’s a snowball’s chance in hell that my employer is going to change just because I say so. I’ve been here almost three years (minus a brief absence) and while the methodology has changed somewhat, the institutional courage to keep us out of situations we know to be troublesome has not appeared.

Really, what keeps me here is the fact that everyone is so damned cool. It’s somewhat like going to school as a kid – school itself is only going to get so good no matter where you go, so you may as well attend with friends.

Besides, change scare people. It scares them. Trying to make people's lives better just mght get me fired. Can you imagine?

3) Start my own firm.
In truth, I do work for private clients’ on weekends from time to time. But I’m not sure I’m prepared for the leap to full-time self employment. I’m already in a state of high frustration and burnout; self-employment takes dedication that I simply can’t muster at the moment.

4) Try to move into management.
This would not help or satisfy me for the same reasons outlined in above for “Become a merciless change agent here at my work”.

5) Seek work elsewhere – preferably someplace that practices Peopleware-style  management
This sounds like we’re getting someplace, but reality keeps rearing it’s ugly head. You see, during my 9 years in this business, I have worked for 5 different regular employers and a dozen clients on contract. I've been exposed to lots of places and lots of people. None of those places practiced the kind of management that allowed their developers maximum productivity. Not one.

And in all those places, I have never met a person who has ever worked for a place that practiced the kind of management that allows developers maximum productivity.

And of all those people, I have never met one who even knew anyone who worked for a place that practiced...well, you get the picture.

So I ask, where are the enlightened software development shops? For that matter, where are the enlightened managers of software developers? If I can just find one I'll certainly find the other.

Hmmm...perhaps finding the Peopleware workplace isn’t so easy after all. But perhaps a prospective employer doesn’t have to be all that enlightened. Perhaps it’s just has to be better than most. So what would I look for? And what should I avoid? Well...

What I DO want:
1) A high degree of responsibility.
2) Involvement in strategy issues pertaining to the business, or at least the product.
3) Responsibility for leading teams.
4) Ownership of my work.
5) A mentoring relationship with a senior person.

What I do NOT want:
1) To be the front-line coding grunt.
2) Isolation from the business considerations of my work.
3) Limited or unclear paths of career progression from my current position to other positions I am interested in.

But then the problem becomes, if a prospective employer tells you that they offer the things outlined under “What I DO Want”, how do you know if they are lying to you? I took a job last years that turned out to be a classic bait-and-switch (that accounts for the 6 month absence from my current employer that I alluded to earlier) – all 5 of those criteria were promised but when I reported for work my job had suddenly transformed into scutwork that any junior-level programmer could do (I discovered later that they had been having trouble filling that scutwork position, which probably explains why I was told I’d be doing one thing but then was assigned to do another once I’d hired on. Gotcha!).

At this point in the game, I just don’t have faith left in any company’s claimed management practices.

Now, perhaps I’m too picky. Perhaps this is just the way the industry is and that’s that. Perhaps Microsoft [b]is[/b] really the only company with enlightened management of software teams (although I doubt it). Perhaps I just need a vacation (note: in all my 9 years in this business, I have never had a vacation. I find this is common in the software business. Sick days and time off when your kid is born are NOT vacations. The occasional 4-day weekend when the holidays line up properly is NOT a vacation.), or an outright sabbatical (Mmmm...sabbatical...).

Really, it all boils down to this – I feel disillusioned. I feel disenfranchised. I don’t feel valuable. I don’t feel vital. I feel like a cog. An indistinct, interchangeable, easily replaceable, faceless cog – because that’s what software developers are treated like. And I've felt like this for 5 years.

I’m losing hope that the Peopleware workplace really exists.

Maybe it’s just a fairy tale people cling to to make it through the day, like the promise of going to heaven after you die (i.e. “If I’m very good and pay my dues, some day I’ll get to work someplace that runs smoothly!”).

Or maybe it’s just the brainchild of fuzzy-headed liberal academics who only “manage” businesses in their collective imaginations while seated comfortably in brass-riveted red leather armchairs, sipping lattes and admiring the fine office space their university provides for them.

*shrug*

I’m not sure if the Peopleware workplace really exists or not. If it does, I have to find it. I have to. For the sake of my career and my sanity, I have to find out of there are really places that adhere to reasonable schedules, allow developers to own their work, and prevent non-technical managers from dominating and belittling technical workers. Because if there’s one thing I’ve learned over the past 9 years, it’s this:

Working as a software developer sucks.

Norrick
Friday, February 15, 2002

You've been in the software industry for nine years, worked for five different companies, and you can't find one that will even let you take a vacation?

b
Friday, February 15, 2002

Sadly, no.

Please tell me that's not the only thing you came away from my post with.

Norrick
Friday, February 15, 2002

It seems like you need to do better screening before agreeing to work for a company.  I've done this for over 15 years (as an in-house programmer, a consultant and in product developement) and have always had vacations. Sure - sometimes they've been moved (with plenty of notice), but never a refusal.

And to the rest of your points, I've worked for companies that wern't perfect but never any as bad as the ones you've worked for.  If they were all (or mostly) that bad, there would be no developers left.

Remember, you don't have to accept an offer just because they made you one. Screen the companies before you sign-on.

Jeff Pleimling
Friday, February 15, 2002

I think the reason people are focusing on your vacation problem is because that's the most glaring symptom.  Lots of people work for suboptimal companies, but ones that are such a disaster area that people don't get holidays are actually reasonably uncommon.

Rodger Donaldson
Friday, February 15, 2002

I think the reason you hasn't had vacation has more to do with the 5 employers, plus 12 contracts in 9 years.

It's easier to find time for vacation if you stay around for more than a year and a half.  And consulting companies are horrible for vacation time.

Chris Dolphy
Friday, February 15, 2002

Are all of the problems with working in the software development industry really that unique to software development? (And so would one's frustration with them really go away doing something else?)

No matter what you're doing, you probably have to contend with not having the best tools, picking up the responsibility for others'/managers' incompetence or overpromising, etc.

What are the unique things about software development that are sucky and don't have a necessary partner in something that is great and unique about software development? (I mean, yeah, if you were working at a convenience store, you probably don't have to worry about not having the best tools (unless you had a bad cash register?) but you also don't get the creative release of writing code, etc.)

David Sklar
Friday, February 15, 2002

I have to say I've been much luckier. I work in a people-aware workplace. I think that almost everyone in our group would agree with it. We don't have everything that Norrick would ask, but most of it. We do have vacations.

I've been in the software business for about 20 years, and have seldom felt the kind of frustration that Norrick is complaining of, at least not for prolonged periods.

I have been that merciless agent of change, and I admit that I'm the eternal optimist. But good workplaces do exist. Unfortunately, we're under a hiring freeze!

My advice is that when you interview, go in with the objective of finding out whether the company is right for you as much as letting the company decide if you're right for them. Ask the hard questions, like "when was your last vacation?", and "how are you involved in improving the company?", "what and when was the last training class you took?". Once you start, don't be afraid to make changes, every chance you get. Most of them won't amount to anything, but every once in a while one will make a big improvement.

Andy Fuller
Friday, February 15, 2002

My experience suggests that if you want a company that values software developers, you're going to find a company that values it's employees, period. While it's possible to find one without the other, I wouldn't expect such a situation to last very long.

Having worked at both the "trainwreck" and the "Peopleware" type shops, I can say that the real difference is culture in general. If a company is a great company to be an accountant for, then the odds are pretty high that being a software person there isn't going to suck. OTOH, if a company has a reputation for being stodgy and backward in some other respect, you can draw some conclusions that way as well.

Best software job I ever had was for a company that didn't even consider software to be a profit center, but they took care of their people like they were family.

Good Luck

Alex
http://alex.netWindows.org

Alex Russell
Saturday, February 16, 2002

I'll be the first to agree that vacation time is important.  However, I think all this focus on my vacation issue is obfuscating a simple truth that all software developers should know:  when the work is going well, you don't <i>need</i> a vacation, because the work seems like play!

Truth be told, I have had a few periods like that, where I was in the Zone daily and the environmental factors (by environment, I mean physical, managerial and circumstantial environments) were all in their proper place.

Sadly, those periods have been few and fleeting.

What is at the heart of my post here is this question:  <i>how do we create an environment that allows the work to seem like play the majority of the time, and reap the  benefits</i>?

Norrick
Saturday, February 16, 2002

I've had about the same experience as Norrick. 

The problem with online discussions of this topic are that they get filled with two tangents:

1. the personal attack "bla bla well no wonder your job sucks you keep switching it and bla bla bla"

2. armchair theorizing about the ultimate company "well this problem can be solved by a better chair and 4.2 weeks of vacation BLA BLA BLAH"

Rambling on about this crap doesn't really improve my job!

Perhap's joel's forum is not the place for it, but...i think something far more useful would be to actually name names!  What are names of companies where working as a software developer doesn't suck? What are names of companies to avoid? Why does one place suck, and the other place rule?  This is really what people want to know...

superHam
Saturday, February 16, 2002

superHam has a very good point.  Theorizing on this issue has its place and some more on this topic might be useful, but, like doing science, the theory has to be backed up by real data.

Well, I don't have much (except bad examples) but I'll present what little I have.  After a couple years of web surfing I have followed a lot of "Careers" links.  Most of those web pages are filled with routine meaningless feel good propaganda.  One that is a little more interesting than usual is http://www.geneer.com  Take a look and let us know what you think.  You need patience or a wideband connection for the movies.

Another that I thought might be interesting is http://www.isoquantic.com  Not so much detail but I liked the comment "management by a real propeller-head who has been doing what you would be doing for years".

Now an example of a real company that I worked for, but unfortunately it doesn't exist anymore: A little over 15 years ago I went to work for a small software development company that seemed almost ideal.  Everyone (except the receptionist) got an office with a door, window and a VT-220 on their desk.  The first project I was assigned to was really interesting.  The team members were talented and it had good management.  The program was written in C (and some assembler), but they didn't seem too concerned that I had never written anything in C before.  They managed to hire a lot of good people without worrying too much about a laundry list of specific experience.

OK, so I don't have a single example of a real existing company that I know about.  These examples are only hints that something good might exist.  Does anyone have a solid example?

I appreciate Joel providing a place for this kind of discussion.  I have tried USENET and Yahoo! mail lists and haven't found anything comparable.

Gary Chatters
Saturday, February 16, 2002

You might want to read about this same topic in Ars Technica at http://arstechnica.infopop.net/OpenTopic/page?a=tpc&s=50009562&f=34709834&m=2210904373

In essence, I'm looking for the same thing that Norrick is seeking - a place to work that Doesn't Suck.  My last job stressed me out to the point that I couldn't get any work done at all.  Any.  I had to quit because I was dragging the rest of the team down, and I didn't want to get fired.  The thread above has my posting about what annoyed me about my last workplace (Office politics, cubicle farms and terrible code) and things I would like to see in my ideal workplace (a fresh project, a real office, a War Room which resembles an eXtreme Programming workplace, a small close-knit team, a "No Assholes Allowed" policy, an iterative development process and enforced coding standards.)  My ideal workplace is a combination of my own ideals, the eXtreme Programming workplace, and the Out At Five workplace espoused by Scott Adams in The Dilbert Principal.

Like Norrick, I'm seeking the place to work where work seems like play.  I, more than most, have difficulty withstanding the usual business bullshit that occurs in 99% of the companies out there.  Help!

Meldroc
Saturday, February 16, 2002

You've been working in the software industry for nine years and it has not gotten any better. I have only been in the industry for 1 year and I feel the death march comming.

My boss looks like he is going to die of a stroke. I also haven't taken a vacation yet, it seems everytime I want to some big deadline pops up.

I usually agree with Joel (mostly because I don't know any better) but everytime I bring up a recommendation to the chief engineer he tells me that it is a good idea but unimplementable given (insert excuse here).

What to do? 

simm_s
Sunday, February 17, 2002

"Working as a software developer sucks."
"in what industry other than software development can you be sniffing at 6 figures regardless of how little work you’re allowed to get done? "


You should come to Romania working as a software developer for 350$ a month (that is considered a pretty decent salary in this country), all your problems would be solved instantly.
Really, do something else, at least you have the possibility to do that.

Szasz Attila
Monday, February 18, 2002

If your job or workplace doesn't satisfy or fulfill you, or if it actually frustrates you to the point that you are less effective than you believe you should be or the company believes _and_  you have the opportunity to change that job.  Then go ahead change it.

But if like many people you are pretty much stuck with the current hand you are playing...

Examine yourself, critically and positively.  What is there in the way that you work that can improve that you have control over?  In all the ways that you've tried to present change to others have you sold it properly?  Have they seen the same problem that you have?  Is it possible to make the changes you want without there seeming to be a cost to those that are blocking it?

A guy I used to work for and with used to have two kinds of scenarios for motivating people, one was the swamp full of alligators and the other was the climb up a mountain.  People are often too busy fighting off the alligators to clear the swamp that attracts the alligators in the first place.  The answer is you drain the swamp anyway.

Which means what?

Well in personal terms it means you clear whatever it is you have control over, if you can engage others all the better but that isn't your primary aim.  And if you believe you have no control over anything at all then think again.  You have control over your own attitude, even to the way that you do what you are asked and the reaction you have to what you are asked to do.

Managers don't want problems (Look this is wrong it will cause all these problems), they want solutions (in order not to have problems we have to do x or y).  Even if you think its a complete load of dingoes kidneys try and find the most effective way of doing it.

Practical demonstration is the best way to convince someone that change or an alternative method is worthwhile.  So if you believe there is a better way scrape time for it, make your own parallel track, this is actually much easier in software development than in almost any other human endeavour.  Most people don't have the luxury of being able to create their own alternatives.

Simon Lucy
Monday, February 18, 2002

Isn't a "place where work seems like play" a little bit too much to ask for? Is there any job in the world, no matter what profession or business, where work is like play all the time? After all, the goal of software business is not "making software developers happy" but "making money" just like everywhere else.

Of course there are companies around where "keeping the employees satisfied" is part of their "making money" strategy (I am happy to work for one of them and yes, we are hiring, mail me for details if you care).

But from what I read in the postings it seemed to me that "work like play" was not neccessarily what Norrick asked for, but a place where he can feel appreciated and where he can work in a way that he feels is the right way. From my experience (having done may different jobs before arriving at software development) you stand better chances of finding that in the software industry than any place else (due to higher flexibility, "younger" companies, flat hierachies etc.). Still, business is no game and never wil be, you always end up with a lot of compromise or no money :-)

Have fun,

Jutta Jordans
Monday, February 18, 2002

If you have already formed the conclusion "working as a software developer sucks," then you should look at changing careers.  In my opinion, you are not going to find what you are looking for if you have already reached that point.

I think that you are making way too many hasty generalizations about your fellow employees in the development industry, as well as employed persons in general.  For instance, why wouldn't you be willing to be low man on the totem pole if it were work that was challenging and exciting, and met the criteria of the "ideal job" you outlined?  Same question for compensation.  Oh, and please point me to companies that pay people with no experience nearly 100K, as I'm sure many of us with 10+ years of experience, myself included, would love to see what we could wrangle from them.

Find what it is that is most important to you in a job, be it cash, PTO, responisibility (or lack thereof), etc., then find a job based on those criteria.  If you find something that maxes out on all of the criteria, you're very lucky.  Otherwise, sacrifice things that aren't as important.  You work to live, not live to work.  Plenty of people enjoy their jobs and get by on a hell of a lot less than what you currently make -- you are extremely lucky that you are even in an economically-viable position to consider change.

Just my $.02...

tchaos
Monday, February 18, 2002

Wow.  I never dreamed that my post would result in a long string of personal attacks.  According to most of you, the software industry is fine - I'm just rife with character flaws.

Also, a number of posts have proven Joel asserions that "people don't read".  A few examples:


"I think that you are making way too many hasty generalizations about your fellow employees in the development industry, as well as employed persons in general."

And what generalizations have I made about my fellow employees?  Or about employed persons?

"Oh, and please point me to companies that pay people with no experience nearly 100K, as I'm sure many of us with 10+ years of experience, myself included, would love to see what we could wrangle from them."

I have a $100 bill for the first person who can point me to the part of my post that says I know of any companies paying 100K to people with no experience.

Things like this anger me.  Instead of sharing your experiences, instead of sharing specific things you've done in the past to deal with similar frustrations, most of you are simply attacking me personally.

I mean, do you really believe that in 9 years it has never occurred to me to pitch change to people?  To pitch it as "avoiding pain" or "moving toward pleasure" as the situation warrants?  To implement change on my own as an alternative path wherever I can?  Has it never occurred to any of you that such attempts may simply be shot down by people who lack the courage to change the status quo?  Or people who stand to gain by maintaining it?

Frankly, I'm stunned.  But then again, I shouldn't be.  With few exceptions, these replies have been exactly the kind of fearful, unthinking, hostile backlash that anyone who tries to question accepted methods tends to receive.

Argh. 

Norrick
Monday, February 18, 2002

Norrick:

When I read your post, I was thinking that boy, either the glass really is half-empty or you're the one with the unfortunate perception.

Then the replies came in, and I found them to be extremely constructive, and I was glad I didn't say a word, because constructive replies are far more useful than negative ones.

No one attacked you.  You need to take a vacation.  Your company probably needs you more than you think, so get out there and take that vacation.

I mean, looking at your last post, it's like, "No wonder this guy doesn't get what he wants, if this is how he comes on."  And I'm guessing (only a guess!) this is because of the NINE YEARS of no vacation.  I mean, that's nuts, and a great way to ruin an early adulthood.  I'd be a bit rough around the edges myself.

There are places, even communes, where people don't charge the insane prices us "professionals" milk our customers for, but get work done quickly and yet leisurely. 

I'm only posting because I think you're wayyy overheated, and you're asking too much of the industry.  Start your own company!  Or leave altogether.  All we do is ransack the bodies of Turing and von Neumann for all the gold we can find.  There are better fields to work, without the divorce rate.  I shit you not, I just heard my sysadmin this second scream in frustration.  At that moment, he was the slave of his machine.  You need what he doesn't have, which is time off, to take care of all the things in your life that have been neglected.

Get the vacation, and then we can start on the rest.

Cletus Washington
Monday, February 18, 2002

I will post without comment a recent Dr. Science Q&A:

Dear Doctor Science,
Why does everyone put toilet paper in the holder backwards?

Ans: When you find yourself at odds with the rest of the human race, a little warning bell ought to go off in your head, and the thought "maybe I'm the one who's got it wrong" should occur to you. Sure, you might be the only one who really knows how to put toilet paper in the holder
correctly, but there's even a better chance that you're one step away from being the guy at the Laundromat who sits there watching clothes spin in the dryer, having an imaginary conversation with the President.

Bob Perlman
Monday, February 18, 2002

As background, I've been in this profession for 12 years, and I do not think that Norrick is out of line. There are real problems in the profession, and many of them are caused by others' attitudes toward our work.
McConnell in Rapid Development stated that he, as well as many others, felt that the biggest problem in our profession was dictated deadlines and dictated schedules. These are done in a way that would never be tried (seriously, at least) to other engineering professions. Can you imagine an executive saying "You'll have that bridge built in two weeks because that's when I promised them it would be done!".
There are far too many people in the business world who do not know what goes into building software. And, IMHO, there are far too many developers willing to work 60 hour weeks for the business people to ever learn any more.

The longer I'm in this profession, the more virulently I resist overtime. Of course, all of this does our friend no good, other than to advise him to (a) just take the vacation; and (b) just go home at 6pm and see what happens. You may want to wait for the labor picture to improve a little before you do it. If we'd all done it three years ago when we were a lot scarcer it might have done more good.

Lastly - don't tell someone to "love it or leave it". It's our profession, too, and some of the angst we feel is because we care so much about it.

skautsch
Monday, February 18, 2002

"some of the angst we feel is because we care so much about it. "

Exactly!  I had a number of jobs in college that were in companies or industries that, try as I might, I just couldn't care about.  And that's no good.

I'm actually getting a bit of a mixed message from the replies here, so...here's a question for everyone whos saying "you just need a vacation" (which I will NOT disagree with!):

Are you telling me that there is NOT an industry-wide problem with overcommitment, death marches and undertraining?  Or are you telling me that since that's the way things are, we should simply accept it?

Norrick
Monday, February 18, 2002

I'm sorry you've had no holiday etc. I'd be worried about how my family (wife) feels about that.

I've been at one place for the last 10 years, gradually renegotiating my employment contract every other year or so (e.g., to get more holiday).

It's possible to have a string of bad luck... I didn't always like my working conditions, and by the time it became due to renegotiate my contract I often felt "if it doesn't get better than this, I owe it to my people to look elsewhere" ... with that attitude, and faced with increased demands, while at the same time wanting to keep me (I didn't make demands often, was usually more help than hinderance), they agreed to e.g. several weeks of holiday per year.

My next strategy, to actually take a holiday, involved telling them several months in advance ("can I take my holiday in June? I need to book plane tickets; my family overseas are planning their reunion.")

Re. better tools etc., that would be nice too. I figure I can buy or make them when I go into business for myself, and until then I'll ask to be given things, and sometimes I'll get them (they gave me a Sun machine, for Solaris development) and sometimes I won't (still waiting for CASE to show itself).

Re. employers, I wonder whether you work for a software company, or for a company whose chief business isn't software. I have always worked for the former type.

Christopher Wells
Monday, February 18, 2002

> Are you telling me that there is NOT an industry-wide problem with overcommitment, death marches and undertraining? Or are you telling me that since that's the way things are, we should simply accept it?

IMO it is a big problem with many, probably most of the companies in the industry, but there are noteworthy exceptions that spell hope. And I say: of course do not accept it. Keep looking for a place where you feel more comfortable or change the place where you are if this is possible (or, if you have the opportunity, start your own business, but then you won't go for a vacation for another nine years min I fear). And if you leave a job because of the things you mentioned, make perfectly clear to the management why you do so (this does not help you any longer, but  it might change things for the ones who stay).

I did not want to attack you with my former post. I am sympathizing and understand how you feel. But you are whining and that does not help anyone. What do you expect us to do about your situation? We all work in the industry and I guess many of us spend a lot of energy on making things better. Most of the posts (as I read them) tried to show you ways out of your personal dilemma instead of just whining along with you (which would have been easier for all of us I guess, but would not have helped you either).

Jutta Jordans
Tuesday, February 19, 2002

I personally work in Germany.  The vacations are nice, though the exchange rate vs. the US is unfortunate.  The workplace at this particular company is sort of like Extreme Programming, except that everyone works overtime.

I personally work best when I have those quick 4 hr workdays.  The way I swung it was with these factors:

1) There was "kurzarbeit," which is a fairly odd law the company was taking advantage of.  In the end, what it meant was the company was bound not to require us to come for more than 20 hrs/week, in return for gov't cash.  Of course, the implication was that we should come to work anyway, "if we wanted to study," but they couldn't force us.

2) I've proven myself to the company.  My work is fast and bug-free, and I surf the net overmuch, so I know all the latest free libraries.

3) I give advice to everyone.  I'm the library, with lots of books, and I'm friendly.

4) I don't gossip or eat with anyone, so I'm fairly immune to peer pressure.

So I just started coming in for between 4-6 hours a day. 

Cletus Washington
Tuesday, February 19, 2002

My recommendation is to seek work elsewhere while
become a merciless change agent at your current  work.

Read Joel's Interview guidelines to get an idea of how a peopleware's workplace interview should be conducted.  When you find a place which asks the right questions in an interview, you know they are serious about finding the best software engineers, and proividing the best environment for their employees. When you get an interview which can be reduced to "can you code, when can you start" then REFUSE ANY OFFERS FROM THEM!!! The right place should feel like an exclusive club which throughly screens out candidates...

In the mean time, try every day to do 1 small thing to make your current workplace better.  Don't ask... just do it.

BTW, If you have the following goals:
"1) A high degree of responsibility.
2) Involvement in strategy issues pertaining to the business, or at least the product.
3) Responsibility for leading teams."

Then contracting for a company is not your best option. People hire contractors mainly to get a specific job done.  If you want involvement in the bussiness you need to be a regular employee, and be interested in the bussiness itself.    You need to figure out what kind of bussiness you are interested in, and apply for the companies which whould match your interest.

When you find the new job arrage it so you can  take some time off between  jobs... Or better yet take some time off now.

Good Luck...

Paul B.
Tuesday, February 19, 2002

Norris wrote:

“I'll be the first to agree that vacation time is important. However, I think all this focus on my vacation issue is obfuscating a simple truth that all software developers should know: when the work is going well, you don't <i>need</i> a vacation, because the work seems like play!”

There is a good reason people are focusing in on the lack of vacations. It’s like a red warning sign flashing. I notice that YOU did not take vacations. You never said your employer would not allow it. If they would not let you take vacations, why not take two weeks between jobs?
You may take this as another personal attack. I do not mean it that way. I am trying to help.
The other people who commented suggest taking a vacation to let you think about this situation and get perspective. It is clear you are burned out and unhappy. Even if the work is going well you need a vacation. If you can’t get away, recharge and think about other things, you wind up quitting in a year or so. An employer would probably rather let you have two weeks than loose a trained developer.
If software is the best way to support your wife and child, you have to put up with the downside to gain the benefit. If you feel the job is killing you, vote with your feet. Leave and find something that you enjoy doing. Your family may appreciate that choice, even if the money is not as good.

Doug Withau
Tuesday, February 19, 2002

D'oh!  I just re-read all the responses and realized something that explains my irritation.

The original post is supposed to be equal parts truth and satire.  Perhaps is should have wrapped the whole thing with <sarcasm> tags?  I don't think that aspect of it came across very well.  I've been reading the responses and wondering why everyone is so damn serious and even hostile.  Then it dawned on me - most of you didn't "get it".

My bad.  I guess I need to work on my writing skills...but you can't tell me my points are not valid!  ;)  Rather than a rant or a whine I intended this to be a biting example of the dark side of our business.

Don't make the mistake of thinking I don't love this business.  I do.  But I can still think of a lot of ways to make it better.

Norrick
Tuesday, February 19, 2002

Norrick, satire can be hazardous.  A lot of people don't even "get" Mark Twain, and he was a rather good writer.

Maybe putting in the part about no vacations was a mistake.  Even mediocre employers let you take a vacation. How is it that you got stuck with such a string of disasters?

What kind of response were you really looking for?

Gary Chatters
Wednesday, February 20, 2002

"Maybe putting in the part about no vacations was a mistake."

Obviously.

"Even mediocre employers let you take a vacation. How is it that you got stuck with such a string of disasters?"

Something along the lines of 'The project you're leading is SO critical we just CAN'T AFFORD to have you out for even a day...you can take your vacation after the delivery"...but then I immediately get assigned to another project that is just SO critical, etc....

"What kind of response were you really looking for? "

Not personal attacks, certainly.  I was hoping people could share experiences of workplaces/projects done the right way, theories on how things got to be this way, etc (and thankfully there are a few of those in there, but they are in the minority)...but instead I seem to be hearing predominantly "Love it or leave it!  You're just bitter!  There's nothing wrong!  Take a vacation!  You're a whiner!", none of which are constructive even in the least.  I have a feeling most of the respondents have some stake in NOT upsetting the status quo at their company.  I can't think of anything else to describe the negativity and hostility in this thread.

Norrick
Wednesday, February 20, 2002

Norrick,

I have kept off this thread, but based on your recent posts thought I would throw in some stuff...

I will refer mainly to your original post:

Looking at your first four points:

For (2), I would suggest ignoring the expectations of others (strange as that sounds!). When you give estimates, make them accurate and then IGNORE what anyone else says. If your boss (for example) cuts the estimate and complains you are running late, then state that you are not running late and show your original estimate. I have used this in the past and after a while it seems to work. If it doesn't work (which is bound to happen eventually), then next time you are asked for an estimate, refuse to give one (stating that you refuse to give an estimate if it will be ignored anyway).

For (3), I find that problem tends to exist to differing degrees in different fields. Financial companies (banks, funds managers etc) in Australia, as a general rule, tend to be happy to spend money to save money and development time. Most other employers are generally not happy to spend it. So I tend to aim for financial companies (because they have the money!). Maybe there are other solutions though. ;-)

As for vacations (since that always crops up in everyone else's posts!) I too have had bad experiences. In my last full-time job I had some leave revoked which was a major factor in me looking to move. I really think (like a lot of things) that the issue comes down to having a good manager. When your direct manager looks out for you - that is a real blessing. Out of my 7 or so jobs, I have had 2 good direct managers so far. Its something that I try to spot at interview time - though it is often hard. In Sydney, financial companies often try to work you to the bone. One indicator may be if they have part-time staff on the team or older (parent age) staff on the team. This may (but not always) indicate an understanding attitude towards the needs of the employee.

Umm, thats about all for now. ;-)

Seeya

Matthew John Wills
Wednesday, February 20, 2002

I'm sort of disappointed with the way this thread turned out. As superham above points out, internet discussion on this topic always turns out the same way... a bunch of ad homineim attacks on the original poster, and maybe a few posts about vague concepts that could theoretically make your life better. I thought maybe something better would come out of the enlightened joel on software readers, but i guess I was being naive. Too bad. 

I honestly didn't think Norrick was being very whiney or describing a situation out of the ordinary. 3 out of 5 developers I met in silicon valley and boston had the same life story as Norrick. I was also headed down that path myself, but I decided to opt out.

Why did this thread end up this way?

Maybe it is because Norrick is sort of in that "mid range" number of years on the belt, and the readers of this board are either older or younger.

The younger guys aren't going to respond because they don't have the experience, and the older guys have already ruined their lives, so they've snapped and have entered into "WHEN I STARTED OUT, MY LIFE SUCKED, AND I LIKED IT. BUCK UP, COWBOY!" mode.

In either case, it is sort of sad that no one ever answers the original question. Which I sort of understand to be "hey guys, where is a GOOD place to work? Does one even exist??" 

El Grumpo
Thursday, February 21, 2002

Matthew John Wills says:

"For (2), I would suggest ignoring the expectations of others (strange as that sounds!). When you give estimates, make them accurate and then IGNORE what anyone else says. If your boss (for example) cuts the estimate and complains you are running late, then state that you are not running late and show your original estimate. I have used this in the past and after a while it seems to work. If it doesn't work (which is bound to happen eventually), then next time you are asked for an estimate, refuse to give one (stating that you refuse to give an estimate if it will be ignored anyway)."

Thankfully, this is a lesson I learned a number of years ago.  There is always implied pressure from non-technical managers to give numbers that are politically pleasing rather than realistic.  It's a tough road to stick to.

Also, when your numbers get shaved by the project manager or salesperson, showing the original estimate is a good CYA tactic, even if it doesn't always work.  Sadly, the final authority to come up with a number to give to clients usually rests not with the people doing the work but with someone two layers up who doesn't understand the concepts involved.


"For (3), I find that problem tends to exist to differing degrees in different fields. Financial companies (banks, funds managers etc) in Australia, as a general rule, tend to be happy to spend money to save money and development time. Most other employers are generally not happy to spend it. So I tend to aim for financial companies (because they have the money!). Maybe there are other solutions though. ;-)"

Perhaps the financial companies have the analytical saavy to determine the true costs of turnover, training, morale, etc.?

"As for vacations (since that always crops up in everyone else's posts!) I too have had bad experiences.  In my last full-time job I had some leave revoked which was a major factor in me looking to move. I really think (like a lot of things) that the issue comes down to having a good manager. When your direct manager looks out for you - that is a real blessing."

I agree wholeheartedly.  In fact, our happy existance as developers depends upon having good managers looking out for us.  As insane as it may sound though, I've been in work situations where my immediate manager was a stand-up guy but the managers above him overrode him all the time.  It was sad.  It was as though he was a manager in name only, they micromanaged and overrode this guy so much. 

Great response, Matthew.

El Grumpo says:

"In either case, it is sort of sad that no one ever answers the original question. Which I sort of understand to be "hey guys, where is a GOOD place to work? Does one even exist??"  "

Exactly.  There are a lot of words said and a lot of books written about a better way to do things.  I'm wondering if it's ever been put into practice anywhere other than Fog Creek and Microsoft, and if so, where?

Norrick
Thursday, February 21, 2002

I agree with superham and El Grumpo.  Norrick made a lot of valid points about the deficiencies of this industry; I didn't find it whiny at all. 

I've been working for 6 years and I've gone through one burnout phase already.  A friend of mine who has been working in IT for only one year is already on the verge of meltdown.  And we're not alone.

The fact that most people reacted by criticizing the particulars of Norrick's circumstances (vacation, choice of jobs, then branching into factors that none of us have a clue about and no right to judge, such as what led to the choice of certain jobs, why the jobs were not as advertised, blah blah) instead of asking what was wrong with the companies/the industry, is precisely the issue. 

If an employee is unhappy, the prevailing assumption is that he/she isn't a team player, he/she has the wrong attitude, he/she didn't choose the job wisely, it's just about the money, and all that hooey. 

The real issue is that nobody cares, nobody has any empathy, nobody says a simple "thank you" for a job well done, or for volunteering tons of overtime (which most of us do, even without extra pay), nobody stands up for you or fights for you if you're the low man/woman on the totem pole and someone just stole credit for your work/idea, and if you stand up for yourself, you're branded as being "whiny" or "self-centered" or "troublesome", nobody says "OK" when you ask for vacation time or training, and in most cases, there isn't a thing you can do about it because nobody wants to budge, nobody wants to change.

MS
Thursday, February 21, 2002

El Grumpo and MS,

Well, please explain to me the problem.  In each case where I wanted my way, I made myself indispensable.  Then I took advantage of this position, but everytime I did this, it was in a way that resulted in higher "productivity."  (A side-effect of selfishly making me happier.)

As for companies?  Well, OmniGroup is nice.  Apparently Electric Minds is too.  Those aren't too well-known.  But I assume the trend is away from high growth, so I don't know if these companies are quick to hire.  ITA Software is, and they sound enlightened.  SAS might have something.

Once nice rule is to look at companies who make technologies I like, and read about them.  I learned quite a bit by just talking or discussing on the web with people who worked at these companies.

I personally have driven near-suicidal at the state of my work environment.  For example, there was such a culture of "looking like you're working" that no one spent time thinking, and it manifested in things like CLEAR-TEXT PASSWORDS!!  But the thing keeping me from death was the realization I was thinking like a peon.  Here is a quote from old Jack Welch:  "If you don't control your destiny, someone else will."  If you get into thinking that the world must change, you should maybe ask yourself what ways you can change to facilitate finding what you want.  Old Richard Stallman had to do this, and I find his situation even more pitiable.

The point is this, and I hope anyone can clarify to me why this is wrong:  Companies generally exist to make money.  They are run by people who don't necessarily know how to manage specialists, and even when some do, that situation is subject to change.  Therefore, someone who wants her way has to think about the chess game of business.  It's rather fun, not boring.  Make yourself indispensable, so people are about as willing to sacrifice you as they would a queen, instead of a pawn.

To recap:
1) Meet a lot of people.  Target companies you've heard of, and like.  Find about their culture.

2) Make sure you've got money saved, so you aren't forced to make rash moves.

3) Be proactive.  Companies change.  Blizzard was bought out by Vivendi.  Rollerblade was bought out by Benetton.  Netscape by AOL.  Sun was never fun to start out with.  So it's not like good things last forever.

4) There are different kinds of people, and they give different kinds of advice. 

5) Talk with those "higher-ups."  Make them like you and think a little like you.

6) El Grumpo and MS weighed in, and each probably have worked far longer than the industry than I.  But...  I notice they offered no advice either, except to empathize with Norrick's unhappiness.  So why not accept the conclusion there is no answer in the conventional sense?  Maybe Peopleware is dead in the main, because companies feel robbed by all the dot.com lies, and are falling back to staid conservatism?

forgotten gentleman
Thursday, February 21, 2002

I think Norrick's original post had some valid points about SW development, it was a long rant, it was over dramatic, etc., etc., so people just replied to the part that stood out for them.

Norrick> "I was hoping people could share                experiences of workplaces/projects done the right way, theories on how things got to be this way, etc"

El Grumpo> "hey guys, where is a GOOD place to work? Does one even exist?"

That's what I thought the question was.

People can really only respond from their own experience.  A lot of employers let you take vacation and are not too bad overall.  But given the mediocrity in the industry, are there any that stand out as really good? 

I did have one employer that stood out from the others I have had.  They had real problems, too, but my experience there makes me believe that better SW development environments are possible.  It also makes me believe that it is real difficult to do.

McConnell in his editorial in the latest IEEE Software magazine discusses a related question: "Why aren't people using the numerous good software engineering practices that are now so readily available?".  Use of good SWE practices would be an indication of good management and a quality work environment, but too many places can't even do that.

Suppose that a quality employer exists.  How do we find it?  I have had 7 employers since starting to work full time.  Two were the result of buy outs, the other 5 were through personal contacts.  Sometimes just a recommendation, sometimes I knew people already working there.  This is probably the best approach, but will require being agressive about expanding one's set of personal contacts.  Just searching out companies may work, too, but it can be hard just surfing the web.  Maybe going to conferences.  Job boards, newpaper ads, and headhunters may work, but I suspect they are close to useless.

The job market right now is terrible, but it should be going up in the next year, so this is probably the best time to start looking.

Gary Chatters
Thursday, February 21, 2002

In reply to forgotten gentleman:

I've been working full time since I was 18 (had to pay my way through college). So I do have a lot of experience but I'm not that old (30 something).

Here are some specific examples:
1. AOL - this seems like a good place to work if you don't really give a shit about what you are doing. You aren't expected to do much, and if you don't do much and act personable you'll get along just fine. However, if you are hired as an experienced professional, you will be expected to do all the work the other people aren't doing, and it will be very stressful and annoying. I don't recommend it to people who take pride in their work. However, if you just need a 9-5 job to pay your bills, it isn't a bad place.

2. Hewlett Packard -  HP actually seems like a very good place to work as an engineer. I was a contractor there, but the permanent employees had a good life. The salaries were on the low side, but the facilities were in a cheap area of the USA, there were many perks, a clear job advancement path, etc.  I worked there pre split/name change and have no idea what it is like now.

I worked at one other supercompany that was sort of a mix between HP and AOL. The others were death-march fucked company startups. And one university job, which in retrospect, I should have kept. ;-)

Unlike forgotten gentleman, I don't find the chess game of business very interesting at all.

I'm a naive engineer and just want to make cool stuff and avoid what I view as stupid political scheming and bad arithmetic.

I'm jaded enough to realize this is an antiquated view of the profession and that one has to do a bit of scheming in most companies to get promoted or even stay employed.

However I'm really not into the business games and I think a lot of engineers are similar to me, and just want to do good, interesting work, and avoid the games. It seems like the places which are rated good places to work for engineers are places like Microsoft and HP, where the engineers are isolated from a lot of the day to day business games.

It seems as though if biz games are one's thing, there are stadiums for those games (erf, sorry) where the stakes are much , much higher. If I had a knack for that sort of thing, I'd be in mergers and acquisitions for some financial firm, not in a software engineering department.

I basically gave up on the rat race (sort of) and formed an S corp of my own and just do contract projects for various arcane DSP projects in the medical and audio production industries.

El Grumpo
Thursday, February 21, 2002

Unfortunately, in my career I've mostly encountered the SW dysfunctional sort of companies that Norrick has described.  The few "people aware" companies that I worked for did not require exhorbitant overtime and allowed (even encouraged) taking one's vacations.  Unfortunately, those companies also were very limiting in terms of the experiences they could offer and what one could learn working there.  One of them had no clue as to how to develop software.

I have yet to work for a company that really follows good SW engineering practices.  I probably need to take part of the blame for choosing the companies that I have, but as others have noted in this discussion, nearly every SW developer I know has reported experience similar to mine.  In one case, it was my own fault and I can blame it on my own lack of experience at the time; I actually was given quite a bit of latitude by my manager at the time, it was my first try as a technical lead, but I had yet to learn about leading a team and systematic SW development practices.  But for most companies that I've worked at, most management practices were dictated by others.

Perhaps this is partly due to the type of industry I work in.  I have never worked for a software house.  I have always worked in embedded SW, mostly for telecom/datacom companies.  The decision makers often don't know anything about SW development.  The most recent companies have been start-ups where there's even more pressure to push towards a "code like hell" or "code and pray" style of development. To be fair, the developers are allowed to give an estimate, but they themselves do not have enough experience or discipline to give accurate estimates, so their estimates are always wildly (perhaps I should say naively) optimistic.  Management's fault is then to take these first estimates and cast them into stone.

Hmmm.  I'm rambling.

Certainly there is more I or anyone could try to do as an employee at such a company to rattle the cage, to be a change maker.  This is no small art.  It's a goal worth working towards, although as Grumpo points out, it is not software development per se and so is not everyone's cup of tea.

One point I would like to make is this:  I have seen in this discussion some people refer to software development as a "profession".  But the reality is that software development is nowhere near a profession yet.  And that also is part of the overall problem, or a reflection of it.  Steve McConnell makes a strong case in his book "After the Goldrush" that it's about time that we (all us SW developers, I reckon) work towards making it a profession, and he outlines what it will take.  Come the day that we do have a recognizable profession (which probably won't happen before I retire), then we may find a lot more companies that fit the profile that Norrick is looking for.

Grimace
Tuesday, February 26, 2002

I have been thinking about this a lot.  I agree there's a lot of anarchy, and part of working in anarchy is using charisma, as well as just getting power.  That is truthfully sad, and those who don't stick out in the wrong ways often get rewarded.

I don't know how to put it either.  I know that working for the success of my current company does not fully entail being a better programmer or engineer.  This serves as an indication of inefficiency.  And I'm not happy, since I learned skills that are not really intellectual.

I suppose it all points to starting a new company, with all the insanity that entails, or do something with open source, which unfortunately is not a great choice for someone with a family.

forgotten gentleman
Tuesday, February 26, 2002

Grimace says:
<blockquote>
  But the reality is that software development is nowhere  near a profession yet. And that also is part of the overall problem, or a reflection of it. Steve McConnell makes a strong case in his book "After the Goldrush" that it's about time that we (all us SW developers, I reckon) work towards making it a profession, and he outlines what it will take.   
  Come the day that we do have a recognizable profession (which probably won't happen before I retire), then we may find a lot more companies that fit the profile that Norrick is looking for.
</blockquote>

That's an interesting point.  I have not read 'After the Gold Rush', but perhaps I should.  I think that speaks to the point made in a number of replies that softweare development as an industry is still very immature.

I think I need to go see what McConnell says needs to be done in order to make software development an honest-to-goodness "profession".  I wonder if I'll agree with him?  Hmmm...

This is great.  The last several replies have really been on-point, honest discussions of the topic.  Let's keep it rolling!

Norrick
Tuesday, February 26, 2002

BTW, if I sounded like I was complaining about anarchy, I was just darkly reflecting for a moment.  The skills I learned rounded me out well, because I won't be a dang coder all my life.  I should never underestimate those skills.

I will take anarchy anyday over the stifling alternative.  One simply learns far more.

The scenario for me is that if, through resigning or my company dies, I will spend about six months becoming a far greater programmer.  I expect that I won't have a problem getting a wonderful job, because I already have friends who are in them, and am certain of their existence.

Really, I don't need a job to make me better at the art.  If software were a profession, I would be getting on messageboards and complaining, while people would consider me to be whiny.

forgotten gentleman
Tuesday, February 26, 2002

*  Recent Topics

*  Fog Creek Home