Slashdot Mirror


Greenspun on Managing Software Engineers

Cryofan writes "Very interesting story on managing programmers. Lays bare the dynamics behind what is happening to the software industry." I think Greenspun has it right about the distribution of talent in software engineering, but I'm not sure I agree with his concept that it is necessary to work 70-hour weeks (though for unreasonably long hours, they do pay unreasonably large salaries).

310 comments

  1. commoditization of software by q000921 · · Score: 2
    In Greenspun's particular business, what he says may be true. But the open question is whether that is going to be the dominant successful business strategy in the future. Looking at the history of business, I tend to believe the kind of business he is creating, with expensive, skilled craftsmen, will only be catering to a niche market.

    Companies like Microsoft are founded on the notion of commoditization. This is quite analogous to what the industrial revolution did for craftsmanship, what MacDonald's did for cooking, and what companies like AT&T did for customer service.

    Microsoft has created mechanisms (Wizards, etc.) for software development, analogous to machines to do the "heavy lifting", that allow many people to generate complex application frameworks. And Microsoft has created step-by-step training materials and systems to break up complex processes into something that's easily mastered by everybody.

    That's at least Microsoft's story. That's why business people have their organizations buy and develop for Microsoft software. They believe that Microsoft has succeeded at bringing software development to the masses, to the non-craftsmen. Microsoft software is supposed to turn what used to require expensive, scarce, rare craftsmen into something anybody hired off the street can do with a little bit of off-the-shelf training. That's what "easy to use" really means to Microsoft and business management.

    Whether Microsoft has actually succeeded is a different question; I think they are still pretty far from that goal, but others will step in where they failed.. And like mass produced trinkets and food, the quality of products built on Microsoft tools leaves a lot to be desired. But, then, that hasn't stopped most people from buying mass produced goods and fast food either.

    Skilled software craftsmen may continue to take pride in their work, but whether that is going to be economically a big success or a fringe business for upmarket consumers, remains to be seen. Good home cooking (free software) and upscale restaurants (skill-based software companies) may be what the gourmets like, but most of America eats at MacDonald's, and the same may well turn out to be true for software.

  2. Re:kicking squealing gucci little piggy by jallen02 · · Score: 1

    *chuckle* I think NOT

    My car is a 1990 Mustang LX with aging trim

    Its just the hardware under the hood and under the car that make is so valuable

    I could give a shit about luxury items, I just like my cars and like emm fast, thank you.

    Jeremy

  3. Re:Unskilled and unaware of it... by jerdenn · · Score: 2
    Yup, I've always had an expression for the corollary: "The more you know, the more you know you don't know."

    -jerdenn

  4. hmmppph.. by bakreule · · Score: 2
    Ideally it would be possible to conceive a product on Friday evening, set up the development environment Friday night, write code on Saturday and Sunday, test on Sunday night, and ship on Monday morning.

    He's kidding right? This might be ideal for managers, but I don't know any of my geek friends who would consider this ideal.

    A programmer probably needs to spend 25 hours per week getting coordinated with other programmers and comprehending the structures of the systems being extended.

    Where did he get this figure? From the Man-Month book? There's always an initial period of design that eats time, and various redesigns afterwards, but then there's the time spent churning away code that you don't talk to any of your co-workers, or very seldom.

    On weekend mornings you could walk naked through an entire floor of our headquarters building without fear of embarrassment.

    They took a weekend morning OFF?!? Oh the shame!!! What lazy bastards!

    Your business success will depend on the extent to which programmers essentially live at your office.

    I see this programming ideal slipping away. I think people are realizing that no matter how many foosball tables you put in, programmers will burn out working 70+. I think that this ideal treats programmers as machines. As much as programmers like to think they ARE machines, they are humans and need rest. I think people are finding that if they go home and rest, they come back refreshed. Of course there are crunch periods, but once they're over, take a break.

    Most people have a TV at home but they don't have friends with whom to watch it.

    er??? What is he talking about?!? Most people who have a TV don't have friends? Where is he getting this crap?

    He does make some good points about the quality of programmers....

    Trains stop at a train station. Buses stop at a bus station.

    --

    Buses stop at a bus station
    Trains stop at a train station
    On my desk there's a workstation....

  5. Longer hours by jeremyp · · Score: 1

    OK I've read the article now. Greenspun's idea that a programmer has to work a 70 hour week is based on the premise that he/she has to spend 25 hours a week just coordinating with the other people in the organisation. I would suggest that it is much better to try and reduce the unproductive 25 hours rather than increase the productive 30 hours - or actually in my case 15 hours (my contract is for a 40 hour week). There are lots of techniques for doing this. The best book I've seen on the subject is Steve MaGuire's "Debugging the Development Process" which I would recommend to any aspiring software project manager.

    There are several clues in the text of Greenspun's article e.g. a project meeting requiring five managers to attend (hmmm......) which suggest that his company needs a serious look at the way it runs projects. In fairness, he does allude to the fact that this is going on.

    --
    All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
  6. Re:3x-7x pay raise? by TurkishGeek · · Score: 1

    I myself dropped out of a Ph.D program, having failed to develop a particular liking to having to drive a trashy car around; living on generic supermarket-brand pasta and cheap "locally grown" apples; using WWII-era furniture from the university's surplus store; pretending to understand the young, ambitious professors explaining how their brand new implementation of the Kalman filter will save the world and end the world hunger; and generally being treated like cr*p because you're a foreign grad student on a student visa. Having to suffer through all that for the privilege of adding the "Ph.D" title to your business card was simply too much.

    That said, I do have a lot of respect for people who manage to live through all the suffering that is the typical US EE/CS graduate school and get their Ph.D's.

    I agree that a huge improvement over their grad school salaries is definitely warranted and deserved; but I fail to understand why a manager would regard a Ph.D with no work experience more highly than an experienced programmer of the same age; except in a research-oriented institution. I know a bunch of CS Ph.D candidates that can talk for days on theoretical artificial intelligence, hypothesis proving and logic verification; but will stare at your face blankly when you say "design pattern". Unfortunately a lot of people are in grad school just to avoid real life a little longer.

    Of course there is no shortage of managers with strong Ph.D fetish, like Greenspun, who will eventually hire them.

    But I digress. He was right about the 3x-7x improvement, it seems.

    --
    Zigbee Central: A Zigbee weblog
  7. Some folks are being told 15% requirement by gelfling · · Score: 3

    That 15% OT is mandatory now which translates to ~7.5 extra work days/year depending on where...

    And the odd thing is that we all get Thinkpads specifically to work the odd hour or so at home and then get dirty looks (well not actual dirty looks, but some of us get the virtual dirty look in the form of never getting more than a 2 no matter what, never ever ever) if we dare to leave the office before the divorced twice, never home workaholic boss does.

  8. that was sort of an unstated assumption of mine by pgreenspun · · Score: 3

    Thanks, Bob. Your point was sort of an unstated assumption of mine. At ArsDigita we do tend to get fairly young people who are very bright. They want to do something that will impress their classmates from MIT or UCLA or Caltech or wherever. The key to successful management is to provide an inspiring goal that these guys and gals can buy into and then a working environment that lets them achieve the goal. It does result in some long hours but they have 5 weeks/year to recover. If they get sick of it they can always join a slacker company and work 40 hours/week.

    1. Re:that was sort of an unstated assumption of mine by shift · · Score: 1

      What about when your employees become involved with a family? Do your 30something (years) employees become slackers by default?

    2. Re:that was sort of an unstated assumption of mine by Eccles · · Score: 1

      You, sir, are why I will never, ever, work as a programmer.

      I've been working as an industry (not government) programmer for seven years, and only once have a put in even a longish stretch (less than a month) of long hours. And I've never had a beeper. It's not a universal thing among programmers to work these absurd hours.

      --
      Ooh, a sarcasm detector. Oh, that's a real useful invention.
    3. Re:that was sort of an unstated assumption of mine by ashultz · · Score: 1
      So generous, you get an extra 30 hours a week in exchange for two extra weeks of vacation. Anyone can check that math out and draw their own conclusion about how much you care about your workers.

      Clearly you get fairly bright[programming] people but not fairly bright[life] people. I was amazed by your model employee - someone whose home is an empty wasteland and who has no friends.

      You must be missing some of the brightest[all] people I knew at MIT, because they would never put up with a company whose stated goal was for work to be all of life. They were bright enough to have some interests other than programming for hire.

    4. Re:that was sort of an unstated assumption of mine by aminorex · · Score: 1

      I did mondo virtuoso work for a hot start-up for about 5 years. I loved it. I loved the kudos. I loved the contribution I was making. I also developed ulcers and migraine headaches, one of which was so bad that I nearly died (I.V. fluids, because I couldn't keep down water). I became estranged from my wife and nearly lost my family. It took me 5 years of working at a slacker company (Sun Microsystems) to get back to normal. Now I can work in the real world again, but I won't make the same mistake twice. The short-term rush is not worth the long-term agony.

      --
      -I like my women like I like my tea: green-
  9. It's going to get worse. by state*less · · Score: 2

    As kids watched the dotcom craze and saw how much SE were making they thought hey i want to be an SE. It's called Invisable Hand in economics. Companies demand more SEs and so the gap is filled with an increase in CS, SE students in our colleges. Expect lower wages to come to computer related fields. The only way to protect yourself is to know more and be able to do more than the next guy.

    Time is Change

  10. glad it isn't just me... by jcw2112 · · Score: 1

    i subscribe to the philosophy that if i can't complete my work in a standard 45 hr. week, then i need to start evaluating my skills and performance. i don't work for a dot.com or a balls-to-the-wall start-up, so maybe i just don't get it.

    i think that we would all agree that the best coding gets done when your head is clear and you are "in the zone." that generally isn't after 14 hours straight in the office. i dunno...

    what i DO know is that the last time i read an obituary it included "survived by so-and-so" and not "worked 75 hrs/wk for"...

    --
    hmmm...
  11. I don't have a PhD fetish, God dammit!!! by pgreenspun · · Score: 3

    I don't even put "PhD" or "Dr." on my business card (I admit to having a photo of little Alex on the back, though). You're right that a PhD per se = useless. But at ArsDigita we actually have managed to get a lot of work out of people with PhDs. Much of the edge comes from the screening process. Someone with a PhD from Caltech is going to be very smart and very persistent. He or she will have managed to plan, produce, and publish a long-ish document (the engineers with the most influence are usually those who are willing to write). This is why companies like McKinsey recruit PhDs from top schools. But just like McKinsey, the first thing that we have to do at ArsDigita is deprogram the PhD. We say "here you ship your product every two months, not every two years" and "here you write up your results over a weekend, not over a season" and "here we do look for the grand elegant complete solution but we try to get to it via incremental releases rather than wait quietly for 10 years".

    1. Re:I don't have a PhD fetish, God dammit!!! by TurkishGeek · · Score: 3

      Mr. Greenspun,
      My observation that you had a Ph.D fetish was largely based on your description of the ArsDigital workplace culture(at your Web site) back when I was checking your company out for applying for a job. I had significant experience working with some relatively savvy consulting companies roughly in the same space and caliber as ArsDigita; and it seemed weird how the ArsDigita site boasted about how many Ph.D's you had.

      My 2 cents is: This is not Los Alamos Labs, for God's sake! I earn my living from server-side Java programming and Web application design, too; and my personal opinion is that any CS Ph.D actually writing Tcl/PL-SQL code for a Web application for a, say, pet food store or an online loan application site is woefully under-utilized. These people are supposed to be out there working on designing better cryptosystems, invent new methods to speed up object relational databases or who knows, perhaps prove that P=NP.

      Perhaps my simple, Ph.D-less mind could not come up with a possible justification for employing MIT CS Ph.D's at a Web consulting company for any other reason but a Ph.D fetish. I totally agree the more influential engineers are the ones that are willing to write, but a Ph.D for just learning how to write results? Geez.

      Other than this minor point, thank you for taking the time to write. I guess a major part is right-on.

      --
      Zigbee Central: A Zigbee weblog
  12. Re:Right, sure, uh-huh by Scorchio · · Score: 1
    What's comp time?

    The company I work for decided on making royalty payments instead of paying overtime. Potentially these can be very high but in practice, once everyone above has taken their cut, they've been ridiculously low. When the royalties finally came in for the last project I worked on, I was delighted to work out that I was paid much less than 1 uk pound per hour for my evenings and weekends. Now I leave at 5:30pm on the dot every night.

    *Sigh*, off on a rant again...

  13. Re:3x-7x pay raise? by segfaultcoredump · · Score: 1

    Funny, this came up the other day at work...

    The general consensus was that non comp sci majors made the best programmers. The best ones that we knew seemed to come from the music and language areas. The biggest problem that we see is that most programmers do not learn to see the problem beyond the code that they write and they never learn how the rest of the system operates.

    I'm a chem major myself, with a number of grad level comp sci courses to boot. Fortunately for the programmers, I like designing system and network topologies for co-lo sites and use my spare cycles to help them deal with a problem interfacing with things outside of the jvm that they are using.

  14. Well I know who I'll NEVER work for.... by CarlFairhurst · · Score: 1
    As someone who does manage developers on a day to day basis, I think I'd be the most hated person in the North West of England if I implemented any of this. It sounds like he wants to have slaves, not developers working for him. Developers have a life too. Quite a few developers already spend too much time alone in front of a keyboard instead of socializing with other live human beings.

    I enjoy my job, but it doesn't mean I'd like to spend any more time in the office when I need to. I've got a wife and 7 month old boy, and if anyone even suggested that work was more important than them, I'd instantly lose any respect and confidence in that person.

    People work for money to do what they want. Lucky people get to work doing something they enjoy to earn that money. I've been forced to work long hours, and in that situation the things you tend to work on are how you are going to spend the money they'd better give you soon and where you want to work next.

    I do sometimes have to work late now, but its usually due to problems getting a release out on time or critical work to get an account. Having to work late because management thing they can wring more time out of me just rubs me up the wrong way. If the developers working for a project manager don't respect them or have any confidence in them, doing practically everything in the article is just going to drive the people who do have a life outside work to quit. And as for shipping the whole program team off to do extra work so they won't go off enjoying themselves at the weekend, I know just where he could shove that! And I'm sure my wife would be even less pleased.

    Or it could be that the article was actually about how to lose your best developers to companies who actually give a damn about their staff!

  15. Re:Do they only hire people with no social life? by CACondor · · Score: 1
    That's not fair: most of those other people are either single, or slowly destroying their personal relationships.

    It is OK to work single people 70 hours per week?

  16. Re:Spot on but for the hours by Oloryn · · Score: 1
    Peopleware has some useful advice but it is fundamentally about corporate IT projects where there isn't any competition. In the real world (cf. Silicon Valley), a few months of slippage can very well mean death.

    Since when is Silicon Valley 'real world' and corporate IT not? Last I knew, far more software is written by corporate IT than is written for shrink-wrap.

  17. Re:Neither by Shiva+Lingham · · Score: 1

    These would all be forms of positive reinforcement.

  18. Re:Move to NL by chrischow · · Score: 1

    70 hours is scary, but then again i am a lazy SOB anyway

  19. Wait till you have kids... by avandesande · · Score: 1

    If you think getting married changes your life, wait till you have kids. This will really put your life into perspective. Work is definitly not #1 anymore. Plus, you feel like you work 70 hour weeks because you don't get uninterrupted sleep anymore. I wouldn't trade it for anything.

    --
    love is just extroverted narcissism
  20. Re:Well I'd better retire by pgreenspun · · Score: 3

    I'm not trying to force anyone to go on a death march! But the programmers with whom I hang out long to do something innovative and creative, to solve a problem that nobody has solved before. It is tough under those circumstances to rely on a project manager to map out everything that must be done. It is also tough to keep people from pounding away at a problem until it is solved.

    Most of the people at ArsDigita are young. They have no families. They have no personal reputation. Find me a 35-year-old who has accomplished a lot IN ANY FIELD, who has changed the world in some positive way, and who has never worked long hours. The articles I put on my various Web sites are not intended to help people who just want to live a quiet comfortable life (I'm not an expert on this). They are intended to help young people turn into Linus Torvalds or Richard Stallman or Dan Bricklin and Bob Frankston (Visicalc).

  21. oh ya? by LifesABeach · · Score: 1


    its easy to talk about what others should do, until you have to do it yourself

    And, its painfully obvious that greenspun has never suffered from writing a line of code in his life.

  22. Some beauty contest by gelfling · · Score: 2

    Private practice 1st year associates in a white shoe Wall St. firm working 90 hrs week command $140K out of school w/ no experience.

    The average income of doctors in the US including all of the MDs who now work for HMO's etc. is ~$250k according the personal disability insurance providers.

    The average CEO of an American firm earns between 17x and 30x the income of the lowest paid worker. My own CEO earned something like $6-9 million in direct cash compensation, another $9 or so million in deferred compensation, another few hundred thousand $ or so in guaranteed deferred pension earninings and several hundred million dollars in options, grants, deferred stock purchases and other forms of equity. And this is not a startup this is a well established stable company which barring an asteriod will be around for a while.

    So yeah - lots of people are willing to work huge hours. Mostly because there is a huge financial upside. Not a maybe, not a chance, not a possible IPO but a definite concrete realistic outcome you can bank on when making other life decisions like what house to buy now like how many children to have now and what kind of schools they can go to, whether you need to be a 2 income family or not.

  23. Re:Great Tips by Shiva+Lingham · · Score: 1

    You may want to check out Beyond Freedom and Dignity by B.F. Skinner. This is the gentleman who defined and made a study of positive and negative reinforcement, and the gist of this book is that negative reinforcement NEVER works with human beings because it only encourages dishonesty, amongst other things. (Think about the Spartans)

  24. We pay $100K! And Cambridge is better than Peoria by pgreenspun · · Score: 2

    Actually ArsDigita pays most entry-level workers $100K (these are fresh MIT CS grads). The reason cost of living is high in cities like Cambridge is that Cambridge is a great place to live. You can learn from almost anyone that you run into on the street. They are likely to have an Ivy League education. They are likely to have done something interesting recently and be willing to tell you about it. If your idea of the great life is a big-screen television, 100 channels of Cable, and a big house with blank walls to hold the TV, you're right the cost of living is lower in Peoria. But if your idea of the great life is finding interesting people to talk to, lectures and performances by the world's best and brightest, a city like Manhattan might be a better choice (despite the expense).

  25. Re:Great Tips by gfxguy · · Score: 2
    Smiley face not-withstanding; in psychology, in this case, "positive" does not mean "good" and "negative" does not mean "bad" (although that's often the case).

    Positive is when you get something for your behavior, negative is when something is taken away. In this case, knowing that you will get a bonus, or a raise, if you exceed expectations will certainly motivate you more than simply meeting expectations for fear of a pay cut, or losing your job. Therefore positive reinforcement is a better motivator, in this case.

    So, in your case, you studied so you wouldn't fail - you can get C's. But if there were some reward for you based on your performance, you might have done better. In your example, "than when I wasn't failing them" is neither positive or negative - you had nothing to gain or lose at that point. But in that same situation, if you father said he'd buy you a new car if you got a B, and a new really expensive car for getting an A, wouldn't you study harder?

    Apologies for over-analyzing a joke.
    ----------

    --
    Stupid sexy Flanders.
  26. Unreasonably large salaries. by blazer1024 · · Score: 2

    (though for unreasonably long hours, they do pay unreasonably large salaries)

    Yeah, but what good is an unreasonably large salary if you don't have any time available during the week to spend it? (Unless you just have a NICE vacation every year)

    Just a thought...

    1. Re:Unreasonably large salaries. by jallen02 · · Score: 1

      the car owns me

    2. Re:Unreasonably large salaries. by moopster · · Score: 1

      Often we lose sight of what makes life worth living... Retire at the age of 38...if you worked like that until you were 38 you would be a fat, un-sociable, loozer! I work 45 hours a week programming, sure I don't make mega bucks, but I have asked myself over and over and over again... is making 30% more worth working 70 hours a week FUCK NO! Life is about relationships with people... how many 70+ hour a week people are human? I love the spending my Saturday putzing around the house or working on personal hobbies, rather than 12 hours in the office being a coding whore/robot... there is no way someone working 70 hours a week has anything left worth living for. Work to live don't live to work! My $00.02

      -------
      How could this be a problem in a country where we have Intel and Microsoft?

      --

      ----------
      No army can withstand the strength of an idea whose time has come.
      - Victor Hugo
    3. Re:Unreasonably large salaries. by PiterPan · · Score: 1

      Whenever I hear a comment like this one, a vision appears in front of my eyes:
      http://www.fuckedcompany.com

      :)

      but, regardless, I play the same way....

      --

      --

      --
      On scale from -14 to 56 this post is '-15, Nonexistent'
    4. Re:Unreasonably large salaries. by jallen02 · · Score: 1

      Can you say retirement at 38?

      Thank you :)

      Jeremy

    5. Re:Unreasonably large salaries. by jallen02 · · Score: 1

      As i noted to a previous poster, I take martial arts, exercise, and occasionally sleep

      Really, right now its good for me.. Ive been through some tough times the first part of this year so working has kind of pulled me through, contract stuff and all, so I make about 80 dollars an hour, pushing out in reality about 60 billable hours a week, I doubt honestly the market will support this much work for more than 3 or 4 years, I doubt I can handle this much work for more than 4 or 5 years, but I am learning, and I dont have a very fancy degree AA in math from a dinky school, I took a few classes at GA Tech, but it was way to hard to do while working.

      Anyways, after about another year I can afford to buy a house and find a much slower paced job if I choose too, after that the rest is icing on the cake right?

      Anyways I am not unrealistic about it but I doubt I will ever hace an opportunity like this in all of my life again, and I doubt I would be able to seriously take this kind of working responsibility on again later in my life, so I want to have some nice things and not be tied down with a house morgtage 2 car payments, screaming kids, and your typical stress a family has

      I maintain with a LD relationship and its really hard and anyways I just know right now im setting up the rest of my life so im not worried about busting ass a little and chilling in the next 3 or 4 years when most people are just out of college at the age ill own my home

      Jeremy

    6. Re:Unreasonably large salaries. by jallen02 · · Score: 1

      Contractor.. :) who gives a shit. id never be a corporate monkey again unless I dont need the job.

    7. Re:Unreasonably large salaries. by chrischow · · Score: 1

      perhaps but you would have missed out on a lot getting to 38!

    8. Re:Unreasonably large salaries. by sstrick · · Score: 1

      I think that is the general approach to programming these days.

      Work 70+ hours weeks until you make enough money that you can retire when you have that nervous breakdown.

      Thats my play anyway.

      --

      "Do you think we could wipe out world hunger forever if scientists figured out how to make AOL's Free CD's edible?"-
    9. Re:Unreasonably large salaries. by jallen02 · · Score: 1

      I have no idea, but I love drooling over my car that cost more than anything else ive owned in myl ife that I get to drive 20 minutes a day.. :-P

      The trick is do you enjoy what you do?

      Jeremy

    10. Re:Unreasonably large salaries. by 0xdeadbeef · · Score: 1

      Man, the old hippy slogan sounds very appropriate in this situation: do you own your car, or does your car own you?
      --
      Bush's assertion: there ought to be limits to freedom

    11. Re:Unreasonably large salaries. by amccall · · Score: 1
      Even if you invested most of your unreasonably large salary into stocks/bonds/etc... you still would probably not have enough to retire nicely.

      And what good does retirement do at 38? Working in a high stress job for 12 years has probably cut your lifespan in half, and you'll end up dead at 40.

      People need to learn this: a high pay job is not worth your health. Ask anyone that has had a heart attack at 45. I would rather earn 45,000 and have peace of mind and free time, than 75,000 and be jumping off the ceiling with a sky high blood pressure.

      --
      ------ 24.5% slashdot pure
    12. Re:Unreasonably large salaries. by MadAhab · · Score: 1
      Dunno about that "unreasonably large" part. Makes me think that most of the posters here are real tyros, or else ignorant about the world outside their own narrow interests.

      First year salaries for kids fresh out of law school are, at major firms, closing in on $100K. Sure, they work shit hours too, but in 5 years, a lot of those same kids are making $250K with chances of bonuses that exceed the salaries of many coders. Look at salaries in the computer industry, and you'll find they don't match up, except for lucky lotter winners of "hot" stocks.

      Having spent a lot of time around both lawyers and coders, I can say that what the lawyers do is no more difficult than what the coders do; some of the mental reasoning skills are remarkably similar. But there is a perceived gap in importance that far exceeds reality, a gap that can be chipped away only when coders start understanding their role in the overall organization more clearly. This means that you have to understand things that aren't your job and stick your neck out of the coder's cage/monkey house.

      Boss of nothin. Big deal.
      Son, go get daddy's hard plastic eyes.

      --
      Expanding a vast wasteland since 1996.
  27. Was happening... by xerx · · Score: 1


    What will happen...

    All the best programmers will suffer from massive burnout, depression, marital and health problems. But then why should the company care, they can just hire new young clueless programmers to slave for 70+ hours. It seems to the company the way to go, but it is all just an illusion and ultimately costs more in the end.

  28. Re:Wrong assumption to start with by Marillion · · Score: 1

    This really doesn't have to do with writing good ro bad code. I've seen programmers on all levels write bad code. I'd like to discuss how a good programmer and an average programmer can approach a problem in two different ways.
    I work for a company with a "universal help desk." That is all kinds of issues, even some non-IT issues like building maintance, are handled by a single phone bank.
    The calls are then dispatched to the different support units. The project team was focused on how the support units were different. They specified five different modules for the five different units. These are not dumb people either -- just incapable of seeing the elegant beauty of simplicity.
    The good programmer or good analyst would have focued on how similar the support units are. Write one module for the 95% similarity and the remaining differences are small.

    --
    This is a boring sig
  29. Re:Other professionals by MidnightLog · · Score: 1

    Doctors commonly work 80-90 hours a week. They make programmers look like wimps. Lawyers, CEOs, practically everybody who makes the big bucks works the big hours.
    The professionals that you mention all make more money than programmers.
    In my area though you can get a programming job at a bank and make good money doing 40hrs/wk, if you want. You can't do that at a balls-to-the-wall startup, that's the nature of the game.
    This is also true in my area.
    --

    To understand what's right and wrong, the lawyers work in shifts ...

  30. Duh. by JurriAlt137n · · Score: 1

    Really? I never could have guessed. Tell me, is the sarcasm staining your monitor?

    --

    People replying to my sig annoy me. That's why I change it all the time.
  31. Managing Programmers 101 by manichawk · · Score: 5
    If programmers complain:

    • Get a boxload of toys, hand out to programmers, repeat if needed.
    If programmers don't complain:

    • See above
    --
    ManicHawk - Just because you're manic doesn't mean the walls aren't bouncy :o)
    1. Re:Managing Programmers 101 by twingo_gtx · · Score: 1

      If programmers complain:
      Get a boxload of toys, hand out to programmers, repeat if needed.

      If programmers don't complain:
      See above

      So true, so true. I would love if they gave me a new toy to play with every week or two. I need some Yo-Yos and some foam balls and any other thing throw around

    2. Re:Managing Programmers 101 by BinxBolling · · Score: 2
      If programmers complain:

      Get a boxload of toys, hand out to programmers, repeat if needed.

      If you're interviewing with or working for a company that provides a lot of toys, ask yourself: What am I giving up in return for these toys?

      If you feel compelled to spend 70 hours a week in the office because the company provides a playroom with some video games and a few other goodies, you're a sucker.

      I don't want toys. I want a good salary. I want reasonable working hours. Most of all, I want opportunities to build high quality software, and to feel pride in the things I have created or helped to create.

  32. Re:Wrong assumption to start with by dpotter · · Score: 1
    Lando writes: "The article is slashdotted at the moment, so I have not read it, but from the comments it appears that he is just flinging "The Mythical Man-month" by Frederick Brooks out the window... Somehow I doubt that he has enough experience with programming to do so.... "

    Wow. You're assuming a lot here. You haven't read the article, and I question your familiarity with Greenspun. In my opinion, he has ample education, intelligence and experience to make all these claims:

    - 3 degrees from MIT including a PhD in computer science
    - 20 years of software development experience
    - co-developed computer science courses for MIT and 10 other universities
    - has been managing programmers at ArsDigita since 1977. Company currently has 80-full timers.

    Or just take a look at his resume.

  33. Re:Software 'engineering' is different because... by l2b · · Score: 1
    I would bet that most 'real' software engineers can predict what their code will do more than 90-95% of the time. I'm not saying that I can, but I like to think I'm getting there :).

    Real engineers can do it 100% of the time.

    As we all gain more experience we get to the point that most of the time we can just look over the code and see what it's going to do without having to run it.

    The experience must be embodied in a set of rules that live outside of the individual and can be passed on to others. Individual experience does not count.

    Real engineering specifications are separate from the implementation. Looking at the code is not engineering. Engineering is an abstraction.

    There actually are Proof of Correctness tests that can be performed on code to ensure that it will perform it's desired function.

    Ditto above. The proof must reside outside of the implementation realm and chronologically ahead of it.

    And I've heard (not actually seen though) of software that will produce 100% 'correct' code. However, 100% correct code is usually not optimized at all and in doing the optimization is where most programmers fail and where bugs are often introduced.

    Optimization can be seggregated in a separate architecture domain. Optimization of the code is up to the compiler.

    The solution that Software Engineers use today is to just try to break the project up into managable components and hope each one of them is done correctly.

    One of the properties of engineering is the knowledge of how to break up the system into manageable pieces and know that that is the best persistent approach.

    However, if a component is not correct then the problem cascades into other modules that depend on that component.

    The 'pieces' or domains, as I'd term them, must be independent. If they are not assembled correctly, they can be rearranged. The important difference is that with real engineering the incorrectness can be detected before implementation and that the rearrangement be feasible (because the domains are truly independent).

    But in theory software can be written such that it doesn't have to be executed to know what it will do, however in practice this is usually not the case.

    With current 'mainstream' techniques, this is possible only for the most trivial systems.

  34. Great Tips by clinko · · Score: 2

    Here's one of the great tips from the page
    "positive reinforcement is more effective than negative reinforcement"

    WRONG! I know that failing my classes (negative reinforcement) sure is more effective at making me study than when I wasn't failing them.
    :)

    1. Re:Great Tips by sql*kitten · · Score: 2
      positive reinforcement is more effective than negative reinforcement

      Damn right it is - I want all the money, all the guns and all the women!

    2. Re:Great Tips by AntiPasto · · Score: 2
      True... you learn more from an accident than driver's education.

      I think, however, it depends on the person and the situation / subject.

      ----

    3. Re:Great Tips by n3rd · · Score: 2

      That's not quite how it works in the real world.

      At school, if you fail, you have to pay the school to take the class over, or at least take it again, wasting time and effort.

      In the real world, how would you like it if you boss said to you "Work harder! You're lazy!" everyday? It would probably make you quit, or at the very least resent working there.

      It's your choice: do you want to hear "You stink!" all of the time, or "Good job!"?

    4. Re:Great Tips by mazur · · Score: 1
      Here's one of the great tips from the page

      "positive reinforcement is more effective than negative reinforcement"

      WRONG! I know that failing my classes (negative reinforcement) sure is more effective at making me study than when I wasn't failing them.

      That's a completely different type of environment, with a different goal and different working method. If at work they only nag on about my failures or deficiencies, and not in the same strength praise my good work, I'm likely to get sullen and unmotivated, even though the pay's good. I do goof up from time to time, and sometimes I'm brilliant and solve complex seeming problems with a few keystrokes. I don't mind hearing about the bad stuff, as long as they do not forget the good stuff and say so.

      Stefan.
      It takes a lot of brains to enjoy satire, humor and wit-

      --
      The truth shall make you fret. (Ankh-Morpork tImes motto)
  35. 70 hours?!? by TWX_the_Linux_Zealot · · Score: 1

    They'd better give time off in lax weeks, else employees would just go freakin' nuts...

    The coders in my office have taken to shooting each other with nerf darts and StarWars(tm)(c)(r) guns and light sabres and such to keep the sanity in place (and it's still not working :)
    "Titanic was 3hr and 17min long. They could have lost 3hr and 17min from that."

    --

    IBM had PL/1, with syntax worse than JOSS,
    And everywhere the language went, it was a total loss...
    1. Re:70 hours?!? by Deven · · Score: 2

      I did set up ArsDigita so that every employee got 5 weeks of vacation annually (enough for a 3-week break in the summer plus two one-week breaks). Maybe I should add that to the article.

      Compare this against a "normal" 40 hour/week job. Most employers give at least 2 weeks of vacation. If we ignore holidays and the odd extra days beyond an even 52 weeks, that give about 50 weeks, or 2000 hours/year. If you're expecting your employees to work 70 hours/week for 47 weeks, that's 3290 hours/year, 64.5% more total hours. You should aim for the same 2000 hours/year total, if you really want to be fair. Of course, at 70 hours/week, that would mean giving each employee 23-24 weeks of vacation per year (yes, that's over 5 months). The fact that you give them only 5 weeks indicates that you really prefer exploiting your employees. Sure, you may pay well, but there's more to life than work, and time is an irreplacable resource that money cannot truly compensate for.

      As long as you employ people who don't have a life outside of work, you may be able to get away with this sort of exploitation. Lucky for you, they'll have a very hard time developing a life outside of work when they're working 70 hours. However, most of them will eventually determine that living only to work isn't much of a life, and they'll find a better job someplace where they won't be exploited so much. At that point, your only hope is to keep finding new youngsters with no life, and try to indoctrinate them into your culture of indentured servitude.

      As long as there remains a ready supply of people willing to be exploited, you can probably get away with this for a long time, and you're in the majority with this approach. But don't lie to yourself; you're exploiting your workers for the sake of profits. It's a widespread problem, and much of the industry is equally guilty of the same thing, but it remains exploitation, albeit well-paid exploitation.

      This sort of exploitation in the past has fueled the creation of unions in other industries. If employers aren't willing to stop, don't be surprised if programmers start unionizing someday... (And then you'll regret your shortsightedness.)

      --

      Deven

      "Simple things should be simple, and complex things should be possible." - Alan Kay

    2. Re:70 hours?!? by JurriAlt137n · · Score: 1

      Let me guess. They do that for about 30 hours a week?

      --

      People replying to my sig annoy me. That's why I change it all the time.
    3. Re:70 hours?!? by Andreas+Rueckert · · Score: 1

      I think he also missed the point what software engineering is all about. Turning software development from a form of art into a engineering discipline. I think he mixes software engineers and programmers througout the article. Now that good and free tools like ArgoUML are available, there no good excuse anymore to avoid modelling (or planning in general). My answer to this article would be: don't give your employees toys, but give them tools! (and make them use them of course.)

    4. Re:70 hours?!? by pgreenspun · · Score: 1

      I did set up ArsDigita so that every employee got 5 weeks of vacation annually (enough for a 3-week break in the summer plus two one-week breaks). Maybe I should add that to the article.

  36. Stop All The Whining by mantis78 · · Score: 1

    I don't think Phillip even meant what he said
    about the 70 hrs week. Don't you think it is
    just a publicity stunt to make slashdotters
    rant his article to stardom?

    - ^ - ^ - ^ - ^ - ^ - ^ - ^ - ^ - ^ - ^ - ^ - ^
    "For all we know, we might have created god?"
    - ^ - ^ - ^ - ^ - ^ - ^ - ^ - ^ - ^ - ^ - ^ - ^

  37. Re:Well I'd better retire by cheekymonkey_68 · · Score: 1

    BTW I've got nothing against you personally.
    I bought your book on Database Backed WebSites and it has proved invaluable in my work.

    In the short term you can work 80 hour weeks, like you say we have all done it but it is not a sustainable working life for most people, unless you thrive on stress, it will damage your health.

    Essentially it all comes down to whether you work to live, or live to work...I guess you just must be the latter.

    There is nothing wrong with working that way as long as you are aware of the potential health risks and you are not forced into it

    But a lot of companies expect that from their workers, not to produce excellance but to wring every last pound of flesh from their drones.

    I was never family orientated until I had my own child so I can see where your coming from. Oh well maybe one day you'll have a child and change your mind...we'll see.

  38. It's slavery pure and simple... by chris_sawtell · · Score: 1
    and the owner isn't even prepared to provide living accomodation!

    half in jest, but many a true word...

  39. Re:Spot on but for the hours by haizi_23 · · Score: 1

    see, that's why it should be like the merchant marines -- certain number of months on, certain number of weeks off. finish a major project, and get an instant vacation.

  40. 25 hours of meetings a week? by buckrogers · · Score: 1

    Gee, maybe instead of making your programmers work unpaid overtime, maybe you should have them actually programming instead of going to meetings.

    I am a great programmer, and I refuse to schedual more than 1 hour of meetings per week per project and will only meet with my boss 1 hour a week.

    So I double my productivity by only going to about 5 hours of meetings a week.

    I will walk out of any meeting where my input is not needed. If they want to tell me to do something they can e-mail me a request.

    What a concept.

    --
    -- Never make a general statement.
  41. seems okay to me... (but you can use ACS Java) by pgreenspun · · Score: 3

    It seems okay to me. I've been using the arsdigita.com site all day. Anyway, there isn't much hardware behind arsdigita.com (normally gets no more than 100,000 hits/day). We never said that ACS was going to handle more traffic per CPU than a non-personalized system that doesn't hit the RDBMS. As for AOLserver and Tcl, you don't have to use either. ACS Java is released and available from http://www.arsdigita.com/download/ It contains not a single line of Tcl code (same old SQL and PL/SQL and Java-in-the-database core plus a 100% Java presentation layer). It should work with any Java application server and any Web server (or no Web server at all; you can run the whole thing from within Oracle 8.1.7 and its built-in Web server).

  42. Re:Salaries not that large by sql*kitten · · Score: 2
    What do you consider to be an ureasonably large salary?

    Let's not forget that the average consulting firm charges >$200/hr for a professional's time. Assuming billing 60 hrs a week for 50 weeks a year, that's $600000. And almost all expenses are billable to the client. When you look at it this way, even a $70K salary is pretty close to exploitation unless there are serious cash bonus payments every year a la banking.

  43. Re:Well I'd better retire by tilt@ology · · Score: 1
    Y'know, I'm 27, and I've published two books, spent four years doing the PhD thing at CMU, and I'm currently one of the founding members of a successful (read: profitable) Internet software consulting firm. I haven't changed the world (yet), but I'd say I'm doing OK. And I think you're completely off-base.

    I spend between 40-50 hours a week "working." That means, in the office, explicitly thinking about design, or code, or management issues. And the thing is, I get the stuff done I want to get done. And then I spend the rest of that time making sure I'm still an actual viable person: being with family, exploring the world, and learning new things. ("playing.")

    Sure, when I get a bug up my ass, I can spend 60-70 hours hacking during a week, and it can be an extremely invigorating experience; but what the hell is the point of trying to actually sustain that? It's the time I spend "playing" that makes me more interesting, and that leaves me with more to contribute when I'm "working."

    The "let's make 'em think they're playing and that they live here so that they'll work 70 hours a week for us" management mentality is bullshit. It must be nice that you can keep finding young kids who don't know any better and think that's what they need to do. I'm comfortable knowing that I'm a stupendous enough badass that I don't need to put up with that shit, and I can still live a dynamic and fulfilling (and very well-paying) life. It's possible to achieve and get shit done and not burn yourself out to do it.

  44. Expect rapid decreases in hours as stocks fall by Ars-Fartsica · · Score: 5
    As stock options become less lucrative, programmers are going to taper off their hours, regardless of what Greenspun puts in the office or threatens or promises.

    Greenspun and his ilk are going to find it hard to find people willing ot program 70 hrs a week for sustained periods if you aren't going to offer them at least a million in post-tax compensation over the course of a two or three year employment stint.

  45. How not to do logic by goliard · · Score: 2
    I notice you're at an .edu. You're looking at the corporate coding world without actually having been in it.

    <flame class=adhominem>

    Uh, Mr. Moron, I'm a contractor in the business for 10 years. That edu is a past client who as a thank you gives me free isp services. You may now get back down off your hind legs.

    I notice you're are an idiot. </flame>

    --
    -*- Any technology indistinguishable from magic is insufficiently advanced -*-
  46. Re:Well I'd better retire by Oloryn · · Score: 1
    The articles I put on my various Web sites are not intended to help people who just want to live a quiet comfortable life (I'm not an expert on this). They are intended to help young people turn into Linus Torvalds or Richard Stallman or Dan Bricklin and Bob Frankston (Visicalc)

    Perhaps. But they're going to be used by brain-dead PHBs whose egos can't accept their own mediocrity to push their developers (who *should* be able to live quiet comfortable lives) into unnecessary overtime.

  47. Long hours by pjrc · · Score: 2
    This long discussion has an awful lot of bashing Phil about working long hours. Statements like "From a business point of view, long hours by programmers are a key to profitability" sound pretty manipulative. Much as I'd like it not to be true, there is some truth here...

    I've worked on many hardware & firware projects, often by myself, and almost every time I ended up working a lot of really late nights. At least for me, I can get more raw coding and design work done in an all-night session that an entire week of 8 hour days. Getting the environment right... no distractions, music without lyrics, correct room temperature, etc, makes a huge difference. I try not to do this sort of thing often. I try to do all-nighters more for my own (often free software) projects more often than I do them for my employer. (trying hard to resist a shameless plug... the URL is next to my user info above)

    Now I think it sucks to "have no life". It think it sucks for employers to expect programmers to work 70+ hours/week. Phil's writing does leave a bad taste of giving would-be managers a formula for over-working programmers.

    It is true? Yes, I think it is.
    Does it suck? Yes, I think it does.

    Those are separate issues. Just because it sucks and is manipulative and/or unethecial doesn't necessarily mean it's wrong. I think the a number of comments posted here have failed to make that distinction.

  48. Re:70 hours is typical by Herodotus · · Score: 1

    I must ask, how can an anyone reasonably say that 70 hour weeks are typical or even necessary? Do people not understand that its _just a job_? Employers should consider themselves lucky to get the 40 hours a week of our lives that they get now. I (usually) love my work, and i expect that a lot of other people in the IT industry do too, but free time is precious and i for one will not give any more of mine to an employer than is absolutely necessary. I don't have a problem staying overtime if absorbed in an interesting project, so long as that is my own choice. No one should be owned by their job, though, and no amount of money could convince me to work a 70+ hour week. It just isn't worth it. You've only got one life, so enjoy it and don't waste too much time on a software project that won't mean jack when you are an old man wondering why all you remember about your youth is working a lot. (no, that isn't bitterness, i'm still only in my 20's)

  49. Perhaps I am missing something... by A+Pressbutton · · Score: 1

    but our programmers absolutely do not spend 25h a week looking at code. This may have been true some years ago (like 15) but not now. The discipline of software engineering is rapidly maturing - not least because some of the brightest minds are spending their lives doing it. In the same way that the engineers working on the dover - calais channel tunnel worked very long hours and were paid well there will still be high paid and high pressure jobs - viz the current dotcompanies (and I wonder what next), however the secrets of success are not really secrets, but just good guides to probable success. Mr Greenspun span a homespun truth in that a good product has one or two people architecting it, more will compromise the integrity of the vision. Therafter I seem to lose track of the flow. If the design of the product is correct then different teams can work on different 'leaf nodes' without having to read each others code at all, or one team can work on different areas without having to carry out a lot of research. If the specification of the product is correct then the programmer will have a very clear idea of what is wanted. If the requirements of the product are clear then a good test plan can be constructed that will catch most errors (I did not say all) As a nascent manager, having worked as a programmer for years the only times I had to work long hours was when it was not clear what was wanted, or the estimate was woefully incorrect. Both these errors are mostly management errors. The principal error I (and others) continually make is in not communicating clearly, in obtaining requirements (time and cost) or to other people or code. I see creating software as an exercize in communication and creativity. Long hours count against both these.

  50. I am great therefore you are stupid by gelfling · · Score: 2

    Greenspun's argument goes thus:

    1 I made zillions as a dotkomissar therefore I am right.
    2 I agree with other statements generally agreed to be correct therefore my statements are chistled in granite.
    3 Nagging is good because not nagging leads to similar results therefore either negative or positive reinforcement must be a good thing.
    4 Stupid people yield stupid results.
    5 You are probably stupid if you are not as great as I am.
    6 If I say something is correct then it must be a priori since I provide no proof otherwise.
    7 Generally agreed upon aphorisms are in fact correct even if you can't prove them to be.
    8 Everyone wastes 30% of their time even the most productive and brilliant of us.
    9 Hard work is good.
    10 Working smarter is no substitute for thinning the herd.
    11 If you could bottle it you would. Even though we call it engineering and we claim to agree to be able to manage it at all, it's a really an artform that can't be well understood, documented, replicated or taught. IF you're in the bottom half...tough luck for you.

    Brooks may be right but if the variation in productivity is really 10:1 then it isn't engineering at all. That's no measure of the engineering-ositude of anything. If it were then civil engineering projects would have schedules and timelines that look like "whenever...." and we wouldn't be able to tell the difference in the creation process from software, steelmaking or wineries.

    So let's agree to disagree. ArsDigita was successfull because of very smart talented people working in small focused groups that specifically WERE NOT ATTEMPTING TO ENGINEER ANYTHING. At least not the way you'd design and build an airliner. Because if you knew anything about actual engineering you'd understand that it doesn't depend on the brilliance of a few to be successful. Is is the application of well understood and documented knowledge processes and tools to create a reproduceable item or service or process.

    In fact that is precisely why software is so hard to make. No one has adequately figured out how to engineer it at all. Projects still largely fail and the ones that don't generally have no repeatable success criteria or design or process commonalities. Even successful projects generally are late and an order of magnitude more expensive than projected, don't survive unaltered for as long as projected and cost much more to maintain. Good solid designs rarely survive the tenure of the people who built them and in the end it's cheaper to be ignorant of the whole of a system and attack fixes as temporary point solutions than it is to build maintainability into the system to begin with.

    In fact if software was engineered then you would see larger groups successfully develop it and maintain it. But it's not. For an apocryphal story about this read "Strategic Planning, Systems Analysis, & Database Design, the continuous flow approach: Mark L. Gillenson & Robert Goldberg; Published by John Wiley and Sons, 1984; ISBN 0-471-89066-9. Where there is a story of two developers who apparently developed some customer system right the first time with no obvious bugs or requirement or design changes, on time and on budget. When asked how they ever did this, apparently the response was something like "It never occurred to us that bugs were acceptable..." or less poetically, the quality was engineered-in from the beginning.

  51. "More days off" instead of "Free Snack Machine"... by lwagner · · Score: 1
    > What happens, though, when the golden days end?

    Well, for one thing, people who "jump" between jobs for high salaries and high workloads are going to be highly unattractive.

    Contractors might still be okay, though.

    >The companies are only your friends now because
    >it's the only way they can keep talent. What do

    I speak as an employer, but also as a person whose wife is employed by a very "friendly" company who gives low wages and compensates by giving them a free snack machine, a ping pong table, etc.

    What needs to happen is a paradigm shift (when the economy downturns) whereby the snack machine and Playstation and 70 hour week are tossed, but employers give days off to spend with their families.

    Several countries in Europe have a very nice way of doing this... some even up to a month off. Of course, we don't.

    The flipside to it is like when mothers take a long maternity leave here in the US. Yeah, they can do it by law, but, when they return, people have changed, their work has been done by others, and they are resented to some extent.

    Nonetheless, I would venture to say that most people would even take a pay cut, just to get some more days off. I would.

    Lucas


    --
  52. Not the place for a family man by wodelltech · · Score: 1

    I spent a good deal of time thinking about working for ArsDigita. I respect that man as well as the software he and his merry bunch have produced. But aftering speaking with a couple folks there (ArsDigita) and reading a good deal of Phil's pontifications, it became clear to me that most of their employees ARE single. I wish them the best, truly, but as a husband/father, I can't imagine working at a place like that.

    --
    Your monitor is staring at you.
    1. Re:Not the place for a family man by BinxBolling · · Score: 2
      I've talked with a few of their employees, one of which had a wife and daughter, the other was married. They both were happy with their jobs. One managed an office and the other was a sysadmin.

      One thing that should be mentioned is that Philip's article doesn't really describe what happens at Ars Digita.

      Few people here work more than 50 hours per week, and there's certainly no real pressure from management to do so.

      The company has changed quite a bit since I first got here. The office used to be pretty busy late into the evening and on weekends. Now I rarely come in on weekends, and when I do, it's pretty quiet.

    2. Re:Not the place for a family man by harryg · · Score: 1
      A quick correction: the majority of our staff in the Washington,DC office are married and some have even found the time to raise families. The Cambridge office has a bit younger group, and so a different demographic.

      Harry Greenspun, MD
      Vice President, Healthcare

      --

      Harry Greenspun, MD
      Vice President, Healthcare
      ArsDigita Corporation

    3. Re:Not the place for a family man by wodelltech · · Score: 1

      Harry, Phil's brother, was kind enough to drop me a line and reassure me that the vast majority of AD employees are, in fact, married. I still find it hard to equate lots of late nights at work with a good family life, though.

      --
      Your monitor is staring at you.
    4. Re:Not the place for a family man by figa · · Score: 1
      I'd attribute it to decompression problems, except that Phil G. has been spouting this nonsense for years. I had been mildly interested in ArsDigita for a while, but his anti-family stance turned me away. I'm surprised nobody has slapped an EOE lawsuit on the man. He's doing his company a serious disservice by promoting it this way.

    5. Re:Not the place for a family man by djweis · · Score: 1

      I've talked with a few of their employees, one of which had a wife and daughter, the other was married. They both were happy with their jobs. One managed an office and the other was a sysadmin.

  53. Re:Managing programmers is *not* fun by llywrch · · Score: 2

    > I'm sure that programmers here will claim that their huge intelligences are responsible for their constant need to change the task they're doing and their
    > complete lack of focus, but it means that out of every hour they're present, only half (if you're lucky!) of it will be spent working. The rest will be spent
    > browsing the net, checking emails, getting drinks, going to the toilet, scratching their armpits and any other activities that can help them avoid doing what
    > they're begin paid for for another minute.

    Programmers are creative types, a fact which makes the following words (paraphrased from memory) of Frederic Pohl (a Science Fiction writer of the old school) relevant.

    It's hard to tell when a writer is actually writing. Sometimes even he is not sure, & can't say whether reading the Sunday classifieds is actually work towards the book, or just screwing off.

    Geoff

    --
    I think I see a trend here. Maybe for them it really would be easier to muzzle the entire internet than to produce p
  54. Re:Software 'engineering' is different because... by ahodgson · · Score: 1

    > Real engineers can do it 100% of the time.

    Must have been fake engineers working on those failed Mars missions, then. Or on the bridge here that collapsed during construction in the 50's. Or the mall parking lot that collapsed into a bunch of stores a few years ago.

    Real engineers fuck up too. When they do, often people die, so they're a lot more careful than someone working on a web application. Their projects also involve a lot more people doing a lot more planning than most software projects have budgets for.

  55. I'm anti-union, but I agree with this by Ars-Fartsica · · Score: 2

    Abuses in the tech industry are getting fairly common, but I wouldn't get too worried - already there are changes taking place. Firstly, as the land-grab on the web comes to an end, there is going to be less of a mad-rush to get things up in a hurry - there's no point now - no one is going to win marketshare with a quick solution at this point, and their are diminishing rewards to new companies joining the fray now. Added to which, at most large companies, you can already see an entrenched 8-hour cycle taking place.

    1. Re:I'm anti-union, but I agree with this by PiterPan · · Score: 1

      IMHO, people are using this "tech rush" as an excuse to abuse their employees... But if this excuse goes away, there gonna to be another one (two, three, doesn't matter).

      But not all employers are that evil... Somebody are just clueless...

      It would be nice if we could teach them... Maybe not by making a union.. There should be another way.

      --

      --

      --
      On scale from -14 to 56 this post is '-15, Nonexistent'
  56. Syntax highlighting is only good if universal. by DunbarTheInept · · Score: 2

    I've worked in a place where *some* of the programmers had access to syntax highlighting editors and others did not. That made for terrible looking code. The problem is that code that looks like it has plenty of white space in color mode doesn't really when you turn off the color syntax - things are run together and badly indented because the color highlighting made things look like they were still easily discernable and hid this fact. This is especially bad in printouts.

    --

    Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    1. Re:Syntax highlighting is only good if universal. by DunbarTheInept · · Score: 2

      You misunderstand me. I wasn't talking about inconsistent coding style, but style that assumes a color highlighter is available - for example, only indenting 2 spaces is ugly even if you do it universally, and having no whitespace in expressions is ugly even if you do it universally.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

  57. Re:Software 'engineering' is different because... by pkesel · · Score: 1

    I have recently been working to find a problem on a multi-platform middleware product that behaves perfectly (as predicted) on three platforms, but misbehaves terribly on another. All the code is written according to accepted standards, using the same standards-based libraries.

    I've 'engineered' my code properly. It still won't work properly on one platform, and there is nothing I can do about it. Do 'Real engineers' run into problems of this sort, where gravity or electromagnetic phenomena don't behave properly in one state or another? Do your models for bridges hold up on the Moon or Saturn? That's the kind of world we work in with software. It's building on quicksand.

    --
    - Sig this!
  58. Re:Is it really different? by pgreenspun · · Score: 1

    A family doctor lives next door to us on the Cape (Chatham). I think he is around 65 years old and is considered one of the best diagnosticians in the area. He gets into work every morning at 0615 and can stay until 5 in the afternoon. He also works evenings and weekends as necessary for his patients. I don't think that you'll find too many doctors or lawyers who are considered to have made important contributions to their communities who have worked 9-5 their entire life.

    Almost all doctors work extremely hard during the career-building years about which I was writing (age 22-30).

  59. Re:Wrong assumption to start with by The+Pim · · Score: 2
    The whole point of engineering is to create solutions that are simple, flexible, and effective - and that can be *understood*.

    Simplicity is a critical value in software development. But there are two aspects to consider: simplicity of concepts, and simplicity of their manifestation in design and code. For many problems, deep and subtle concepts allow top programmers to address the problem faster. Some problems require them. The implementation is necessarily at least as complex as the concepts. One should always avoid making it more complex. One should also always consider whether simpler concepts would do, as many good programmers tend to overcomplexify (as Greenspun attests). But that is not always the right answer.

    Furthermore, it is sometimes a simple matter of volume. In a fast-moving project, lots of ideas and designs are constantly being generated, and these take time to comprehend even if they are simple. A top programmer can pick up many simple ideas faster than an average programmer, just as he can comprehend one deep idea faster.

    If you don't think programmers should spend a significant amount of their time understanding others' code, I think it's likely the programers in your team don't have adequate understanding of issues global to the project.

    --

    The evaluation of an action as 'practical' . . . depends on what it is that one wishes to practice.
  60. What about flex time? by Richard+Steiner · · Score: 1

    I work on a programming team of 12 people, and the company I work for (a major US airline) has flex hours in the IT department. We have some folks on the team starting work as early as 5am and some folks starting as late as 9pm. Also, most folks work the standard M-F, but some work 4 days every other week (getting every other Monday or Friday off), and one works a four-day week.

    I generally come in somewhere between 11am and 2pm depending on how late I was up the night before and on whether or not I had errands to run during the morning.

    Not only do flexible hours let the programming staff adapt their work hours to their outside schedule, but it also has the indirect benefit of giving us people on-site almost 24x7, which is a very nice thing if we have a production problem.

    I think this guy would be in for a serious culture shock if he decided to hang around here for a while. :-)
    --
    -Rich (OS/2, Linux, BeOS, Mac, NT, Win95, Solaris, FreeBSD, and OS2200 user in Bloomington MN)

    --
    Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
    The Theorem Theorem: If If, Then Then.
  61. Re:Wrong assumption to start with by kubalaa · · Score: 1

    Let me make an analogy; imagine your favorite author. Could you ever hope to write that expressively? And yet you like his writing because it strikes a chord with you, because it is easy to understand. Same with programming; the art is in inventing pristine, perfect, crystal clear abstractions -- any idiot can understand them.

    --

    "If you look 'round the table and can't tell who the sucker is, it's you." -- Quiz Show

  62. From A Top software house: NASA by cant_get_a_good_nick · · Score: 1
    Where an off by one error means people die. (I think I picked this up on a slashdot discussion earlier).

    They write the Right Stuff

    I'd personally refute most of the stuff he says, 70 hour weeks lead to burnout and sloppy code. The wuality of my environment has never been as important as the quality of the people around me. Mentoring is probably the most important for me, and creating an atmosphere where asking questions is encouraged. Testing is part of the process, not something left to the last second. But the above link does all that pretty well.

  63. Simple code. by JurriAlt137n · · Score: 1

    10 BEEP ' This line gives you a headache.
    20 GOTO 10 ' This lines ensures you keep the headache.

    --

    People replying to my sig annoy me. That's why I change it all the time.
  64. Re:Move to NL by chrischow · · Score: 1

    oh life is sincere, believe me. but you won't find out that way

  65. Hardly unreasonably large salaries by heroine · · Score: 2

    I get 75% of expenses paid for by salary and 25% from loans. What you may not realize is it doesn't matter how large the salary is as much as how large in comparison to everyone else's salary it is.

  66. I'm glad that you love your wife and kid... by pgreenspun · · Score: 1

    I'm glad that you love your wife and kid but it isn't the case that 99% of the world's great innovations come from people whose families are their #1 priority. Very few MIT students, for example, are married. It would probably be possible to construct a research university specifically for those who want to work 9-5 and put family first. But as most of the people attracted to research universities aren't married, it makes more sense to figure out how to get everyone charged up and cranking. At MIT we DO care about our students. But we don't demonstrate it by encouraging them to knock off work at 5:00 pm and go home to the families that they don't have!

    1. Re:I'm glad that you love your wife and kid... by dohnut · · Score: 1


      But we don't demonstrate it by encouraging them to knock off work at 5:00 pm and go home to the families that they don't have!

      Well, of course not! Heck, if they went home at 5:00 pm, they might actually go out and meet members of the opposite sex and *start* a family.

      --
      Stupider like a fox! - H.S.
  67. I must nit-pick by Kevster · · Score: 1
    Rather than comment on his content, I'm going to nit-pick it. He screwed up when he used "negative reinforcement" -- the way he was using it, he should have said "punishment". Tsk. To wit:

    Positive reinforcement:
    A programmer writes a lot of really good code (behaviour), so you give him a lollipop (the positive stimulus), which you expect will increase the likelihood of that behaviour recurring.

    Punishment:
    A programmer writes some bad code (behaviour), so you take away his foosball machine (punishment), which you expect will decrease the likelihood of that behaviour recurring.

    Negative reinforcement:
    You hire someone to lash a programmer continuously (the negative stimulus) until the programmer learns to escape it (removal of the negative stimulus) by writing lots of good code (behaviour). This will increase the likelihood of the desired behaviour. It is hoped that the subject will eventually learn to avoid the negative stimulus entirely, rather than merely escaping it. :-)

    You see how both positive and negative reinforcement increase the frequency of a desired behaviour? And punishment decreases it? For other information on this, simply visit http://www.google.com/ and search for "reinforcement punishment positive negative" and check out the results.

    Yes, I know that this may seem nit-picky, but just as we in the computer industry appreciate it when our jargon is used correctly by those not in it, I'm sure the psychologists of the world would appreciate it if we used their terms correctly.

    --
    I always equivocate. Well, almost always.
  68. Slacker Company? by harrisj · · Score: 1

    Well, it's nice to see that I'm working at a "slacker company", since we only demand about 40 hours a week. Sure, we have managed to do a lot with only a few programmers, but I suppose because we lack the amenities of a foosball table and large television, so we actually work those 40 hours.

    I am glad that Greenspun provides more vacation time, but I abhor the attitude that the programmer should spend as much time at the company in the eventual hope of future reward. I know that he scorns "annual reviews", but I'm sure that many employees keep working for the even more intangible promise of stock options. It's always sad when those options become worthless. But we're in an industry that chews up young people only to replace them with H1B's when they get too old.

    Some people in this discussion might find Extreme Programming interesting. It too tackles the problem of managing programmers but it comes up with some different proposals. You can check out the Wiki Version here.

  69. Re:Can you say stroke at 39? by jallen02 · · Score: 1

    I cant say working 60-80 hours a week gets to me

    Yeah ive only been doing it two years but I exercise, eat well, and take martial arts all of which decrease my stress greatly.

    Maybe some people can do it and some cant, maybe its elitist or arrogant to think I can do something most people cant, maybe in a few more years ill burn out and blow my head off, but I doubt it I like what I do, and stress is a purely mental aspect of life, some is good, to much is bad, I know that i can achieve only so much in a day, and anymore I dont worry about it.

    Oh well, if I stroke out thats my luck, it takes a certain mindset , that i fI ever lose im outta the business fast, to stay happy with that kind of work.

  70. Article Text by bcaulf · · Score: 1
    Managing Software Engineers

    by Philip Greenspun (philg@mit.edu)

    Submitted on: 2000-10-22

    ArsDigita : ArsDigita Systems Journal : One article

    Philip Greenspun founded ArsDigita Corporation and was its CEO from inception until it reached $20 million/year in revenue. Currently, he is Chairman of ArsDigita and teaches computer science at the Massachusetts Institute of Technology. Why an article on managing people? And one written by someone with training in computer science rather than business administration? There are thousands of books on the best ways to manage people. Many of these books are excellent, having been written by people who've devoted their lives to the discipline.

    Software engineering is different.

    Software engineering is different because only the best people significantly contribute to achievement. Traditional management texts assume a distribution of talent among the workers. Each worker is contributing something useful and the challenge is to get each one to perform at his or her maximum potential. In the same factory, the best worker may produce two or three times as much as the average, but all the workers are contributing. In software engineering a good programmer is at least 10 times more productive than an average programmer (Brooks 1995). If a product is being developed rapidly, the average programmers will consume nearly their entire work day just in reading and understanding the new code generated by the good programmers. Thus the challenges of a software engineering manager first and foremost are (1) creating a work environment where good programmers will be satisfied enough to stay, and (2) creating a system via which average programmers can become good. In an ideal software engineering organization, there are still some average-quality people but these should be viewed as being apprenticed to the best people and being taught as fast as possible.

    Software engineering is different because people at all levels of the organization perceive themselves to be equally intelligent. Consensus-style management can perhaps work when there is a gradient of perceived ability. Given enough time, the less able workers will follow the lead of the more able workers. One of the paradoxes of software engineering is that people with bad ideas and low productivity often think of themselves as supremely capable. They are the last people whom one can expect to fall in line with a good strategy developed by someone else. As for the good programmers who are in fact supremely capable, there is no reason to expect consensus to form among them. Each programmer thinks his or her idea about what to build and how to build it is the best.

    Software engineering is different because a leaf-node worker is more expert than any manager, even when the manager is a great engineer, in at least the small portion of the system that the leaf-node worker has personally built. This makes it difficult for a manager to engage in a technical argument with a worker. It becomes nearly impossible when the manager's technical skills are weak. The worker can spin castles of complexity in the air and come up with impressive-to-the-MBA excuses for why it has to be done a certain way or on a certain schedule.

    Software engineering is different because the organization can't afford to lose the individual productivity of the best people by pushing them into management. A truly great programmer may generate 10 times as much business value as a merely good programmer. Can the organization afford to take someone who can do the work of 100 average programmers and push him or her into a pure management role? Probably not. Can the organization afford to put people with weak technical skills into management roles? Probably not. Once you give Joe MBA a title and ask him to coordinate eventually he will be making decisions that have engineering implications. Thus many of the best programmers are eventually forced at least to assume project leadership and mentoring responsibilites. Since they are still expected to produce designs, software, documentation, and journal articles, the danger is that the new manager will become glued to his or her screen and never look up to see how the project team is doing.

    Software engineering is different because measurement is notoriously difficult. The world is full of products that failed due to overly complex and tasteless designs. Yet all of these designs were considered tasteful by their architects. Systems that experts evaluated and found wanting, such as the Unix operating system (1970), eventually proved to have great utility. It is a bit easier to count up the lines of code per day produced by a programmer but if the project was not very tightly specified originally, how do you know whether or not these lines of code are useful? At this point a skeptical reader might be thinking that, while software engineering is different from line production work or any other endeavor with a manufacturing division of labor, there are similarities with research and development, management consulting, and financial analysis. This is certainly true but there aren't too many interesting books on how to reliably produce results in these fields (one is referenced in the "More" section below). Ideas to Steal Software engineering is different but it is not that different. What ideas can we steal from the broader world?

    • people don't do what they are told
    • all performers get the right consequences every day
    • small, immediate, certain consequences are better than large future uncertain ones
    • positive reinforcement is more effective than negative reinforcement
    • ownership leads to high productivity
    people don't do what they are told In Bringing out the Best in People, Aubrey Daniels notes "If we always did what we were told, we would eat only nutritious foods, never drink too much alcohol, and exercise regularly." There is thus a natural limit on the effectiveness of written policies and management by telling then nagging.

    A corollary to this principle is that people do what you reward them to do, not what you hope they will do. Often, when you look at what is truly rewarded in an organization, you find it is different than what you think is rewarded. Do the managers have an engineering background? If not, they'll probably be unable to perceive when a programmer is accomplishing nothing. So the programmer who does nothing gets a paycheck at the end of the month. Having thus been rewarded for doing nothing, the programmer tries it again the next month... all performers get the right consequences every day The natural way to manage is to spend time with people who aren't doing a good job. You help them out. You remind them of the good things that can happen to them if they finish a project or raise the spectre of their being laid off the next time the company needs to improve its profitability. These are probably the right consequences for someone who is underperforming. But what about the people who are performing? What if you ignore them day-to-day? Unless they are getting positive reinforcement from another source, they may stop coming in on the weekends to get a release out the door earlier, stop documenting their code, stop writing journal articles. A top performer won't sink to the level of a problem employee but that person may become average. And in the long run a company with average workers will at best earn an average return on equity. small, immediate, certain consequences are better than large, future, uncertain ones An annual review and bonus is not classically considered a very good way to motivate people. It is too far away, especially in a dotcom economy. Even if a worker is able to keep the bonus goal fixed in his or her head for the 365 days preceding the bonus allocation, there is uncertainty attached to it. What if the company is doing really badly at the end of the year? Will there still be a bonus? positive reinforcement is more effective than negative reinforcement Like most schools worldwide, MIT practices negative reinforcement at the undergraduate level. If student does not do a problem set by a certain deadline, we give him or her a bad grade. This has turned out to be extremely effective at ensuring that an MIT graduate has achieved some minimum standard. However, the students don't accomplish all that they could. The first term that we taught 6.916, we gave the students one week to do Problem Set 1. It was pretty tough and some of them worked all night the last two nights. Having watched them still at their terminals when we left the lab at 4:00 am, we wanted to be kinder and gentler the next semester. So we gave them two weeks to do the same homework assignment. The first week went by. The students were working on other classes, playing sports on the lawn, going out with friends. They didn't start working on the problem set until a few days before it was due and ended up in the lab all night just as before.

    We thus proved the management adage that a deadline just gives someone an excuse to procrastinate and do nothing until the very end.

    Graduate school at MIT is different. We want the students to do research, write up their results, publish them in journals, and graduate with a reasonably interesting PhD thesis. If a student finishes some research, the most effective faculty advisors immediately provide positive reinforcement by paying attention, helping design the next experiment, helping to draft a paper outline. If the student finishes a write-up, he or she is positively reinforced by being sent to a conference to present it. If the student finishes a PhD thesis, he or she is positively reinforced by being given a 3-7X pay raise.

    The lesson from MIT? Negative reinforcement can work if the organization is extremely tightly managed, if the consequences are small and immediate (usually a problem set is due every week and only represents a part of the final grade), and if the goal is to make sure that everyone comes up to a reasonable level. However, the worldwide fame of MIT rests on research achievements by graduate students. This innovation is mostly supported by positive reinforcement. ownership leads to high productivity A related issue to positive/negative reinforcement is ownership. Non-ownership systems discipline those who are not working up to the minimum standard, but they do not offer enough of an upside to truly motivate people. Morever, non-ownership systems demand a very accurate setting of standards. Ownership-oriented systems include contingent rewards with an almost unlimited upside, and are thus effective at getting as much discretionary effort out of workers as possible.

    As an example, in the early days of ArsDigita we had only a handful of customers: America Online, Environmental Defense Fund, Hewlett-Packard, Levi Strauss, Oracle Corporation, and Siemens. We had only a handful of programmers as well and hence the easiest way to divide the work was to give a programmer total responsibility for one project. The programmer owned that customer. If the project went well and the customer wrote us a big check, we gave nearly all of the money directly to the programmer. If any project had gone poorly and we'd been fired by a customer, we would not have had to think very hard to figure out who was responsible (fortunately this never happened while I was running the company!). People worked insanely hard to make their projects successful and their clients happy. More importantly, the programmer who did an entire project by him or herself learned enough to train new people, lead a larger project, etc.

    After we grew beyond the 40-person mark, pressures to dilute the ownership aspects of our organization grew. We wanted to grow rapidly--nobody wants to buy enterprise software from a small company, even if the software happens to be open source. As our reputation grew, customers came to us with larger projects. We believed that many of our developers were too junior to handle complete responsibility for these large projects. Our costs went up because we had to coordinate the diffused responsibility. In the summer of 2000, when we had 200 or so employees, one of our clients was unhappy. It took a week just to arrange a meeting among the five managers who bore collective responsibility for the project! Meanwhile, individual productivity fell. It was taking more programmer-months and more calendar months to get things done. On weekend mornings you could walk naked through an entire floor of our headquarters building without fear of embarrassment.

    (At the time of this writing, there is a proposal on the table to consolidate some of the separate management pyramids, thus taking us back closer to our original structure.) Building and keeping a good software engineering team What is the best way to attract some good software engineers to your organization? Hire a few to begin with. Good people like to work with other good people. This is true in every field but much more acute in software engineering. Why? Consider two management consultants working on different projects but within the same organization. If Consultant A does a bad job it harms Consultant B's reputation to some extent but does not require Consultant B to take any action. Whereas in most tech companies if Programmer A does a bad job it usually means that Programmer B will eventually be forced to use the bad code, read the bad code, and then fix the bad code.

    What attracts good programmers? Traditionally the best programmers seek the most challenging problems. They want to work in an organization that is trying to build something important. Programmers have huge and fragile egos. If they are somehow assigned to a trivial problem and that is their only possible task, they may spend six months coming up with a bewildering architecture more complex than the Windows 2000 operating system, merely so that they can show their friends and colleagues what a tough nut they are trying to crack. Another source of ego-gratification for programmers is to have other programmers admiring their work. Open-source software projects thus have a big recruiting advantage over closed-source software companies.

    What kind of working environment is necessary for programmer satisfaction? Good programmers want to achieve and therefore removing barriers to achievement is the most important step that one can take in creating an effective working environment. Programmers dread elaborate process, endless meetings, and layers of marketing approval before a product can be shipped. Ideally it would be possible to conceive a product on Friday evening, set up the development environment Friday night, write code on Saturday and Sunday, test on Sunday night, and ship on Monday morning. Maintaining this kind of freedom is a serious challenge as a company grows and its products become more complex. Successful companies such as Oracle Corporation burden their marketing departments with overlapping products rather than stifle programmer initiative. For example, during most of the late 1990s there were at least three different Web servers that you could buy from Oracle, each one backed up by a document explaining why it was the one true path toward database-backed Web site glory.

    A good physical working environment is essential. Great programmers get a lot of positive reinforcement from their work itself. They write some code and immediately can see it dance. That keeps them at work for hours that, while they would not impress a taxi driver in Singapore or a factory worker in Guangzhou, will surprise many American business people. When we hired an architect to lay out the interior of ArsDigita's first building in Cambridge he surveyed the programmers and came back shaking his head: "I've never seen any group of people who spend so many hours continuously sitting at their desks."

    From a business point of view, long hours by programmers are a key to profitability. A programmer probably needs to spend 25 hours per week getting coordinated with other programmers and comprehending the structures of the systems being extended. Thus a programmer who works 55 hours per week is twice as productive as one who works 40 hours per week. In The Mythical Man-Month, the only great book ever written on software engineering, Fred Brooks concludes that no software product should be designed by more than two people. He argues that a program designed by more than two people might be more complete but it will never be easy to understand because it will not be as consistent as something designed by fewer people. This means that if you want to follow the best practices of the industry in terms of design and architecture, the only way to improve speed to market is to have the same people working longer hours. Finally there is the common sense notion that the smaller the team the less management overhead. A product is going to get out the door much faster if it is built by 4 people working 70-hour weeks (180 productive programmer-hours per week, after subtracting for 25 hours of coordination and structure comprehension time) than if by 12 people working 40-hour weeks (the same net of 180 hours per week). The 12-person team will inevitably require additional managers and all-day meetings to stay coordinated.

    Your business success will depend on the extent to which programmers essentially live at your office. For this to be a common choice, your office had better be nicer than the average programmer's home. There are two ways to achieve this result. One is to hire programmers who live in extremely shabby apartments. The other is to create a nice office. Microsoft understands this. In the early 1990s they did radio spots with John Cleese as a spokesman. One of the main points of the ad was to ridicule the cheap open-plan offices in which programmers were traditionally housed and promote the fact that at Microsoft each developer gets a plush personal office.

    How can an office be nicer than one's home? Let's consider the following dimensions:

    • social
    • physical comfort
    • aesthetic
    • entertainment
    • attractive
    Social It is easy for an office to beat the home on the social dimension, especially if the programmer lives alone. If there are people at work at all times of day and night and you've succeeded in building an organization of good people, ipso facto there is always someone interesting to talk to at the office. To exploit fully the social possibilities of the programmers' office, it is important to have informal gathering spaces. At the MIT Artificial Intelligence Laboratory, which has nurtured groups of great programmers for nearly 40 years, the gathering spaces are referred to as "playrooms". These contain sofas and coffee tables, movable in the best tradition of Dewey, where programmers eat, talk, and occasionally listen to presentations. Usually a playroom will have some sort of shared writing surface such as a whiteboard. Note that these playrooms also are an important part of an organization's knowledge management system. You need to give programmers from different projects a place to meet where problems can be discussed and solutions from older/other projects can be suggested.

    A social place will never be friendly if it is trapped behind a high wall of security. It ought to be very easy for a programmer to invite a friend over. If programmers are comfortable meeting their friends at the office it greatly increases the likelihood of friends recruiting friends.

    An open office plan contributes to making the work environment stronger on the social dimension. Physical Comfort A programmer's work environment should be a supremely comfortable place to sit, look at information on a screen, and type. At ArsDigita we accomplish this via providing Aeron chairs, the keyboard of the programmer's choice, and at least two monitors. In the summer, the place should air-conditioned 24 hours per day, 7 days per week. In the winter, the office should be heated and humidified (often neglected). The air should be cleaned year-round with high-efficiency mechanical filters and electronic cleaners so that allergy sufferers are not discouraged from working.

    One horrible mistake that we made was letting our architect design the workstations. Each programmer was given a 6'x2' desk, 12 square feet total. Two 21" monitors took up so much depth that there wasn't even room for a keyboard. Immediately we had to toss our monitors and get flat panels (cost about $400,000 extra). IBM had a better architect for its Santa Theresa facility: Gerald McCue. He found that each worker needed 100 square feet of dedicated space and 30 square feet of work surface. McCue also found that programmers needed noise isolation from enclosed offices or high partitions but personally we think this rule is worth breaking in a dotcom world where a team has to work fast and in sync. Better to manage noise by spreading desks apart a bit so that there are fewer programmers in a given area and therefore fewer conversations, fewer telephones, and more opportunities for sound to be absorbed before reaching someone's ear. Aesthetic Programmers don't have the same need for wood-paneled expensive plushness that, say, corporate lawyers or investment bankers might. However, the office has to be aesthetically satisfying or it will be tough for anyone to take seriously the idea that the company values aesthetic internal design of computer programs. Similarly, the office has to be finished and well-executed or nobody will believe that the organization is committed to finishing products. In the long run it is impossible for an organization to be excellent in one area and mediocre in all others. So the physical facilities have to look as though they were planned and decorated by someone with taste. Note that this need not be expensive. You could do it with $200 desks from Ikea and a consistent set of art posters on the walls. But an expensive facility with blank walls and boxes left over from the last move screams incompetence. Remember that the overall place has to look nicer than most of the programmers' houses. Entertainment It is easy to make an office more entertaining than the average person's home. Most people have a TV at home but they don't have friends with whom to watch it. Nor will they typically have the kind of big-screen equipment that is easy for a company to acquire. In the 1980s students at the MIT Media Lab would gather on quite a few nights to watch movies from analog laserdisks, presented with a very high quality projector. After the movie was over, they'd go back to their desks and work for a few hours, something that would not have happened if they'd gone out to the movies.

    The average home cannot accomodate a pinball machine. An office can. The average home can have video games, which are very popular with young programmers, but not people with whom to play. The average home cannot have a grand piano but almost any office can. Attractive A worthwhile goal is to have at least one thing that is extremely attractive about the physical enivronment for any particular prospective software engineer. Here's a possible list:

    • dog-friendly policy
    • grand piano
    • climbing wall
    • indoor garden
    • aquarium
    • koi pond
    • exercise room with fancy machines
    • pinball machine
    Not everyone has a dog. Not everyone can play the piano. Not everyone wants to practice rock climbing. But by having a long list in the same building, there is a good chance that at least one item will be very attractive to a particular person. If a person loves gardens, he or she can be seated at a desk within view of the garden. That person won't value the other items, perhaps, but another employee will. Change of Venue You can work on all of the preceding dimensions but there will come a day when a programmer gets restless. Sitting at exactly the same desk every day is tedious. We thought that we could solve this at ArsDigita by using the Internet and our branch offices. We'd encourage programmers from Cambridge to pick up and work at a spare desk in the Berkeley or Pasadena offices for a week or two. The idea did not catch on, however, because it turns out to be disruptive for one person on a team to disappear. One of the reasons we've found open-plan offices effective is that it helps to have one's team members close enough to look casually at what is on the screen.

    What does it take to let the entire team pick up and work somewhere else for awhile? A beach house or a ski house within a two-hour drive of their main office. It is kind of expensive for an individual to rent a vacation house year-around, equip it with a DSL line or cable modem, and pack it with enough desks and computers for a team to work. But if you've got a group of 30 programmers and get a house large enough for 6 or so to sleep and work, the cost is manageable. In the winter, a programming team can disappear for a week, ski every morning and work all afternoon and evening. In the summer, a team can spend a week looking out at the ocean... while typing most of the time. It costs more than not having the beach house but a lot less than having employees go off on their own to have fun every weekend and not work. Turning average programmers into good programmers It is difficult to hire the most productive programmers in the world. Oftentimes these people are capable, by themselves, of turning out entire products, and thus they start their own companies. If a really productive programmer works for an established organization, that organization will usually take extreme steps to keep him or her. Thus beyond a certain point it is most effective for an organization to develop a strategy for creating good programmers internally.

    How does one create a good programmer? Raw materials are important. You want someone with a strong computer science education, a high IQ, and an ability to communicate effectively in oral presentations and in writing. But without the right experience, such a person will never be more than an average quality programmer.

    These principles are important in building up someone's programming skills:

    1. A person won't become proficient at something until he or she has done it many times. In other words., if you want someone to be really good at building a software system, he or she will have to have built 10 or more systems of that type.
    2. A person won't retain proficiency at a task unless he or she has at one time learned to perform that task very rapidly. Learning research demonstrates that the skills of people who become accurate but not fast deteriorate much sooner than the skills of people who become both accurate and fast.
    3. Technology shifts force a programmer to go through bursts of learning every year or two.
    Look around your organization. You can make a list of the people qualified to design and build a new system by counting up those who've built 10 or more similar systems in the past, at least two in the last year, and that could do the entire job in a month or two if they really had to. These are your "good programmers". Everyone else is a candidate to be turned into a good programmer as quickly as possible.

    Learning to design and build software systems requires that the programmer design and build software systems. These can be smaller subprojects for internal or external customers, standalone software system for non-profit organizations, or demonstration systems to be written up and distributed to other programmers. A particularly effective option that is only available in the Web world is to build and launch a free public service. See http://remindme.arsdigita.com and http://towzone.arsdigita.com for examples of one-evening training projects.

    Whatever the training task, the pace must be ruthlessly brisk. The learner should be expected to build at the same pace as an experienced developer. The difference between the learner and the wizard is that you expect the learner to make a lot of mistakes. The system as built may be awkward or not handle error cases properly. That's okay. Training research shows that if you get speed now you can get quality later. But if you don't get speed you will never get quality in the long run. We practice this technique in 6.916, Software Engineering for Web Applications, our course at MIT. Each student builds five database-backed Web applications during the 13-week semester. The first few that they build, during the course of the problem sets, are not necessarily elegant or optimal, but by the end of the semester they've become remarkably proficient, especially when you consider that each student is taking three or four other classes.

    If you see one of your best people walking out the door at 6:00 pm, try to think why you haven't challenged that person with an interesting project. If you see one of your average programmers walking out the door at 6:00 pm, recognize that this person is not developing into a good programmer. An average programmer's productivity will never be significant in a group of good programmers. If you care about profits, you must either come up with a new training program for the person or figure out the best way to terminate his or her employment with your organization.

    Still not convinced? Take a look at the Japanese "code factory" circa 1990. These precisely organized large organizations where each person had his role, however small, were supposed to overtake the American approach where small teams of craftsmen worked in a comparatively disorganized manner. The factory approach sometimes produces acceptable corporate IT solutions but for innovation and successful product development, the craft approach has been overwhelmingly vindicated. Turning good programmers into good managers As noted in the introduction, software engineering is different because the organization can't afford to lose the individual productivity of the best people as they are pushed into management. At ArsDigita, for example, a manager who is one or two levels up from the leaf nodes is still expected to write code, develop SQL data models, write system design documents, and write journal articles. Yet managers who are spending a portion of their time designing software or writing documentation are at risk of neglecting their duties to review subordinates' work.

    The classic problem situation at ArsDigita is a manager getting lost in his or her own work and failing to review a subordinate's efforts for two or three months. When the review occurs, inevitably the subordinate has either been working on the wrong thing in the wrong way or hasn't been sufficiently productive. At this point the manager is really angry. Three months of calendar time and money have been wasted. But should the manager be angry with the employee? If the manager had reviewed the subordinate every week, the company would never have been at risk of losing more than one week of time and money.

    Our solution is to decouple responsibility for review from responsibility for scheduling review. We use administrative assistants to ensure that each manager is scheduled to look at every subordinate's work at least once per week, more frequently in the case of junior employees. It has proven remarkably more effective when a neutral third-party is responsible for scheduling than when people with incentives to shirk are responsible for scheduling. Management by Consensus Considered Harmful Leaf-node engineers at every company on this planet think that they have better business ideas than the senior managers. Why not simply turn the company over to the engineers to run? Each engineer has a different set of better business ideas.

    Software engineering companies will tend to have a fairly flat distribution of intelligence. The 22-year-old Stanford CS punk that was just hired will be just as smart as the 30-year-old lead engineer who will be just as smart as the 40-year-old CEO. Within a company's technical team, the raw IQ differences are even smaller. If each member of the team were playing the Bach Partitas and Sonatas for Solo Violin, the wrong notes, shaky intonation, and bad phrasing would make it pretty obvious to the novices that they needed to take advice from the experts. But because software quality is tough to measure and software quantity is seldom measured, the novices in a software engineering group are able to think of themselves as experts.

    What would be wrong with a completely egalitarian software engineering group? Maybe the entire team really is at the same level of ability. And suppose that somehow the challenge of getting everyone to attack the same problem had been surmounted. Remember what Fred Brooks said in The Mythical Man-Month: high quality systems must be architected by no more than two people.

    Getting design input from leaf-node engineers is important for having a good product design. But at the end of the day nobody should be confused as to who is providing leadership. There is an irreducible amount of Engineer A imposing his or her design on Engineer B. This can lead to some harsh-sounding words and bruised feelings. Microsoft is not the self-esteem company, at least if you believe Playboy magazine's interview with Bill Gates: "We hear you're brusque at times, that you won't hesitate to tell someone their idea is the stupidest thing you've ever heard. It's been called management by embarrassment challenging employees and even leaving some in tears." Truly elite organizations can be far worse than Microsoft. Ask a group of surgical interns and residents how much respect they get from the surgeons. Go into a world-class biology department and ask the grad students and post-docs about their treatment at the hands of the professors. Wherever You Go, There You Are Performance management textbooks will tell you that workers don't improve unless they get feedback. Joe Widgetmaker should get a nice chart, updated daily, of how many widgets he has produced personally each day, and how many have been built by his team.

    Consider the average working programmer's life:

    • surfing USENET
    • surfing Slashdot
    • reading docs
    • questioning colleagues
    • writing specs and designs
    • writing docs
    • writing code
    • testing code
    • fixing bugs
    • filing bug reports on others' code
    • attending meetings
    • helping sales and marketing staff
    (For comparison to the grad student life, see http://philip.greenspun.com/humor/graduate-student -emotion-check-list.)

    Characterizing this person's productivity is going to require more than one number. But if we don't do it, days or weeks could slip by without the programmer realizing that his or her achievement levels are plummeting. In a company with disorganized or technically clueless managers, the programmer's supervisory chain won't notice the lack of achievement either.

    Production of documentation and code is generally measurable by reference to the company's version control system. Bugs filed and fixed are easily tallied by looking at the company's ticket/bug tracking system (see http://www.arsdigita.com/doc/ticket for a description of our favorite open-source ticket/bug tracker). The softer stuff can still be quantified but it will have to be done by humans filling out forms.

    Ideally the programmer will get daily feedback, which is kept private unless the individual elects to publicize it. Performance in each sanctioned area of activity will be marked up and scored with a weight. The programmer can then see if his or her crude achievement level is going up or down. Summary Building and managing a peak-performing software engineering organization is challenging but extremely profitable. The core Ariba product was written by two programmers, yielding a market capitalization of $30 billion. Microsoft Internet Explorer is a much better browser than Netscape Navigator and yet it was written by a much smaller team: only about 30 developers.

    Start by attracting a good core team, perhaps by setting up an organization that enables each engineer to excel along the axes defined in http://www.arsdigita.com/asj/professionalism. Provide a productive working environment and a physical environment that is better than the average programmer's house. Provide daily positive reinforcement. Provide daily feedback showing the programmer more or less exactly what he or she has accomplished, plus a graph for the preceding few months showing the trend. Aim to install a feeling of ownership in each worker. More

    • Bringing out the Best in People (Aubrey Daniels 1999; McGraw Hill). 200 pages containing 75 pages of good ideas plus the usual business book filler. But the ideas are genuinely good.
    • The Mythical Man-Month (Fred Brooks 1995)
    • Managing the Professional Service Firm (David Maister 1993). In terms of having an equal distribution of ability among all levels of the enterprise, the closest industry to software engineering is management consulting. Maister's work is a classic guide to success in this industry.
    • Peopleware (Tom DeMarco and Timothy Lister 1999); page 98 is worth the price of admission, explaining that "the term unprofessional is often used to characterize surprising and threatening behavior. ... In a healthier organization culture, people are thought to be professional to the extent they are knowledgeable and competent." (See http://www.arsdigita.com/asj/professionalism for ArsDigita's independent conception of this idea.) Much of the rest of the book is a celebration of the 40-hour work week and the claim that "overtime" in the long run is never beneficial. If the authors were correct, Silicon Valley would be the poorest region of the nation, with Redmond, Washington the 2nd most impoverished. And Washington, DC would be our great source of innovation and productivity. Peopleware was probably written to help ensure success for internal corporate IT projects where there isn't any competition and delivering three months late won't change much.
    • Making the Cisco Connection : The Story Behind the Real Internet Superpower (Bunnel et al 2000) -- shows how ignoring the "no overtime" admonitions in Peopleware can generate $400 billion in market cap.
    • Parkinson's Law (C. Northcote Parkinson 1958) -- how management really works in the long run
    • A Pattern Language (Christopher Alexander et al 1977) has very interesting things to say about physical space and social organization.

    asj-editors@arsdigita.com

    Reader's Comments

    A corollary to this principle is that people do what you reward them to do, not what you hope they will do. Often, when you look at what is truly rewarded in an organization, you find it is different than what you think is rewarded.

    This is illustrated by the classic business school article:

    Kerr, S., 1975, "On the Folly of Rewarding A, While Hoping For B," Academy of Management Journal, Vol. 18, pp. 769-783.

    It represents exactly what you are saying.

    -- Tyler Pruett, October 30, 2000
    Philip, your ideas on rewarding programmers are excellent. However, I don't believe number of hours worked defines a good developer. Programmers get older and have families. Saying that they have to log a certain number of hours in the office is stupid, almost like IBM counting programmer productivity in "K-Locks" (thousands of lines of code).
    A good developer can often finish what an average one can do in half the time an average developer can - with less bugs and with better documentation.

    A couple of good books on this topic include,
    "Software Project Survival Guide by Steve McConnell"
    (Somewhat dry - but good reference book)
    First, Break All the Rules : What the World's Greatest Managers Do Differently
    (Not one of the typical management books - this one has some actual research behind it.)
    Microsoft Secrets : How the World's Most Powerful Software Company Creates Technology, Shapes Markets, and Manages People
    (A few good chapters worth reading)

    -- Anthony Barker, November 1, 2000
    Not to mention that programmers who are measured based on how late they stay at work will quickly figure out how to excel at staying late without being more productive (e.g. come in at 11:00 am).

    This article reinforces many great ideas from Frederick Brooks but, unfortunately, regurgitates a few tired stereotypes. Most programmers that turn 30, get married, have a few kids (that go to bed at 7:00), may as well resign themselves to being put out to pasture.

    Here's an idea. Instead of just assuming that it takes 25 hours a week for team coordination and build your management approach upon motivating programmers to work more hours, why not work to reduce the time it takes to coordinate through better management and more efficiency? Isn't that what management really is?

    -- Tom Wilson, November 2, 2000

    Dog-friendly offices may be great for dog owners / lovers, but aren't as wonderful for people with allergies or even those who just want to be able to concentrate on writing code without having a dog try to jump on their lap.

    -- Kevin Scaldeferri, November 2, 2000

    Add a comment | Add a link
  71. Repeating the Mythical Man-Month by herwin · · Score: 1
    Greenspun's arguments are very similar to those of Fred Brooks: almost all effective software is written by a small number of programmers, and if you want to have a productive organization, coddle your superprogrammers and work them to death.

    There are several problems with this model (speaking as a former superprogrammer at TRW, 1972-79):

    You can only identify most of your superprogrammers afterwards...

    There aren't that many of them. Organizations have to make do with the general population of programmers.

    There are a lot of programming problems that _nobody_ can solve. Don't throw superprogrammers at impossible problems.

    You _can_ develop a few superprogrammers if you're willing to spend the time. Most companies aren't.

    Most of them are interested in having a life.

    So, realistically speaking, you have to develop a way of managing that works for the average programmer...and sometimes they turn out to be superprogrammers.

  72. Re:Software 'engineering' is different because... by truthsearch · · Score: 1
    Does this information reside in your head? If so, then it is not engineering.

    It usually resides on paper (physical or electronic), but engineering is a process. Whether the end knowledge of what will exist later is created logically in one's mind or mathematically on paper, engineering is still the process of building.

    If this is solely in text form, it is trivial to prove that (unless the system is very, very simple) the text is incomplete, inconsistent and incorrect (i.e. does not reflect what needs to happen correctly). It will also be close to impossible to manage changes.

    It may be rare for software projects to run smoothly enough, but proper analysis and design can result in a product which looks and performs exactly as expected.

    What I meant by my last statement was that engineering, or the design process before construction has begun, must be done by any good developer. You can't code anything if you don't know what you're trying to make. You at the very least must have some idea of the expected outcome.

  73. Work != life by Elkman · · Score: 2
    It's not often that a management philosophy actually makes me mad, but this article is really getting under my skin. Why? He's making a bunch of wrong assumptions:
    • He claims that it takes 25 hours a week to get coordinated with other programmers and to understand the systems they're working on. So, he immediately writes this off as unproductive time. If someone really spends 25 hours a week doing overhead tasks, then the system is broken. If, on the other hand, researching the system and understanding how it works produces better code (or at least working code, as compared to broken hacks), then that research time is indispensable.
    • He claims that 70-hour workweeks are the key to profitability. Everyone else has already criticized this idea, so I'll just poke at it a little bit. I worked 70-hour workweeks once on a project because it was grossly underestimated and because we had a drop-dead date. Nobody in management anticipated the challenges of this project, and it had taken a long time to get designs finalized in the first place. Also, for most of us it was our first major project in C++ (this was back in 1991). Maybe it's possible to motivate programmers to do things this way for a few weeks, when they know the consequences. But to do this all the time, as a normal course of business? Any programmer with half a brain will see right through this.
    • He doesn't realize that programmers are going to have lives outside of work. Sure, it'd be nice to have a really cool office that has nice comfy chairs and entertainment facilities. But unless your developers are complete hermits, sooner or later they'll find hobbies, friends, and families outside of work. And they'll start to resent having a heavy workload that keeps them away from those things.
    • Cheap American managers are likely to read this article, think, "Hmm. Let's get those programmers in here 70 hours a week," and consider Greenspun's perks to be expensive frills that can be ignored, scaled back, or purchased and then eliminated when the stock price falls.
    • Software projects collapse. Companies fail. What would the legion of ArsDigita programmers think if the company suddenly went bankrupt, and all of their 70-hour workweeks were a waste?
    I've been there before: The company I worked for in 1991 spun off a division which became part of a joint venture with Amdahl in 1993. Several months later, they announced that the joint venture company was killing the project that I had been working on. They assured us that they needed all the people to stay with the company, and the CEO said, "And if anyone leaves the company, I'll be personally hurt." Well, with no product and nothing to work on, morale sunk like a rock, and several people left -- including me. And, just last year at this time, my previous employer was laying off developers left and right because our product didn't sell. For the people who weren't laid off, management wanted everyone to take a 10% pay cut until January, to be made up with stock options. I left the company soon after that, even though they wanted to keep me there.

    As a software engineer, I'm motivated by knowing I'm working on a quality product that people will find useful. I know I'm not going to be writing quality code if I'm on a 70-hour per week death march and resenting being overworked by an employer -- especially if there's a chance the company may go belly-up next year. My current company respects and rewards its employees' contributions, and that's worth a lot more than having a big-screen TV, a pinball machine, and comfy chairs.

  74. Re:Form a union! CPU: The Computer Programmers Uni by Anonymous Coward · · Score: 2

    It's simply not true that older workers can't get jobs. I'm 42. I visited a job fair here in Richardson, TX. Mostly telecommunications companies. My previous telecommunications experience is extremely limited, but within a week I had two interviews and two very attractive job offers with equity. And no, I don't plan or expect to work 80-hour weeks. Why was I able to get these jobs? Because I have a handle on OO and real-time development, and I can present that in an interview. I've interviewed dozens of developers over the past five years, some old and some young. An amazing number obtained a degree withoug mastering the basics of Computer Science. Another large set hasn't read anything since leaving school. These are the people who are whining about the unfair competition due to H1-B visas. Developers who have mastered the basics of the field, and who have kept up with new technologies have no trouble finding work.

  75. the whole MSIE team was about 30 people by pgreenspun · · Score: 2

    Microsoft is actually a good example of small teams, each person individually strong and working hard. For example, Netscape had nearly unlimited resources in terms of bodies. Microsoft crushed them and built a much better browser (IE) with a team of only about 30 developers.

  76. ArsDigita, h4x0rs h34v3n by Carnage4Life · · Score: 2

    They want to do something that will impress their classmates from MIT or UCLA or Caltech or wherever.

    MIT and Caltech must be really overrated if all it takes to impress the students who graduate from there is a job doing web scripting and 3 tier applications that any high schooler can do with PHP, ASP or Perl.
    Then again, maybe you guys simply hired the bottom of the barrel.

    If they get sick of it they can always join a slacker company and work 40 hours/week.

    Such as i2, Trilogy, Cisco or Microsoft, huh?
    <sarcasm> Of course, your hotshit web development shop makes these companies look like mom-N-pop shops. <sarcasm>

    The more I read about Ars Digita, the less impressed I am. From the trivial bootcamps and gross overpayment for monkey work (web scripting, pah) to the fact that some of you think using fuck in code is a mark of professionalism, I had mentally filed Ars Digita as yet another hotshit startup that won't last the next half decade.

    From the descriptions I've gotten of ArsDigita both from employees and boot camp attendees, the place is a hackers playground where and software engineering and computer science practices are paid lip service. Particularly amusing is the fact that you guys think that your online degree program which is merely a glorified course in Web Development is equivalent to a degree from MIT
    *LOL*

    Second Law of Blissful Ignorance

  77. we ARE the really expensive contractors! by pgreenspun · · Score: 1

    To answer your question... we've never hired contractors, unless you count the sysadmin geniuses at techsquare.com who got us started stably. And they are probably cheaper per hour than our Ferrari-driving, Cape house lounging, dual-LCD monitored employees.

    I don't think it is stock options that motivated our people. We worked harder at the beginning and we didn't have any stock options or dreams of getting rich. We just wanted to get our software out the door and into folks' hands (as of today about 10,000 programmers have downloaded ACS). We wanted to make our clients and end-users happy (the CEO of Siemens claims that the knowledge management system we built for them helped them win a $1 billion contract).

    Now that we have venture capital and stock options and dreams of an IPO, people are working less hard on average!

    1. Re:we ARE the really expensive contractors! by corecaptain · · Score: 1

      If you are saying that the company is compensating the average programmer enough to afford a Ferrari and a Cape house then there is no argument that working 70+ hours/week has its benefits. If you are talking about the *company* owned Ferrari and Cape house, then I think most people capable of programming a computer can figure out the dollar cost of these benefits (e.g rent a Ferrari and book a week at the Cape) and decide if adding these amounts to their take home pay equates to fair compensation for working 70+ hours per week. I also think stock options are a big motivator for the average person that doesn't already have millions in the bank. If they weren't, they would have long ago been replaced with gift certificates good for free pizza and beer.

  78. Is it really different? by cylcyl · · Score: 1

    Has anyone tried to compare software engineering to other, more mature, professional institution? Don't the best Doctors/Lawyers/Brokers produce more effectively than the average? How are they managed? Don't they have problems with working long hours? I don't have the answers but just thought that the questions should be asked. I agree the software engineering discipline is different from other industrial professions that have been workflowed to the minutia and broken up into assembly line pieces. But it seems to me that it perhaps is growing up and realizing that it is NOT an labor based industry, but rather an skill based profession.

  79. Re:70 hours is typical by kill+-9+$$ · · Score: 1
    Well said. You've addressed my sentiments on the industry exactly. Overtime once in a while is understandable and acceptable. I feel if one consistantly needs to work 50 or more hours (I feel even 50 is high) the group is either trying to bite off more than it can handle or is mismanaged and/or understaffed.

    Do the folks working 70+ hours a week, realize that their grandiose salarys are effectively cut in half (as is their expected lifespan potentially)?

    --

    -- A computer without COBOL and Fortran is like a piece of chocolate cake without ketchup and mustard
  80. The 40 hour work week by Veteran · · Score: 2
    Where did the 40 hour work week come from in the first place? Back in the early part of the twentieth century the question was asked: "what is the most efficient amount of time to work people at a job?" I believe it was the US government who funded a study of the question.

    What they discovered was that up to 40 hours a week the amount of output was proportional to the number of hours worked. Beyond 40 hours that was true only for about 2 weeks. After two weeks the amount of work being done fell back to the 40 hour level - no matter how many hours were worked. All of the people working over time in the study thought they were doing more work - but when their production was measured it turned out that they were not.

    Granted the study was of clerical workers - not programmers - but people are people. There may be statistical variation from one person to the next - but on the average 40 hours is the optimum time for most people. Yin and Yang qualification: mostly the results are true - but for some people they may be false.

    In general most people working longer than 40 hour weeks are just kidding themselves - they really aren't getting much more useful work done than they would in a concentrated 40 hour week.

    Work is more like a marathon than a 100 meter dash; it is not about brief sprints - it is about setting a pace than you can maintain for a long time. You can only sprint for so long - then you have to slow down to a long distance pace.

    I would like to point out the the US was on the winning side in W.W.II and beat the Soviet Union to the moon - all on 40 hour work weeks. If you honestly believe your project is more pressing than either of those I suggest that maybe you are suffering from a lack of perspective.

    1. Re:The 40 hour work week by Veteran · · Score: 2
      I was not putting forth a theory of perspective.

      A difference in perspective occurs when two different people view the same thing; they both can't be in the same place at the same time so they both have a different perspective.

      Thus in order for there to be a perspective difference we have to both be talking about the same thing. We are not talking about the same thing.

      I am talking about forests you're trying to discredit my comments about forests by saying something about individual trees . I am discussing principles you're talking about concrete examples; which are two very different things. That is not a perspective difference - that is a difference in level of understanding.

      How silly would the president of a company look saying "Ask not what your company can do for you - ask what you can do for your company"?

      You are the one demonstrating perspective illusions: things in your life look big and important to you because they are near to you. Hold a quarter at arms length and it appears to be bigger than the moon - put them at the same distance and the quarter is invisible. Your job might look as important as the moon shot to you, but that is because you view your work from a very close perspective; to humanity as a whole your job is invisible. If you think that your job is as important as the Apollo project you have a distorted perspective.

    2. Re:The 40 hour work week by Veteran · · Score: 2
      No, it is Yin and Yang; for the most part when people state truths there are exceptional conditions which violate those truths.

      What you are doing is hoping to discredit the truth of what I said by pointing out those Yin and Yang exceptions.

      That sort of tactic only works if the people reading these comments believe that we live in a black and white non Yin and Yang world. In the past such techniques were successful: people didn't realize that Yin and Yang is how the universe works - but as Western minds wake up to reality - tactics like yours will be less and less successful.

  81. Re:Well I'd better retire by d^2b · · Score: 1
    The articles I put on my various Web sites are not intended to help people who just want to live a quiet comfortable life (I'm not an expert on this). They are intended to help young people turn into Linus Torvalds or Richard Stallman or Dan Bricklin and Bob Frankston (Visicalc).

    Yep, I've heard of them. Who are you again?

  82. Compensating for poor management by codemonkey_uk · · Score: 2
    This long hours thing sounds like compensation for poor management.

    1x 70 hours at $70k costs the same per man hour as 40 hours at $40k, if the amount of work that neads to be done exceeds what can be done by the available staff in the available time then they nead more time or more staff.

    If Greenspun advocates pushing his staff into doing more hours over hiring more staff this implys that overworked staff are more productive than more staff.

    The effectiveness of programmers is reduced when they work long hours (this has been proved by independant research.)

    Therfore, this implys that his organisation cannot cope with larger numbers of staff, that is, the managament can't do their jobs and are failing to co-ordinate their staff effectivly.

    Ergo, poor managament beeing passed off as good mangament.


    Thad

    --

    Thad

  83. Re:Leaving @ 6:00 p.m. by MrBlack · · Score: 1

    I couldn't agree more. Greenspun has his head up his arse on this one. The XP people maintain that if you have to work MORE than a 40 hour week for 2 consecutive weeks then it is a sign that something is wrong with the management of the project. I love programming, but there are lots of things I love more, like spending time with my family. Also, on another not - isn't Greenspun the "one you publish something on the internet you should never remove it. Broken URLs will be punished by death" Guy. The URL for towzone (http://towzone.arsdigita.com) was broken. What gives?

  84. Yes, 70 hours by The+Pim · · Score: 2
    Phil wasn't talking about how to satisfy the programmer who just wants to pay the bills so that he can fulfill himself with family or other interestes. They shouldn't work for Phil. Nor should anyone force them to.

    Phil was talking about how to get the best software out of top programmers. The answer is to motivate them, make them comfortable, and encourage them to work intensely. How many hours per week do you think the top 10 Linux developers work? How about OpenBSD or Perl hackers? Do you hear them complaining?

    Perhaps it's not possible to motivate programmers to work hard on some tasks. Maybe some software (or the companies that write it) is just too boring, and will inevitably be done by 9-5'ers, who may not get as much done, but are lower risk and easier to manage. Those of you protesting should take consolation: there will always be a place for you. However, you may never realize how fast good software can be written by small teams of top programmers working intensely--and how exhilarating is the experience.

    PS. If you really find this hard to believe, find some people working for ArsDigita and ask them how they like it. I have a friend there who describes the experience as "addictive".

    --

    The evaluation of an action as 'practical' . . . depends on what it is that one wishes to practice.
    1. Re:Yes, 70 hours by overshoot · · Score: 2

      Those of you protesting should take consolation: there will always be a place for you. However, you may never realize how fast good software can be written by small teams of top programmers working intensely--and how exhilarating is the experience.

      A flat-out run down a double-diamond slope is exhilarating, too. Even with a break to go back up the lift, though, you either take time out for lunch or you're going to be one of my (ski patrol) customers.

      Hardware is more my field, despite the CS degree, but we spend our share of wild creative rushes and there's nothing new about the pressure-cooker style of project management (read Tracy Kidder.) Until very recently the Wisdom was that those of us over (30-35-40-45; you pick one) were past our prime and due for replacement by those younger, childless, and more willing to put in the hours.

      A funny thing happened. The industry seems to have woken up one morning and realized that after 30 years of steering projects through rocks (and all too often running into them) we Old Farts just might know some things that the fresh faces don't. Such as that the biggest risks to a project aren't technological, they're human and that the people on your project are the same version 1.0 types who built the Pyramids.

      PG might want to seriously consider that his software-management style absolutely depends not on taking time to do things right but always being able to do them over. When your production is bits that might sound reasonable, but when it's measured in kilotonnes of steel or requires a half-million in mask tooling you had damn well better get it right the first try more often than not. For that, I want people who are rested, awake, and not already 95% gone on to their next Artistic Creation.

      --
      Lacking <sarcasm> tags, /. substitutes moderation as "Troll."
    2. Re:Yes, 70 hours by The+Pim · · Score: 2

      I know well that if I don't take lunch, my turns are going to get sloppy at the end of the day. But human physical limits are much easier to reckon than mental limits.

      A study that says "programmers are less productive past 40 hours" is probably talking about a random assortment of programmers working on projects in which they have little personal interest, in an environment where they don't feel especially valued. Phil is talking about starting with people who have demonstrated strong mental capacity, and handing them a challenge and a sense of ownership. My direct experience tells me that many of them will want, and be able, to work 70 hours a week without ill effect. No pressure-cooking, whip-cracking management involved.

      It's not for everyone, every project, every situation. If you (as a project leader) have mediocre or unenthusiastic programmers, or are not willing and able to inspire, empower, and accept some risk, forget it--go back to defensive projecting, long design cycles, and 40 hour weeks. These get the job done. But when you assemble the elements that make bright hackers want to throw themselves into the project, it's like a powder day versus New Hampshire ice.

      --

      The evaluation of an action as 'practical' . . . depends on what it is that one wishes to practice.
  85. Re:Happily discarding decades of Workers' Rights.. by DeadSea · · Score: 2
    That is when you quit your job and live off your bank account for a couple years. Do some traveling, work on a couple programming projects for fun.

    You are saving half your income so that you can do this aren't you?

  86. Three Little Words... by JimPooley · · Score: 1

    Bollocks to that!

    Hacker: A criminal who breaks into computer systems

    --

    "Information wants to be paid"
  87. You're right by CorporateProgrammerD · · Score: 1
    Yes, there is a difference between corporate IT and the "real world".

    In the corporate IT world, fast and furious coding that produces workable but unmaintainable code will cost more money in the long run. Total Cost of Ownership matters more than deadlines.

    In the "real world" it doesn't matter if the stuff blows up in a year and can't be fixed, it will be replaced anyway (either that, or you've moved on to your next startup for those big IPO $$, so it's not your problem anyway) And yes, Time To Market is King.

    --
    To email, do the obvious.
  88. REBUTTAL by Shotgun · · Score: 2

    the average programmers will consume nearly their entire work day just in reading and understanding the new code generated by the good programmers

    If the project was being run correctly, the average programmer wouldn't be reading the good programmers code at all. Ever heard of code-by-contract? How about object-oriented code? I don't have to dig down and understand the code in glibc, because it is in a fucking library. All I need to know is the function name and its parameters. If I'm having to read code in order to use it, it wasn't written be a very good programmer at all.

    It is easy for an office to beat the home on the social dimension,...

    Not unless the company is hiring some freaky women to come in a couple times a week to provide certain services that are illegal to be provide for pay in most of these united states. Playing pinball just doesn't compare the games me and my woman play.

    One of the main points of the ad was to ridicule the cheap open-plan offices in which programmers were traditionally housed and promote the fact that at Microsoft each developer gets a plush personal office.
    .
    .
    .
    An open office plan contributes to making the work environment stronger on the social dimension.


    This lack of internal consistency amplifies another one of his points.

    In the long run it is impossible for an organization to be excellent in one area and mediocre in all others.

    If you see one of your best people walking out the door at 6:00 pm, try to think why you haven't challenged that person with an interesting project. If you see one of your average programmers walking out the door at 6:00 pm, recognize that this person is not developing into a good programmer. An average programmer's productivity will never be significant in a group of good programmers. If you care about profits, you must either come up with a new training program for the person or figure out the best way to terminate his or her employment with your organization.

    This is beyond the pale. I'm up at 6am exercising. I drop the kids off at 8am and arrive at work by 8:30. Put in my 8 hours and leave at 5. If I am to be rested the next day, I need to be in bed by 10pm. This leaves a total of 4 hours a day to devote to the next generation of programmers, let my wife know that she isn't a single mother, and maybe play at one of my many hobbies that are generally ignored. Greenspun can kiss my ass. Excuse the french, but that is as polite as I can put it. If my company (which is realistic, BTW) installed a pool table, rock wall, garden, grand piano, etc, they would all be summarily IGNORED. This is work. I do it to make a living so that I can spend time with what is truly important.

    If my manager challenged me for walking out after having been at the office for 10 hours, then he won't have to ask himself anything. I will ask him to kiss my ass. I've done it before and I'll do it again.

    And just in case it wasn't clear before, Greenspun and all of you "keep 'em entertained while we work them to death" managers can KISS MY ASS!!

    --
    Aah, change is good. -- Rafiki
    Yeah, but it ain't easy. -- Simba
  89. Re:Leaving @ 6:00 p.m. by remande · · Score: 3

    Frankly, some of us get our twelve hours of work in in eight hours. When I'm up to speed, I can't work useful overtime. I will work seven or eight hours, because that's how long it takes me to get mentally exhausted. Working longer is a waste of my time and their money.

    --

    --The basis of all love is respect

  90. Re:Wrong assumption to start with by willis · · Score: 1

    I think you might be an exception, rather than the rule. In any case, I eny the junior programmers on your staff -- you seem like a quality manager.

    --

    there is no thing
    what else could you want?
  91. Re:Leaving @ 6:00 p.m. by KenSeymour · · Score: 1

    I have never worked 70 hour weeks.

    I don't understand why anyone with programming skills would put up with 70 hour weeks.

    I have bee in the business 20 years and the vast majority of that time was 40-50 hour weeks.
    In a crunch, I occasionally worked 60 hour weeks.

    But I never work for startups and I find that contracting (and getting paid for every hour)
    tends to prevent 60 to 70 hour weeks.

    --
    "We can't solve problems by using the same kind of thinking we used when we created them." -- Albert Einstein
  92. Re:Frankly, I'd rather depend on the Easter Bunny by abe+ferlman · · Score: 1

    Unions don't just make your work experience better, they make it lesser.

    What I mean is, organized labor can demand a work week of 40 hours/week averaged over 7 weeks if the management demands seventy hour work weeks. Individuals can complain and be quietly fired, but an organized group can demand and expect results.

    I'm not saying a union should run your job, I'm saying that the goals of programmers and management are sufficiently at odds with each other that smart techies will organize.

    If you live to work for someone else, then your right, I'm interfering with your life, but most of us work so that we can live our OWN lives.

    --
    microsoftword.mp3 - it doesn't care that they're not words...
  93. Everything I know about management I learned from by TarPitt · · Score: 1

    To get a dog to behave:
    - Establish your authority as lead dog. Show confidence and leadership.
    - Only ask the dog to do something they understand. "Sit" works very well. "Find the prime factors of 54,239" won't.
    - Give the dog a reason to perform. Positive reinforcement works better than negative. The dog will be more willing to perform to a snack
    Substititue "stock options" for "doggie treat" and this will work with humans as well

    --
    If your children ever found out how lame you are, they'd murder you in your sleep
  94. Re:Working hours... by remande · · Score: 3

    We had that poll. IIRC, most of us work "Hemos".

    --

    --The basis of all love is respect

  95. nice try but... by samantha · · Score: 1

    Working 70 hours a week means you have zero time for anything else but your code. I believe in the power of computers to change the world but how many jobs allow you to do just what you believe is needed in programming to effect such change? I care about more things than just writing code to maybe make the house-of-cards balancing of a bunch of requirements, most of which I don't care about at all, more productive. I have a life. I think there are other things besides designing and coding software that I can and need to contribute to. In design and coding there are many projects I believe fully need my talents that do not pay the rent. So there is no way I will spend 70 hours a week on just the ones that do.

    I've been in this business for 20 years and I've been in periods of up to 98 hours a week of work at times. They make you extremely burnt out and very grumpy with lesser mortals. I am not sure the extra code was worth it. I'm sure a couple of relationships blown up in the process were not worth it. Generally my co-workers have not enjoyed me when I was in such modes and management had quite mixed feelings.

    Just putting in a lot of hours is a macho cowboy-coder thing. I've seen people be really proud of all the sweat and glory and produce utter shit. Sometimes you have to walk away and flush the mess and being willing to start over in a calmer manner. As I get older I notice I write less code per day (generally) but the code I do write is a lot more densely packed with capability than when I was churning out a lot more LOC.

    If you give me a manager that wants to check up on me once a week then I'll give you a manager who is looking for a new hacker. I will give a set of deliverable dates and meet them. Anything more is juvenile non-professional BS. If it takes that kind of micro-managing then someone failed to define enough of what was needed and what the connections were between subsystems upfront. I can see turning in a progress report every week or so at the very most. Even that is sort of silly as most really good hackers I know (including me) do not work linearly. Check so often is about as useful as monitoring a fine artist or a poet every week.

    With reasonable video-conferencing ability there is no need for a company to spend mega-bucks to make a nice centralized pen for its programmers. There is no way any company I've ever worked for would give me all the goodies I have in my current household. If productivity is the name of the game then why in the hell would you burn programmer hours driving to and from work?

  96. Re:it wasn't supposed to be the last word by arsjoe · · Score: 1

    Unfortunately working for and with one's bosom pals is not what the larger world of corporate productivity is all about & it is true that a large number of people working in this environment are not addressed by Mr. Greenspun's article (& there is no reason why it should). And that is what management is all about - bringing together people from diverse backgrounds, skills sets & levels of skills & aptitude to make them perform towards common goals. All this may not figure in the management of a company catering to a niche market, but a part and parcel of the reality that most corporations struggle with. Every management would love to assemble a slim and lean team of dedicated & mutually communicative professionals, if only they could !!! Nothing wrong with aspiring for this noble goal. But this commitment of mutual dedication does not hold once the size of the team reaches a certain critical mass. Enforcing 70 hour work weeks is not possible in an open society (which is what happens when you start employing from a wider group of applicants) - as opposed to say dragging them into 'cult programming'. Ars Joe

  97. Re:Well I'd better retire by ChuckDivine · · Score: 2

    A few years ago I read an excellent book on sleep deprivation -- "Sleep Thieves" by Stanley Coren. It got me to thinking about work weeks. I sketched out a reasonable weekly schedule:

    • 8 hours sleep/day or 56/week.
    • 2 hours/day devoted to eating (includes preparation, cleanup) -- 14 hours/week.
    • 1.5 hours/day exercise (includes changing, showering, etc.) for 6 days/week -- 9 hours/week.
    • 1 hour/day commuting to work.

    This adds up to 84 hours/week. Even before you've spent any time at all at work, you've used up half the week. Think you don't need that much sleep? Read the book I mentioned. Sleep deprived people literally murder patients on the operating table and blew up the Challenger. Think you don't need exercise? Ask your doctor. Spend time with friends and family, routine errands, etc. and more time is gone.

    Consider now what the various work weeks really mean:

    • 40 hours -- This leaves about 3.5 hours/day during the week for other activities than work and two full days away from work.
    • 60 hours -- only 1.5 hours/day for "other" and one day off. Doable if you have a full time servant (the "wife" back in the 50s) to take care of you and all the other pesky things in life (like children, grocery shopping, etc.).
    • 80 hours -- essentially no time left for anything else but work. No days off.

    The long work hours phenomenon is a relatively recent phenomenon. Two centuries ago (not long in the span of human civilization) people did not have electric light. Pratically all human activity was limited to daylight hours. Back then people did accomplish some very remarkable things. For example, starting the United States, learning much about the universe, creating great art.

    A final note: people have incredible abilities for self deception. When I hear people bragging about how much they've accomplished by working long hours, I wonder if it's true or they're just deluding themselves. Remember, people in the Soviet Union also deluded themselves about their accomplishments for literally decades.

    --
    "Beer is proof God loves us and wants us to be happy." -- B. Franklin
  98. Re:Spot on but for the hours by CaptainCap · · Score: 1

    The guy needs a really good editor before his stuff can make enough sense to analyze for cheap shots and defensiveness. I reread his article last night because I began to wonder if it is supposed to be parody. I still can't tell.

  99. Re:Wrong assumption to start with by Lando · · Score: 1

    20 years of development under my belt, but just started my own company... We'll see if I'm right or not in the next couple of months... Grin

    --
    /* TODO: Spawn child process, interest child in technology, have child write a new sig */
  100. Re:70 hrs/wk implies non-creative work by tylerh · · Score: 1

    HI Pim,

    I basically agree with you. But in my experience, the "all night hack session" is usually about implementing a creative idea conceived previously. Also, I have done creative work during a burst of 70 hr weeks -- but I find this utterly unsustainable.

    My point is that a management focusing on 70 hour weeks instead of effective solutions is a management coercing you into "implementation" and away from "creativity."

    --
    "one treats others with courtesy not because they are gentlemen or gentlewomen, but because you are" --G. Henrichs
  101. Re:Do they only hire people with no social life? by brad.hill · · Score: 2
    I have a social life, and I would still appreciate having a more entertaining and person-friendly work environment.

    For example, I live more than an hour's commute from my workplace. I often have social activities near work in the evening. It doesn't make sense for me to go home in the interval, and I'd love to have a couch to nap on or a video game or pool table to play with until my dance lesson or date begins. I might also get some more work done if I could relax for a bit and get refreshed instead of burning out and just working through like a zombie until normal quittin' time.

    I also consider the people I work with to be my friends and think tha you should be able to work in an environment where you LIKE going to work. Not that you should do it to the exclusion of family or other things, but liking your job and considering your coworkers your friends doesn't make you a loser. Work is a part of my life, not something I do so I can have a life. Making it more pleasant and fufulling isn't a ploy to steal from the other things I do, it's making that eight hours a day away from my family, friends and hobbies worthwhile in and of itself.

  102. no, we're not lazy... by TheBahxMan · · Score: 1
    Why should managing software engineers be any differnet that anyone else? What makes us so special? Do we HAVE to work for 24 hours straight? No. Do we have to have break rooms with poosball tables or a PS2? No, but its nice. My father has worked everyday since I've been alive, rain or shine, cold or warm, building HUGe houses in my home town. Why doesn't he get a nice breakroom with a foosball table when he's actually doing somthing physical all day long. Programmers don't get tired, they slack more and more as the day goes on. PLBTH!

    1. Re:no, we're not lazy... by BMazurek · · Score: 3
      Why doesn't he get a nice breakroom with a foosball table when he's actually doing somthing physical all day long. Programmers don't get tired, they slack more and more as the day goes on. PLBTH!

      Because the work is different.

      I've worked as as a in a saw mill and as a garbage collector, and 6 years in the software industry. Manual labour is different. I enjoy both.

      Writing code is fun and allows creativeness. But often when I go home, I don't want to do a heck of a lot.

      Manual labour can be fun, in that you can let your brain go into neutral. You come home physically exhausted, but you feel good. You feel like doing other things.

      Someone working at a computer needs different kinds of breaks compared to people performing manual labour.

    2. Re:no, we're not lazy... by RickHunter · · Score: 1

      Which is why having a social life is such a handy thing. I'm still only in university, but I find that taking a break or heading off somewhere with friends for a couple of hours, then coming back to a project will usually let me do much better work than spending hours on end putting it together all in one chunk.

      The thing is that, like almost everything in CS, managing programmers is still a developing field. Its going to take a while before people start working out how to do it best without destroying the programmers, but one thing is for sure. 70 hour weeks is not the right answer.
      -RickHunter

    3. Re:no, we're not lazy... by coryboehne · · Score: 1

      exactly, the only question is which do I enjoy more?

    4. Re:no, we're not lazy... by jallen02 · · Score: 1

      So true, anyone with any mental capacity can do a reptative mental task over and over and over you dont need much of a break to maintain productivity you dont have to solve anything beyond what to do next and gee guess what its the same thing youve been doing

      Whereas, every day you run a mental jungle gym and without *SOMETIHNG* in there to help refresh your brain and distract you (at least with a guy) you know smaller problems to help you solve the bigger problems, you arent going to achieve a very high level of proficiency. As you go your mental capacity to solve problems increases along with your logical skills period so that maybe some tasks you dont have to think so hard about any more, however most of my days im faced with challenging problems still and I enjoy a quick 10 minute break of nailing my boss with pennies and whatever else comes close to hand... Or walking around the office making fun of people going down the one way street the wrong way (owch), whatever just anything to distract you for a little while, its required.

      Only like the most focused inidivduals can deal with no breaks, and honestly ive only met one programmer who did that, and I still wondera bout him so, nuff said.

      Jeremy

    5. Re:no, we're not lazy... by ucblockhead · · Score: 5

      What a lot of people don't realize is that programming is hard work. Brain work. People don't realize that the brain is just like a muscle. It gets tired. It needs to be stretched. Most of what is called "play" here is the same as stretching muscles. You've got to do it, or you'll get a brain cramp. And that's not fun, if you've ever experienced it. After a long coding session, your brain locks and suddenly a trained monkey could do better than you could.

      Anyone who has coded a long time has had the experience of having a hugely frustrating problem, going off for a movie or a nap or whatever, coming back, and fixing the problem in a few minutes of coming back.

      Of course, you've got to make sure you do real work too. Twenty minutes playing videogames can boost productivity tremendously after a long session. Three hours of videogames is obviously just slacking.

      This is one reason like coders like visceral twitch games like Quake. They allow us to turn off part of the brain and limber up for a while.

      --
      The cake is a pie
    6. Re:no, we're not lazy... by TheBahxMan · · Score: 1
      I agree, that using a game like Quake to 'limber up' the brain is a fine idea, however a better idea would be, for instance, taking a walk, reading the newspaper, taking a nap, going to the gym. A healthy mind requires a healthy body, something I have noticed many programmers have the time (use your lunch break!) but lack the initiative. I'm in my first semester in college and I'm glad the school I'm attending requires fitness classes. I was on my way to 300 lbs and now I'm building muscle and I've lost the gut. I have more energy than I know what to do with, and when I program I do it faster and in a way that makes more sense. Not only will being fit and healthy improve the way you function, but god forbid some of these programmers actually get outside and enjoy whats left of our world. For christs sake take a sunday drive to the top of Glorieta Baldy!* *(or whatever your local mountain may be...)

  103. your confusing Microsoft with the industry by q000921 · · Score: 1
    It's true that parts of Microsoft may develop that way, but that's unrelated to my point. You are confusing Microsoft's internal development methods with the development methods that they are marketing and targetting for their customers.

    Microsoft's internal development style is atypical for the industry. In fact, many of the core groups in Microsoft don't use the bells and whistles of Microsoft's own tools. The industry buys Microsoft products because Microsoft promises them that they don't have to develop in the kind of style you advocate and that they use internally.

    But, by all means, if you are Microsoft and you are out to "crush" a company like Netscape, and the consumer be damned, go ahead and adopt Microsoft management strategies. Most companies, however, aren't Microsoft, not in size, not in cash resources, not in distribution channels, not in ability to hack the OS, not in available stock options, and not in hiring possibilities, and most companies have different goals and competitors, so it is unlikely that adopting Microsoft-style management will work for them.

    (Nevertheless, small teams and focus are, of course, important for successful development, and Netscape did make many mistakes.)

  104. Spot on but for the hours by MosesJones · · Score: 5

    I agree with the lot, the only one is the number of hours. The myth that more hours = more top quality code. Brook's says it, Peopleware says it, almost every study made says it. Reduce the communication between teams so teams are more productive so can work lower hours and thus be able to concentrate more and create better code.

    Everyone thinks that they are more productive in 4 x 100 hour weeks than 4 x 40 hour weeks. But the fact is that in week 4 you are destroying the project with your lack of concentration, and in the other you are still productive.

    Its still like herding cats though.

    --
    An Eye for an Eye will make the whole world blind - Gandhi
    1. Re:Spot on but for the hours by Kierthos · · Score: 2

      More hours definitely does not always equal better code. I believe it was Microsoft who planned to have world-wide programming on a project going 24/7, with each group of programmers ending their work day by sending the code they had written to the next group of programmers who were just starting their work day. It failed horribly, obviously, because so much time was spent dealing with understanding the code the other guys had written, dealing with differing programming styles, and of course, having to deal with the MS proprietary code, which must be horrid to begin with...

      It is far easier to get good code by not over-working your people. If they want to work 70 hours a week, that's fine for them. But more and more businesses are insisting that their programmers have a social life so they don't get burned out and move on. It's pretty savvy of the businesses, as they look better in the eyes of their employees and can retain their workers. Because as we all know, nothing tanks the productivity of a project like having to hire people to fill the group up. Mmm... re-training in the middle of a deadline... such fun...

      Kierthos

      --
      Mr. Hu is not a ninja.
    2. Re:Spot on but for the hours by Zachary+Kessin · · Score: 2
      By making people work 60+ hrs/week or hell even 50 you are mostly creating burnout. First of all most people can't do that forever, one week every few months sure, every week, no. And we are responsable for it as for years we have been willing to work 70 hr weeks without complaint or extra money.

      I have a life thank you very much.

      The Cure of the ills of Democracy is more Democracy.

      --
      Erlang Developer and podcaster
    3. Re:Spot on but for the hours by CaptainCap · · Score: 1

      Well, one definition of "really focused" would be planning my productivity from the start. (Also, my definition of "death" is "dead", not "laid off by 28 year-old snot-nosed CEO"). I work in Silicon Valley and searching for my current job I took the time to be sure my prospective employer was not completely screwed up. It's easy to get caught up in the goofy hype of this article and overlook reality, but you need to stay focused when looking at an employer. Do they really, really, know what they are doing? Look at that article again. Staying late because it is more fun than going home to a family? Going to a ocean side vacation house in order to work there on the weekend? Hoping that the worker has a crummy apartment so they will want to stay at the office? Oh, but they failed to figure out how much space they would need for 2 21-inch monitors on the office desk? And Microsoft was smart to give their workers offices (don't know if this is true), but Mr. Management settled on optimal cubicle size and distance between desks. Look at the article again, it is either parody, or stupidity. I think a lot of people have just decided that all employers are nuts or stupid, and just plan on getting a big salary for a big work life. Except the only guaranteed part is the work life. Actually the hype is easy to use to your advantage when looking for a good job; managers will BRAG about the stupid work conditions and work rules, or you can see that their plans don't match their situation. Of course, lots of kids don't recognize these contradictions, and that is one reason young people are "fueling" these companies. I preserved my productivity by avoiding these kind of loser companies after the first interview, but the search was 3 months long and very depressing. Now, you might say that those companies wouldn't have hired me anyway. Don't know, don't care, I've got a real life. (Maybe I will check on how many of those places are still in business). Where I am now, I work 40 hours a week, my young manager and young and old co-workers appreciate my knowledge and productivity. In turn, management is organized so that there are a mininum of planning and status meetings and there are genuine quarterly performance reviews, no crazy, inaccurate scramble at the end of the year. Yes, I have time to check on Slashdot (although I don't put that on my performance review).

    4. Re:Spot on but for the hours by ucblockhead · · Score: 5

      The problem is that managers get misled into thinking that this works because it does, for a month or two. For the first couple months, you can bang out eighty hours weeks producing top quality code. Then your productivity falls until you have to stay there eighty hours just to do what you normally could do in forty. And then it keeps falling.

      The average person can only work 40-60 hours a week without burning out. It is very bad to plan otherwise. And I suspect that in a lot of cases distributing lots of cool toys means that the coders are there for eighty hours but perhaps working for only sixty. That's not a bad thing...

      Hell weeks with long hours should be saved for important deadlines. You want people relatively rested so that when emergencies hit, you can throw things into overdrive and become a hero. Otherwise, you'll find that when crunch time comes, you've got nothing left. Never sprint in the first mile of a marathon!

      --
      The cake is a pie
    5. Re:Spot on but for the hours by KagakuNinja · · Score: 1

      Agreed.

      I'm only half way through this, but it is one of the best articles on programming I've read.

      A personal perspective: I think I am insanely great (and even have some evidence to back that up). In my new job, the lack of ownership is turning me from an excellent performer (last job) to an average performer (this job). On the other hand, I have plenty of time to read /.

    6. Re:Spot on but for the hours by pvera · · Score: 1

      The more hours you work in a row the more the wear and tear on the programmer. Any programmer can work 50-hr weeks indefinitely but once you go over the 60-hr mark you are starting to wear down the programmer.

      The other problem is that programmers that are salaried don't see jack until and if they get some kind of bonus. Back when I was a network controller I got paid for every hour I worked, but now that I make twice as much I get paid the same for 40-hr weeks than 70 hrs. And the inflated salaries are a myth.

      Earning $70,000/yr sounds kickass until your 6th weekend in a row programming and you start turning in timesheets with more than 130 hours in a 2-week pay period.


      Pedro

      --
      Pedro
      ----
      The Insomniac Coder
    7. Re:Spot on but for the hours by pgreenspun · · Score: 2

      Peopleware has some useful advice but it is fundamentally about corporate IT projects where there isn't any competition. In the real world (cf. Silicon Valley), a few months of slippage can very well mean death. The competition may not necessarily be devoted to the 40-hour week. I find it interesting that so many people on Slashdot advocate a short working week because their family time is so precious. These are the really focussed workers who get everything done in 40 hours and then go home to accolades from their grateful coworkers. How exactly do they maintain their productivity at work? Apparently by surfing Slashdot :-)

  105. Re:Well I'd better retire by Linux+Ate+My+Dog! · · Score: 1
    But the programmers with whom I hang out long to do something innovative and creative, to solve a problem that nobody has solved before.

    The articles I put on my various Web sites are not intended to help people who just want to live a quiet comfortable life (I'm not an expert on this). They are intended to help young people turn into Linus Torvalds or Richard Stallman or Dan Bricklin and Bob Frankston (Visicalc).

    By making them create websites to sell dogfood faster? Wow.

    The interesting thing about the three people you mention is that the core of their projects were not subordinate to somebody else's stock options or balance sheet.

  106. btw, ArsDigita.com is still slashdotted by cpeterso · · Score: 2
  107. 70 hour weeks by darkworm · · Score: 2
    I guess it depends what programmers you are talking about. Some people love programming for 70 hours a week. Ok, I wouldn't do 70 hours a week, I have a life. But for people that can code for that long, and produce good software a high salary is and should be given.
    There are some programmers who do a 9-5 and write shitty code, and they get paid a hell of a lot more for programming in VB than the people that code in C/C++ on worthwhile projects, like enterprise solutions and not a frontend to allow someone to print a document in Win95.

    -- "Hey Bob, come look! I've never seen a penguin so small!"

    1. Re:70 hour weeks by motek · · Score: 1

      You follow common myths:
      1. VB programmers are idiots, who write shitty code, whilst worthwile projects are written in C/C++.
      2. There is something bad in 9-5
      3. Frontend is of lesser importance.

      I argue that:
      1. Language used is not of the essence.
      2. I do mind having to work on improving shitty code written by someone on 9-5 basis. However, I would rather have this that to get stuck on shitty code written by a hard working guy on "70 hours week" basis. There is nothing worse then idiots with initiative.
      3. Front-end is something of utmost importance as it decides how a user perceives the program. Neglecting UI is neglecting the user. Programs are for primarily for users.

      By the way: 'worthwile enterprise solution in C/C++' - nowadays approaching 'enterprise solutions' with C/C++ should be considered industrial sabotage.

      -M-

      --
      I would like to die like my grandfather did - sleeping. And not screaming in terror, like his passengers.
  108. Kary Mullis by __aadkms7016 · · Score: 2

    Kary Mullis won a Nobel Prize for a non-trivial accomplishment (PCR, a common molecular biology technique) and worked 40-50 hour weeks at a biotech company during the entire project. And its interesting to note that in the case of PCR, it was a problem domain that was pounded by many 70-hour-weekers without success.

  109. Re:so much for phil's scalability by mayoff · · Score: 1

    The web site was slashdotted because we tuned it very poorly. Thanks to slashdot, we had the opportunity to discover that and fix it. If you don't think AOLserver and Tcl can scale, you're not paying attention, because AOL uses the same tools to serve 2.5 billion hits per day.

  110. Picture life as a set of juggling balls by KarmaChameleon · · Score: 1

    This was an analogy I heard a while ago at one of my sisters' graduation. I don't remember if it was attributed to anyone.

    The basic idea is that life is five balls: family, friends, self, love, and work. In life you must juggle all five but he work ball is made of ruber... if you drop it, it will bounce right back. The other four are made of glass and you must be very careful to balance them as they will take a long time to repair if you drop one of them.

    It sounds corny but at the time it helped me make a few difficult decisions about work and now I'm more successful yet happier in all other aspects of my life.

    kc.

    --

    kc.

    "You'll have to speak up, I'm wearing a towel." - Homer J. Simpson
  111. Huh? by SethD · · Score: 2

    Wait..... isn't that fuzzy math?

  112. It's _not_ that way @ aD. Honest. by aD+docwolf · · Score: 2
    I've been watching this thread unfold throughout the day, and I think that many people are getting the wrong impression of the way programmers work at ArsDigita.

    I handle developer relations for ArsDigita, both internally and externally, and thus am in the position to monitor the culture that's evolving here quite closely.

    The scenario that Philip describes in his paper closely resembled the way that ArsDigita ran during its "startup phase". Insane hours, put in by a small core of individuals. Were these people putting in 70+ hours a week? Absolutely. Is this an unbalanced lifestyle? In my opinion, Yes.

    ArsDigita has now cracked the 230 employee mark, and I can assure you that we _don't_ force people to work 70 hour weeks. Many people will put in a significant amount of time here at work, because they _love_ their jobs. It's their choice.

    Our CEO stresses a healthy mix of work + play. I have yet to receive any bad reviews or cat-calls for walking out of the office at 6:00pm, nor have I seen anyone tagged as "lazy" who does the same. It's not about the time you spend at the office, it's about results. Period.

    Hope this helps. Adam.

  113. A better way by GutterBunny · · Score: 1
    Greenspun goes on about ownership & long work weeks. If you want to learn about a better way to do your work and be productive, check out some of the stuff by Kent Beck and Ron Jefferies and others on . XP (Extreme Programming)

    It takes a lot of what Greenspun says and turns it on its ear.

    --
    managers...why god invented purgatory
  114. Just Remember by lw54 · · Score: 1

    Work to live... don't live to work.

  115. I think... by Sheeple+Police · · Score: 1

    that Greenspun should stick to managing our economy instead of managing our software engineers.......

    Nah, in all seriousness, the article is interesting, but according to what I've heard, isn't middle management supposed to be heading down south? Then why an article on managing programmers in a journal like ArsDigita?

    However, I did have some issues. For example, Greenspun implies that programmers are naturally arrogant, saying that either the bad programmer is so bad that he's unwilling to accept good ideas, and that the good programmer is so good that he assumes that his idea is the best. That seems to be a bit harsh on the programming community.

    On the flip side, one of my favorite comments was the one that read:
    We thus proved the management adage that a deadline just gives someone an excuse to procrastinate and do nothing until the very end. .... So true, so true

    --

    Information is the catalyst for revolution
  116. Re:Form a union! CPU: The Computer Programmers Uni by abe+ferlman · · Score: 1
    IT staff is 6 braincells short of pulling triggers from overwork? Go and make their lives more pleasant. Yes, it'll even boost productivity. Happy workers are productive workers.

    I agree with most of what you say, but the law of diminishing returns unfortunately throws a wrench in this assertion.

    That doesn't matter though- Workers should demand the right to live their lives no matter what it does to productivity! If productivity falls at the expense of union leverage, corporate salaries will decrease to increase the number of programmers hired.

    --
    microsoftword.mp3 - it doesn't care that they're not words...
  117. 70 hrs/wk implies non-creative work by tylerh · · Score: 2
    G.H Hardy, the brilliant English mathematician, was fond of claiming that
    four hours of creative work is about the limit for a mathematician.
    ...And Hardy was creative. Much modern computer science rests his work[1]. So I think we can easily conclude that the folks Greenspun manages are not doing much creative (fun) work. If you are thinking of taking Greenspun's management suggestions, take heed....

    [1] Major contributions to topics including Diophantine analysis, summation of divergent series, Fourier series, the Riemann zeta function, and the distribution of primes.
    --
    "one treats others with courtesy not because they are gentlemen or gentlewomen, but because you are" --G. Henrichs
    1. Re:70 hrs/wk implies non-creative work by The+Pim · · Score: 2
      four hours of creative work is about the limit for a mathematician.

      Mathematics is a whole other kettle of yarn. It requires a far greater level of abstract thought than programming. A mathematician working on a problem is exercising a very narrow mental facility to its utmost limits. Programming typically requires less concentration and offers more variety. Maybe it approaches mathematics for really deep algorithms and really subtle bugs, but that's the exception in most programmers' lives.

      I'm not dissing programming. But it's well known from anecdotal evidence at least that the all-night hack session, in which a programmer remains intently focused on a problem, is entirely feasible given the right challenge and environment. This is barely imaginable in abstract math. Abstract math is deeper by far than what most people think of as mathematics.

      --

      The evaluation of an action as 'practical' . . . depends on what it is that one wishes to practice.
  118. Tyrant! MIT Considered Harmful by RedMage · · Score: 1

    I know there's been quite a stir about Mr. Greenspun's perception of workers hours, so I won't harp on it. Surfice it to say: Would you want to work for such a tyrant?? When confronted with an egotistcal slave driver who demands my LIFE in return for a paycheck, I vote with my feet. Oh, and I fit his description of "The Best" too, so either his "reality checks" are overdrawn at the bank, or too many years at MIT should be "Considered Harmful."

    --
    }#q NO CARRIER
  119. Wrong assumption to start with by bugger · · Score: 5

    Greespun writes: "... the average programmers will consume nearly their entire work day just in reading and understanding the new code generated by the good programmers."

    Something is very wrong if this happens in Greenspun's hypothetical workplace. Either programmers are rewarded for *writing* complex code, or what Greenspun assumes to be good programmers are, in fact, hackers who are incapable of creating and designing maintainable code.

    The whole point of engineering is to create solutions that are simple, flexible, and effective - and that can be *understood*.

    Writing code that the average programmer cannot *understand* is not what classifies a good programmer. A good programmer will write code that is elegant, simple, straight-forward, can be understood *and maintained* by the average programmer. It is the initial coding *solution* that discriminates the good programmer from the coder.

    1. Re:Wrong assumption to start with by SquadBoy · · Score: 3

      This is *very* true. I am a sysadmin type trying to get into programming. I know Perl ok and am just getting started with C/C++. With that background I can set down with the Linux kernel and read a bit and understand many parts. This is because it was designed to be understood and used by more than one person. I'm far from average at this point (a rank novice)and yet I can understand the kernel for a very complex and powerfull OS a true testament to those who have written and maintained it. So based on what I've done and seen I have to agree that a good or great programmer will write code that is obvious to even a novice, once it is written. Just like with you human language you can always read more than you could have written. Think of all the really great inventions all of them are brian dead obvious, once you see the solution. The ones that don't make sense don't get used. I think Greenspun likes the "hacker" myth just a little too much.

      --

      Cypherpunks: Civil Liberty Through Complex Mathematics. Those who live by the sword die by the arrow.
    2. Re:Wrong assumption to start with by mightbeadog · · Score: 2
      Writing code that the average programmer cannot *understand* is not what classifies a good programmer. A good programmer will write code that is elegant, simple, straight-forward, can be understood *and maintained* by the average programmer. It is the initial coding *solution* that discriminates the good programmer from the coder.

      The above is very true, but the point you argue against is not the point the author made. He didn't say the less skilled programmers could not understand the better programmers' code. He said they could not understand it much faster than it was being written. Code's quality is not the only issue in how quickly it can be understood.

      For example, a programmer with a strong CS background can write code based on standard concepts that a programmer with a similar background could quickly understand, but that a programmer without that background would take much longer to understand. The time is really spent learning the concepts.

      Also, a lot of code, especially web related code, uses technologies that only some readers are familiar with. Database access, CGI/Servlet APIs, sockets, etc. can be transparent or hours-with-a-manual difficult, depending on the reader's background. This applys to languages too. I can read Java at a decent speed, because I use it every day. JavaScipt takes longer, because I only use it every few months, and because I never wrote it full time. (And I won't even start on VBScript/ASP. ;-) Many programmers don't have the luxury of limiting themselves to a single environment-of-choice, and learning is becoming a larger and larger part of the average programmer's day. And the difference between the productivity of learning-while-doing and just doing is always going to be huge.

    3. Re:Wrong assumption to start with by segmond · · Score: 2

      It depends on what is being worked on. Take example of a code for a complex database system, cryptography, tcp/ip stack or some complex program. Even when implemented in a simple clear elegant solution, the average program will be lost, simply because he does not have the right background, so he will spend time catching up. But I still agree with you that something is wrong with Greenspun's hypoehetical workplace. In a good project, programmer's don't need to be reading each other's code, except during code review and when hunting for bugs. That is why we have modules, The very good programmers work on important part of the program, the average programmers work on the other parts, the newbies, work on perhaps the installation and simple parts.
      Nevertheless, the article is a good article.

      --
      ------ Curiosity killed the cat. {satisfaction brought it back | it didn't die ignorant | lack of it is killing mankind
    4. Re:Wrong assumption to start with by ZZane · · Score: 1

      You're assuming average programmer == competent programmer. In my experience that is completely wrong. Of the 20 or so programmers I've worked with only 3 have been competent. So even well written, well documented, simple code can seem obtuse to the average programmer.

      -Zane

      --
      This sig is worse than my last.
    5. Re:Wrong assumption to start with by HiThere · · Score: 1

      There's more to it than that, though I do agree that if everyone is working in the same environment, that "good or great programmer will write code that is obvious to even a novice, once it is written." is a fair characterization. But beyond that, it is a metric that can be used to rate development environments. If the code can be understood after it has been created, then the development environment is a better environment than if it can't. And an environment that makes it easier to write (wright?) good code is a better environment than one that doesn't. Thus, adding lint to a C programming environment will improve the environment. So would adding a good Xref program. Or a syntax highlighting editor. etc.


      Caution: Now approaching the (technological) singularity.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    6. Re:Wrong assumption to start with by Lando · · Score: 2

      I completely agree.

      I am currently redesigning a system that has 220,00 lines of code, but the programmers that wrote the program in the first place never used libraries and there is a lot of repetition. Changes were made in different areas as problems were noted and never replicated to the other proceedures, etc, etc, etc.

      As head developer, I made the decision not even to have my junior programmers work with this poorly writen code. Senior programmers and myself only. Once we have rewriten a function and made it available to the juniors, they can usually work out in a couple of hours what it took for a day for an experienced programmer to pull apart. So writing the code correctly takes a heck of a lot less time... Given that the code we are generating is well documented, juniors never have to even touch the functions just understand what the function does, this takes about 15 minutes max. I mean how many people have gone through the code for the printf function? Now how many people use it.

      The article is slashdotted at the moment, so I have not read it, but from the comments it appears that he is just flinging "The Mythical Man-month" by Frederick Brooks out the window... Somehow I doubt that he has enough experience with programming to do so....

      Lando

      --
      /* TODO: Spawn child process, interest child in technology, have child write a new sig */
    7. Re:Wrong assumption to start with by Harri · · Score: 2
      Unless he is supporting the theory I have heard from various sources, that 1% of programmers do 100 times the work of the other 99%, a large proportion of whom are pretty much incompetent. I can't back that one up myself, apart from to mention that the people who interview where I work toss out 2/3 of their applicants "with experience" as being terrible, including someone with 3 years of C who is claimed to have said "I'm not sure what the funny star things are for".

      It is reasonable to suppose that no matter how good the code, an incompetent programmer will have difficulty understanding it.

  120. Been there, Done that... by corecaptain · · Score: 1

    Early in my 10+ year as a programmer I did the 70+ hour routine. That experience is what drove me to becoming a contractor where I am paid for every hour I work. I resent Greenspun's pathetic paternalistic attitude that leads him to make statements like "Most people have a TV at home but they don't have friends with whom to watch it." What a load of unsubstantiated crap. I have worked as a programmer in several dot com startups and I can tell you that most of the hard working people do have friends,family, and a social life that extends beyond their monitors! Greenspun's ideas are a recipe for BURNOUT. Why do dotcomers work insane hours? Because they had to back a uhaul up to carry home the stock options they hope will make them millionaires - not because of the free pizza and fun toys in the break room. (PS I wonder how many times Greenspun has had to hire reeeally expensive contrators to bail out his projects after he burned his full time employees out!)

  121. Managing software engineers is like sheepherding. by AFCArchvile · · Score: 1
    Sometimes they fall right in line with your demands, but when they become irrational, it's time to get the sheepdog out to nip at their hindquarters. When they start getting out of hand, then it's time to whip out the cattle prod.

    Personally, I hate what is happening to software engineers. The quality of code makes me think that it was written by a monkey chained to an emacs terminal. Case in point: Half-Life 1.1.0.4, which will not run the Opposing Force mission pack at all. Pathetic, yes, but it shows that Valve only concentrated on Counter-Strike and TFC. Business as usual for them, but I'm stuck here with a dead mod which I haven't played in a long time.

    --
    "Ancillary does not mean you get to rule the world." --U.S. Circuit Judge Harry Edwards, speaking to the FCC's lawyer
  122. I have gotten slower with age by michael_cain · · Score: 1
    I'm not actually a software engineer -- I do systems analysis work for software, hardware and networks. I have had to write small pieces of software (analysis tools, functional prototypes, testing frameworks, etc) throughout my career. Over the last 22 years of this, I have observed a few things that seem somewhat relevant.

    I have indeed gotten slower as I've aged. I don't have the same ability to focus that I did when I was 25, and I don't have the energy to routinely work 60-hour weeks. As many others have noted, some of the energy is going in other directions. A wife, a house, and two teenaged children all require quite a bit of maintenance. On the other hand, I have a lot more experience and that allows me to avoid some kinds of mistakes that I would otherwise waste effort on.

    Not only are the best programmers/analysts 10x as productive as the worst ones, but that understates the importance of insight. There are cases where the great programmer has the insight to solve a problem and then produce the code in a month. Ten mediocre programmers will never produce the code because they won't have that "aha!" moment and find the workable solution.

    One thing managers need to do for their teams is to find and encourage the great programmers that are "unofficial" leaders. Most of us have run into these people, the ones that you can approach with a particular problem that you're having, get them to listen for 20-30 minutes, then can make suggestions that always turn out to be useful and/or important, and don't make you feel stupid about having asked. We really need to recognize the contribution that those people make!

  123. I have a bit of a problem with this by Mtgman · · Score: 1

    1 Produce Top Quality Code
    2 Teach Average Programmers to be Good Programmers
    3 Focus on retaining good people
    4 Keep your service-oriented focus

    Actually, these priorities look pretty good. Until you look at how PG suggests to achieve them.

    1. Make your programmers more comfortable at the office than at home.
    2. Keep them working during all facets of their lives(coding while watching the sunset on the beach?)
    3. Keep them working at a "ruthless" pace, especially the newer, less experienced programmers.

    All of these sound like great ingredients for a coding machine, but not for a coder. I have a wife and three small children. I'm not working 70+ hours a week every week. I've done it, and I'll probably do it again. But I'm not going to sacrifice my humanity for my ability to code. Not every coder is a single person right out of school who is willing to sacrifice every shred of interaction with non-office mates in order to get the high salaries being offered to those who sacrifice themselves on the Altar of Good Programming.

    This is like Objectivism(this is not meant to start a flame war about Objectivism, please don't), a great philosophy, tightly integrated and capable of producing amazing results. But in the end it requires the sacrifice of all the things which make humans human. Some would argue that those things aren't worth keeping in the face of the satisfaction of creating new technologies and shaping the future. Looking at my children, I would disagree.

    Steven

    --
    -- I have marked myself unwilling to moderate-- I don't have other accounts to artificially inflate the karma of
  124. Long hours by jeremyp · · Score: 1

    I admit I haven't read the article because it's slashdotted at the moment, but having read a lot of the comments I think I'm on safe ground assuming he advocates a 70 hour week for programmers.

    There are several reasons why this is a crazy idea. One is the burn out problem. Assuming they're working a 6 day week, that's just under 12 hours a day. There's no way anybody can stay productive at that rate for any length of time. Actually, to put it in perspective, until recently, newly qualified doctors here in the UK had to spend their first year effectively doing slave labour in our hospitals. 100 hour weeks were not uncommon.

    Two is the fact that a programmer is working a 12 hour day, activities that normally do not count as work tend to migrate into it. For example, if you have to go to your bank, you might do it in office hours; because you are working long hours, you'll have frequent breaks to do things like play Quake, surf the net, organise your vacation or go and work out for a bit; if you're working late in the evening it is not unreasonable to have something to eat etc etc. I don't know if anybody has done any scientific research into it, but I bet the 12 hour a day programmer spends about as much time actually producing code as the 8 hour a day programmer.

    Reason three, Brookes' law states that putting more resource onto a late project makes it later.
    The reason for this is twofold:
    a) programming tasks are inherently single threaded - only one person can code one module. If you have already broken out the tasks into the most basic units and assigned resource to each one, adding more programmers will have no effect on the schedule except that
    b) new programmers rarely come into a project knowing everything they need to be productive, so you have to take your existing resource off production to train the new ones.
    If your project is late, there is one way to beat Brookes' law. You can ask your programmers to work longer hours. If they're already working a 12 hour day, this is probably not an option and for reasons 1 and 2 above probably not effective. However, if they are working an 8 hour day, you could ask them to go to 12 hours for short periods (e.g. a couple of weeks).

    Personally I value my leisure time far to much to work for any company that insisted on a 70 hour week. Actually it's illegal in the UK and the rest of the European Union.

    --
    All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
  125. Management through Addiction? by wytcld · · Score: 1

    Let's say you had this drug that made people intensely productive at whatever. The trade-off is health eventually suffers and you don't have much of a life beyond the special focus the drug gives you. But meanwhile you do some very valuable work for the larger society.

    Say you're Charlie Parker or Jerry Garcia, generating 'code' that truly improves a great number of lives - which is so much better than the code produced by those without your addiction that a sort of secondary addiction develops among those who use it. (I know someone with 6000 bebop albums - all stuff derived from Parker's innovations; we all know Jerry's kids.)

    Granted, there's a great case to be made for the collective's steering some members towards that sort of productive addiction, and writing off the cost to the lives of the addicts in the same way we write off the costs of soldiers' lives in war (though we are no longer willing in the US to do the latter). There's a case to be made that much of our current success results from our developing an ecology of addictions, of specializations, of sacrifice of the individual to the task, in programming, on Wall St. ... and that at best we seek a bit of balance in secondary addictions: to TV, the Web, sex, drink....

    But is it possible to return to the sort of generalist brilliance that Ben Franklin, Thom Jefferson, Leo DaVinci had? Further, is the failure of the dot-coms precisely because we lack enough of that, of the sort of mind which can really advance into new frontiers, rather than just running out the line of an established addictive strategy (Websites that want to be TV, music that wants to be whatever retro thing)? Consider: there was a common projection that good programming would not be tied to cities - you can live anywhere and log in. But the good Web stuff comes from San Francisco, New York, Boston ... that about ends the list. Why? Is it because lives are richer on the ground there, that more people, despite the prevalence of addiction there as everywhere, have more real ties to wider varieties of the arts and their communities, and more diverse friends and associates? Addiction in the rural and suburban wasteland tends to be more complete - the job competing only with a homelife so sterile that which Presidential candidate will educate your kid seems like a real question, and long hours at the office start to look like the emotionally less unattractive course.

    --
    "with their freedom lost all virtue lose" - Milton
  126. Union Programmers are Unemployed Programmers by tjstork · · Score: 1


    Yeah, the moment that a programmer's union forms, you can kiss away those fat salaries and in fact, our jobs, as they move overseas. We get paid more because we work harder. If we do not work harder, we will lose. That's the way it is.

    --
    This is my sig.
  127. Jackass alert! by CaptainCap · · Score: 1

    I read this article and at the start thought it was about managing software engineers. That's what the author said. But as I read it I'm thinking "what the hell?" so I've followed the comments here by the author and and also in the arsdigita.com comments area. (That flippant solution from Greenspun at arsdigita.com for RSI was a real snort "...Microsoft Natural Keyboard. It is the only answer!" (Double-snort)). But I noticed an upsetting trend in the comments from Phillip Greenspun here at slashdot. Turns out the article was not at all about managing software engineers. First, I learned that it was about managing Ph.d.-aged people "Your point was sort of an unstated assumption of mine. At ArsDigita we do tend to get fairly young people..." Kind of sloppy not to state that and it is quantified with the later explanation "the career-building years about which I was writing (age 22-30)." Uh, any reference to career-building 22-30 was left out of the original article. Not only that, its about GENIUSES! "The articles I put on my various Web sites are not intended to help people who just want to live a quiet comfortable life (I'm not an expert on this). They are intended to help young people turn into Linus Torvalds or Richard Stallman or Dan Bricklin and Bob Frankston (Visicalc)." Woo-hoo! People with common sense like me and a lot of other slashdotters don't need this 70-hour a week crap, the geniuses like Linus Torvald and Richard Stallman don't need anything from Phillip Greenspun (who?), so this is only something that will be recycled and regurgitated by the stupid pointy headed managers out there. A fitting audience for a self-promoting, sloppy-thinking, sloppy-writer such as Greenspun. What a jackass, what a jackass.

  128. Re:Salaries not that large by Brian+Stretch · · Score: 1

    You're forgetting the biggest factor of all: aftertax income. Beyond $25K/year of adjusted gross income for singles, it costs an employer $2 to put $1 in your pocket, more if you're in the People's State of Kalifornia or Taxachusettes. So Big Brother's income goes up faster than yours, percentage wise.

    I like Arsdigita's business philosophy, but it leaves them wide open for getting raped by the taxman. (Paying out cash instead of stock; long-term capital gains tax is 20%, and no Socialist Security and Mediscare taxes.) Still, I think it's worth the tax hit for the reduced aggravation from not having to watch a manic-depressive company stock price.

    I'll assume that everyone at Arsdigita is going to vote for George W. Bush? (grin)

  129. Market Forces by RallyDriver · · Score: 1

    The market for high tech labor in the US is so tight that people have a freedom of choice - even the bottom end of the market represents a salary which offers a comfortable lifestyle, so people are making choices on other things. If companies treat staff badly they'll vote with their feet.

    We are a startup, but we don't have kids fresh out of Stanford pulling 100 hours a week - we have mostly mature engineers with 10+ years of experience working hard (50 hours/wk or more, varying during a cycle) but balancing work with other things in their life. They produce more in that amount time than the college kids who live in the office, and at a higher quality.

    At the last company I worked for (Austin TX, the locals will recgonize it) almost all the developers are 24 year old kids. You can SMELL the dev floor at the end of a release cycle, and it isn't pleasant. Their products are of woeful quality. Staff are heavily overworked, but paid looney salaries; kids 2-3 years out of college make up to $250k. But, after a year or two they wise up and quit anyway - there's more to life.

    It is true that IT people in the USA generally work a lot harder than in other countries, but they are also well rewarded. There are jobs which are more laid back here in the US, or have more controlled hours - look at Siebel, who lock the doors at 6:30pm.

  130. Re:Leaving @ 6:00 p.m. by Pig+Hogger · · Score: 2
    How many programmers do you know that fart around their desk all morning, get ramped up around 2:30 PM and end up staying at their desk till 7 or 8 to get their job done.
    At a job I had, I got in around 9:30-10:00 and tried to work while the other programmer in our department was whining about the boss not being there.

    At 11:00, the boss came in, and spent the next hour fixing the other programmer's problems.

    At 12:00, we (my boss and I) went out to lunch, then went around bookstores and universities libraries, and sometimes went out of the way to look at an interesting building (my boss was trained as an engineer, and was totally inept at history and architecture, and thus enjoyed the "private lessons").

    We would get back between 14:30 and 15:30, where we'd sit for the next hour listening to the other programmer's problems.

    At 16:30-17:00, the other programmer would leave either for his home or his aerobic classes.

    At 17:00, when everybody else left, we started working, coding until 20:30 or 21:00 or inspiration left us. In that amount of time, we'd do 2-3 days worth of work. And after, most of the times we'd go out for a beer and/or cruise for chicks...

    We were three (two after the other programmer was fired for gross unproductivity) guys supporting a whole crew of 14 people (including secretaries, executives, accountants and other departments which weren't profitable). After 9-10 months of this, my boss told the company to screw itself and left...

    --
    Americans are bred for stupidity.

  131. smart != right by nha · · Score: 1

    Philip is obviously smart, but he makes the same mistake that he decries, namely assuming that his intelligence necessarily leads him to correct conclusions. If history is any guide, smart doesn't correlate with right nearly as nicely as he assumes. As for the 70-hour week, it is a well-known fact that Einstein needed 14 hours of sleep a day. This left him with a mere 70 hours of waking time per week, some of which was obviously not work. Would Philip look for ways to terminate somebody of his calibre?

    --
    NHA
  132. Greenspun is no speed demon by linuchristo · · Score: 1

    Greenspun took about 10 years to get his PhD.
    given this slowness, I wonder if he could survive under the regimen he imposes on his programmers.

  133. Re:Beekeeping by hugg · · Score: 2

    I think Greenspun is talking about product companies, not software body shops. Most companies that hire hotshot programmers to do a software product give them a fair equity stake in the company or royalties. So the "master/servant" relationship isn't as strong here. Instead of being pedantic about how many how much you're getting per hour, you're just trying to figure out the best way to get the product shipped, cash in your options, and retire. The mathematics is different than if you were just billing hours.

    Greenspun = rich computer scientist; behavioral scientists = poor social scientists. I think I'll trust Greenspun.

  134. Re:never getting more than a 2? by m.o · · Score: 1

    Doesn't anyone realize that people with healthy social lives (outside of work) write better code?

    why?!?! my experience shows that if there is any relation at all (which I doubt), then it's the other way around. I had periods when I did and didn't have active social life (yes, I did it by choice), and I am pretty sure that when I completely shut it off and concentrated on work, I was more productive and wrote better code. I know many people who I would hate to go drink beer with, but, at the same time, would hire for any coding job any minute.

  135. Typical Greenspun weirdness by swordgeek · · Score: 2

    Flame away, but I've never been impressed with
    Phillip Greenspun. From Travels with Samantha to
    this latest misuse/understanding of Brooks'
    excellent book, he's had a knack for missing the
    important points and not letting us know how
    great he is. (even when he's humble, he's always
    got something to be humble about, and mentions it)

    For starters: The 10/1 productivity ratio wasn't
    a "good/average programmer" stat--it was a "very
    best/very worst" stat. Furthermore, although the
    book was reprinted in 1995, that figure comes
    from the original, published in 1975, from a
    study carried out before that. Nearly 30 years
    ago, in other words! Somehow that number jumps to
    100 times in the article, but I'll chalk that up
    to another typo.

    The 70-hour idea is silly. It doesn't address
    the _accuracy_ of the work done, and the fact
    that it goes down after a while. Check out this
    article:
    http://www.fastcompany.com/online/06/writestuff. html

    Also, FORCING (i.e. "encouraging") people to work
    hours like that is just going to get you a bunch
    of uber-nerds who will generate tons of brilliant
    code that pisses off end users, because they
    never talk to or deal with end users, or life for
    that matter.

    "Your business success will depend on the extent
    to which programmers essentially live at your
    office." Makes it perfectly clear who I DON'T
    want to work for!!! Furthermore, he then goes on
    to say, "Programmers don't have the same need for
    wood-paneled expensive plushness that, say,
    corporate lawyers or investment bankers might."
    My question is why the hell not? As much as the
    lawyers and investment bankers have a "need" for
    these things, so do I!

    All in all, the article didn't end up saying
    much. Some people are better than others at their
    jobs, and most of the bad ones don't realise it.
    Big fat deal! The best programmers tend to get
    pushed into management. Well, guess what? It
    happens in almost every field, and is just as bad
    there as it is in software engineering.

    --

    "People who do stupid things with hazardous materials often die." -- Jim Davidson on alt.folklore.urban
  136. Re:We pay $100K! And Cambridge is better than Peor by MrEfficient · · Score: 2
    Wow! I caught the attention of Phillip himself. Thanks for the reply. Yeah, there are alot of factors I left out in the interest of simplicity. I read over the job information on your site several months ago and my memory is a little sketchy. There's the $10k signing bonus, weekly massage (is that for real?), and several other things that made it sound like a cool place to work. Hell, if I thought I qualified, I'd apply for a job, so I'm not knocking it.

    I see alot of people comparing salaries on the web without taking into consideration the cost of living. Its an important factor and can't be overlooked. That was the primary reason for my post. I do consider 70 hours per week excessive though. I'm not saying I would never work that much, but if I do it, I want it to be because I want to, not because its required (explicitly or implicitly).

    I think "Phillip and Alex's Guide to Web Publishing" is great by the way. I read the online version but I plan to buy the hard copy eventually. Thanks for making all of that information available.

    --
    Check out AbiWord.
  137. 80-100 hour weeks - you don't have to do it... by SuperKendall · · Score: 2

    I used to work those 80-100 hour weeks. What I've found over time is that you do not have to do that at all to be really successful.

    Consider this - if a really good programmer is 10x more productive than an OK programmer, then why not work half as much? The company still gets a worker who can produce at 5x the rate of other programmers. The worker gets a lot more free time to work on side projects or train themselves.

    What I've noticed over time is not so much that older workers have trouble finding work - it's that most older workers do not take the time to keep themselves trained in technological developments. That's what really kills you in the long term, not so much the fact that you are older. If you're an older worker with a lot of good projects under your belt and a strong grasp of the latest in technology, I don't think you'll have trouble finding a job.

    I currently work about 40 hour weeks, and have never been more productive and creative. I'm not only architecting some interesting systems, but working within the company to help develop small and USEFUL corperate wide components. The shorter hours have never been a problem, and I'm encouraging my whole team to do the same.

    It's all up to you. Take control of your career. Do not fold to the temptation to work longer hours, and make sure you try to keep innovative in the work you are doing.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  138. management by consensus by konstant · · Score: 5

    Recently I moved into what you might call a "management" role - a Program Manager at Microsoft. Despite the title, my work lies much closer to the realm of Negotiator than to Boss. A PM has many responsibilities and deadlines, but s/he has no official authority to execute them. If I want something done by a certain date, I need to convince the other teams (dev, test, ops) that my way is the best way. If I can't convince them, which is often the case, then my job is to discover a compromise.

    Greenspun has hit the nail on the head about management by consensus. When friends of mine regale me with tales of old-school management I try to show them the superiority of a system where the leaders are the actual workers, and the titular bosses are nothing more than organizers of the group's talent.

    In tech it makes sense to follow a more democratic model. If the workers aren't intelligent enough to contribute to design decisions, why were they hired in the first place? And if they are intelligent enough, why squander that ability with petty micromanagement?

    -konstant
    Yes! We are all individuals! I'm not!

    --
    -konstant
    Yes! We are all individuals! I'm not!
    1. Re:management by consensus by RickHunter · · Score: 1

      Wow... An intelligent post from Konstant that I agree with and isn't sarcastic. ;-) (No offense to you, Konstant, but I usually disagree with pretty much everything you post)

      If your employees are good, they presumably know their jobs. They can evaluate how long things take, how hard they will be to do, and things like that. It makes sense to give them some voice in how they're managed. Of course, included in this is giving them the freedom to NOT work insanely long hours if there are other ways to do things and they have other commitments.


      -RickHunter
    2. Re:management by consensus by Anonymous Coward · · Score: 1

      What do you think about FreeDevelopers.net? It's in embryo, but I wonder when it will be feasible to carry this democracy idea to FreeDevelopers.net's extreme.

  139. Personality ? by PiterPan · · Score: 1

    It's interesting that, while talking about developers' egos, Mr. Greenspun doesn't touch the point of "manager's personality"...
    IMHO it's a very important side of the problem.

    If a manager has "personality of a dead fish", it doesn't matter if they buy all grand pianos in the world and put them in an enormous play room.
    Developers are not going to be happy anyway...

    Or maybe I'm just missing his point on this... (Gotta read the article again)

    I've sent a copy of this article to my manager, hope he'll read it :)

    --

    --

    --
    On scale from -14 to 56 this post is '-15, Nonexistent'
  140. Sorry, thought you were BLUE by gelfling · · Score: 2

    Evaluation system, forced curve on a scale of 1,2,3. 3 being deadwood that floats and 1 being raise the freakin dead, smote the rock, etc. etc. But the VAST middle area which has a range of RIP (retirement in place) to just saved the company 25 million dollars which translates to a $250 million revenue stream.....

    Ones, twos threes are relevant because they are the ONLY factor in determining the difference between what could be a 0% and a 20% bonus. Given that MegaTelCo-Blue doesn't reward its employees any other way and the options they hand out are about 35% under water.

  141. Re:Form a union! CPU: The Computer Programmers Uni by eison · · Score: 1

    My contract does indeed mention more than 40 hours and extra time off (5 weeks) because of it.
    Perhaps you should just hold out for a better contract.

    --
    is competition good, or is duplication of effort bad?
  142. Re:That's Philip Greenspun... by AFCArchvile · · Score: 1

    not Alan Greenspan. You're starting to turn into one of the sheeple who believe that Alan Greenspan does everything in the world and is the actual leader of the country and the world.

    --
    "Ancillary does not mean you get to rule the world." --U.S. Circuit Judge Harry Edwards, speaking to the FCC's lawyer
  143. Re:Well I'd better retire by CorporateProgrammerD · · Score: 1
    Well, I guess you should have entitled your article "Management to produce world-changing genius." instead of "Managing Software Engineers"

    Please understand this one point: I feel that the article does make some good points about how to manage the software development process in a cutthroat world of fast-paced competetion.

    The article says "From a business point of view, long hours by programmers are a key to profitability." and "Your business success will depend on the extent to which programmers essentially live at your office." and "If you care about profits, you must either come up with a new training program for the person or figure out the best way to terminate his or her employment with your organization, and my favorites "It costs more than not having the beach house but a lot less than having employees go off on their own to have fun every weekend and not work." (I know that I personally hate it when people have fun on the weekend instead of working!)

    To be fair, however, the article also says this: "...interview with Bill Gates: 'We hear you're brusque at times, that you won't hesitate to tell someone their idea is the stupidest thing you've ever heard. It's been called management by embarrassment challenging employees and even leaving some in tears.' Truly elite organizations can be far worse than Microsoft.". The article also says this:"Everyone else is a candidate to be turned into a good programmer as quickly as possible." although it is tempered by this: "beyond a certain point it is most effective for an organization to develop a strategy for creating good programmers internally"

    So yes, I guess this article does touch upon methods to bring out the best in people. But that is simply a byproduct of the true goal. The true goal is to have the most productive workers possible so that you can make as much profit as possible. Which is OK, that's the point of a company. And it's true that the 35 year old that has changed the world has put in long hours. (Although of course the converse is not true.)

    But please, don't tell me this article was intended to turn young people into Linus Torvalds or Richard Stallman. It's more about how to become the next Bill Gates or Michael Dell or {insert name of your favorite Very Rich Person}.

    This isn't about greatness, it's about money! Just go ahead and say that, don't hide behind slightly veiled ad-hominum attacks "are not intended to help people who just want to live a quiet comfortable life (I'm not an expert on this)." Just go ahead and say that the whole purpose of this article is to teach people to get as rich as possible as quickly as possible off of the work of others! There is room in the USA for unabashed capitalists. Just have the guts to admit it.

    --
    To email, do the obvious.
  144. Re:Leaving @ 6:00 p.m. by dgb2n · · Score: 3

    Americans are way behind the power curve on working these ridiculous hours. Europeans have known for quite a while that productivity beyond about 40 hours a week (36 in Germany) goes down. For every hour you spend in the office past 5 PM, productivity doesn't really go up.

    How many programmers do you know that fart around their desk all morning, get ramped up around 2:30 PM and end up staying at their desk till 7 or 8 to get their job done.

    I'm guilty as charged.

    When you know that your boss EXPECTS you to leave by 5PM, you tend to manage your time better to ensure that your job is done by then.

    I tell all the folks who work for me that if they're staying past 5, they're not managing their time. Its a sign of weakness, not dedication. They're happier, more productive, and the divorce rate went down ;-)

  145. Re:Can you say stroke at 39? by pointym5 · · Score: 1
    ... unless you call paying a nurse to help you to the bathroom enjoying.

    Hmm ... do I get to pick the nurse?

  146. Managing programmers is *not* fun by Jon+Erikson · · Score: 2

    I've managed teams of programmers before, and lived to regret it as well. I'd rather face an angry customer complaining about how their Linux box got hacked again than try and get a team of unwashed, unmotivated programmers to put out a working product built to spec within the amount of time allocated.

    I'm sure that programmers here will claim that their huge intelligences are responsible for their constant need to change the task they're doing and their complete lack of focus, but it means that out of every hour they're present, only half (if you're lucky!) of it will be spent working. The rest will be spent browsing the net, checking emails, getting drinks, going to the toilet, scratching their armpits and any other activities that can help them avoid doing what they're begin paid for for another minute.

    And when they get in in the morning then you can write off the first couple of hours totally, as they're still shambling zombies from an all- night pizza, BO and coding session that only ended three hours ago. In fact there have been two occasions I had to send someone home just to shower, because we had clients coming in. Not that clients get to see the programmers if possible, you need to give the right impression after all.

    No, after a frustrating year of dealing with programmers I have the greatest of respect for product managers and the like, because they are the ones that have to try and get work from people not used or willing to getting a job done. It's like squeezing blood from a stone.

    --

    Jon Erikson, IT guru

  147. In Greenspun's world, good programmers use Tcl by brlewis · · Score: 1

    [see subject]

  148. Neither by JurriAlt137n · · Score: 1

    It's your choice: do you want to hear "You stink!" all of the time, or "Good job!"?

    None of the above. The only thing words I want to hear my boss utter are "paycheck", "business trip at expense of company" and our all-time favorite "raise"...

    --

    People replying to my sig annoy me. That's why I change it all the time.
    1. Re:Neither by JurriAlt137n · · Score: 1

      That depends. If those magic words have "no more" in front of them...

      --

      People replying to my sig annoy me. That's why I change it all the time.
  149. it wasn't supposed to be the last word by pgreenspun · · Score: 3

    I've learned a bunch of things from this discussion. Let me say that I did not intend "Managing Software Engineers" to be the last word on the subject. That's why there is an "add a comment" link at the bottom of the page. My experience is limited to the handful of commercial and open-source software products that I've built plus some dozens of Web-based systems built on top of ACS in which I've been peripherally involved. My thoughts are intended to be useful for people who find themselves similarly situated and to be a magnet for contributed thoughts from people with better expertise than my own (see Chapter 1 of _Philip and Alex's Guide_).

    The other day a Sloan MBA student asked me if being an entrepreneur was worth it. By that he meant the long hours, the risk, the pain of seeing one's baby disfigured by new management, venture capitalists, etc. I reflected for a moment and said that "Yes, it is still worth it. Being an entrepreneur means that you get to pick the people with whom you work."

    So I guess that's what it boils down to for me. I never enjoyed working inside organizations built by others, even if I got to go out to the opera every week and spend long evenings at friends' houses. But it has always been fun for me to work at my own companies because I love the people that were pulled in (in the case of ArsDigita, there are my co-founders Jin Choi, Tracy Adams, Eve Andersson (also my girlfriend!), Bruce Keilin, and Aure Prochazka, plus a lot of really great people that joined just after the protoplasmic stage). Did it ever upset me to spend long hours with these guys? No! We were getting a lot done and being positive reinforced by the reaction from programmers worldwide, end users, and by our own growth in skills. Would we have been happier in the long run if we'd gone to work for Ciitbank in the IT department, married and had kids? Probably! I wrote about that in Travels with Samantha.

    Anyway, I'm glad that my article spurred this lively debate! I don't want to be remembered for advocating a long work week. There is a lot more to the article and I certainly wouldn't advocate long hours to anyone who didn't love his or her job and wasn't learning every day.

  150. Re:so much for phil's scalability by LIGAFF · · Score: 1

    Better up the network support guys to 85 hours per week. 70 isn't enough for them to learn how to tune their own company's product.

  151. Re:SE is difficult because... by BenBenBen · · Score: 1

    Finally!
    I spent hours trying to explain to all and sundry that I dropped out of CS because it's more of an art than a science. Unless you have experience of it (and experience of swearing at it, and seeing people less intelligent than yourself excelling in it), you'll never see it that way.
    BTW, I'm now on a management degree. Which I guess makes me the enemy.
    Ben^3

    --
    The Slashdot Paradox: "100% Overrated"
  152. 70 hours is typical by simpl3x · · Score: 1

    as usual phillip has a lot of interesting things to say about detail. as a designer/business owner, i have found that remianing flexible at the start of a business (not using architects to lock an entire space down for example) can help when you have found that your assumptions are entirely wrong. also, 70 hours is never entirely productive but necessary none the less in just about every "profession". a large portion of time is used simply to organize one's thinking so that the productive time is used well.

  153. start-ups geeks ? by dpidpi · · Score: 1

    What are we talking about EXACTLY ?
    Maybe the all-encompassing "start-up" is misleading us there.
    There seems to me there is (broadly) 2 kinds:
    - The innovative ones (ie. netscape) : A man with a vision and a small team of totally dedicated people,putting their life in a project (100+ Hrs/Wk) they expect to come out off with enough money to ... stop working.
    - The creative and professional ones, living on the trail of the first ones,making money out of buzzword for clients and brain manipulation for employees that they make believe are working in a company of the first group.

    I'm 36 and have 19 years of experience in IT.
    I Have worked most of my life an average of 70/80 hours a week on projects for my employers for decent amounts but I'm burnt out and I don't want to do management (I did!) nor sales.
    So I'm now independant and working at the moment on a project of my own 150Hr/Wk and I had to send my family away for 6 month to do that.
    If it works out I'll retire.
    If it doesn't, I'll NOT go to a company of the second group.

    Last note: I NEED to work 80Hrs/Wk min. to be CREATIVE, as weird as that can sound.
    Under that I cannot take interest in what I do and I just do it normal.

  154. Too bad some people have families by TarPitt · · Score: 1

    If only we could eliminate the nasty business of having and raising children! Perhaps someone could develop a method of artificial reproduction, where new humans are produced on an assembly line and raised in institutional care centers (see Brave New World).
    The we could all aspire to these hights of greatness
    I only regret someone wasted their time raising Mr. Greenspun, rather than working long hours for their own Greatness.

    --
    If your children ever found out how lame you are, they'd murder you in your sleep
  155. Open plan = isolation by Anonymous Coward · · Score: 1

    An open office plan contributes to making the work environment stronger on the social dimension. -- Greenspun

    My experiance is the opposite. It's better to isolate people when they are concentrating full on, then let them wander around and talk to one another when they need a break.

    In my last contract, thankfully just finished, we had 12 programmers in an open plan. The amount of of noise pollution was just incredible. Once every few days I had to go around and turn down the volume on all the phone bells. People just wander around practically yelling into their mobiles. Worse still, people leave their mobiles on their desks and go out to lunch, of course they all have those extremely annoying "musical" ringers. Once or twice a day the noise would reach a crescendo, I would just switch off and surf for a while, or just walk out. There is very little calloboration in this type of environment because everyone just retreats into their own space whenever possible. This is because their own space is always being invaded by other people.

    In an enironment divided into small offices, maybe 2 or 3 in each, where everyone can concentrate when they need to, people looking to break the monotony are likely to go for a wander to find someone to talk to. Maybe find another programmer who doesn't look super busy, look over her shoulder at what she's doing, have a bit of a chat about it, ask questions, learn, suggest stuff and so on.

  156. Re:Frankly, I'd rather depend on the Easter Bunny by Brian+Quinlan · · Score: 1

    I don't understand how organized labor can help programmers.

    The demand for software development talent is sufficiently high that it's practitioners have serious negotiating power with their employers. If you don't like your work environment, discuss it with your boss and then, if you don't get the outcome that you want, quit. Then spend the next day of two getting a new job. Hell, it is likely that you will be employeed continuously if you are obligated to give two weeks notice.

    Organized labor, in my opinion, is only of benefit to people who aren't terribly talented or (inclusive) work in an industry where employees are commodities.

  157. Re:kicking squealing gucci little piggy by jallen02 · · Score: 1

    Actually, its not really an ego thing.

    :) I Like the car a lot but if I wanted something faster id just go buy a saleen s351, the car was my grandfathers, so it holds sentimental value for me..

    Jeremy

  158. Right, sure, uh-huh by coryboehne · · Score: 1

    In my experience (ISP Admin) all that unreasonably long hours garnered was unreasonably SMALL salaries. I would work for up to 80 hours a week, and guess what, instead of overtime, or even just paying me for the hours at a regular rate, they gave us 'comp time' (illegal in NM as I found out later) so this does'nt very well hold true in every case.

    1. Re:Right, sure, uh-huh by TheBahxMan · · Score: 1
      Hey, hopefully yer not referring to Usurf, whom I also worked for. They pulled something similar on me before they up and moved to Boise. I had 20 hrs of overtime and I never saw it. Being underage, there wasn't much I could do about it, however I did send a very professional letter to each member of the board, and It solicitied ZIP for a response. Thanks Usurf!

      well, the'll be out of business before you know it anyway, so fuck 'em. They were supposed to fix my wireless over a month ago. They can burn. (kill them all...)

  159. Ya have to be a coder to understand coders. by Jordan+Block · · Score: 1

    Up until very very recently, I was one of just 2 full-time coders at the company I work for. There was no manager for our little department, and we basically kept each other in check, making sure that something got done each day. Sure, we were constantly reprimanded by the higher-ups who figured that all we did was goof off all day, but as soon as we showed them what we'd accomplised already that day, they shut right up. Our system worked because we each understood how the other thought, and what was involved in a given project.

  160. 3x-7x pay raise? by TurkishGeek · · Score: 3
    If the student finishes a PhD thesis, he or she is positively reinforced by being given a 3-7X pay raise.


    I am not sure I get this. Is this a 3-7x improvement over the generally pathetic grad assistant salary? It surely can not be a 3x-7x improvement over a programmer with a similar age with no Ph.D who has chosen to work in industry instead of grad school.


    Even then, I have yet to see a Ph.D that makes 7x his grad assistant salary, unless his grad assistant salary was in the 10K-12K range. Heck, if one can live with that salary for 4-5 years, then perhaps he really deserves a 7x increase.


    --
    Zigbee Central: A Zigbee weblog
    1. Re:3x-7x pay raise? by Neutronix · · Score: 1

      Well, what I realy would like to see is One get a PH.D working 100 Hours a week...

      --
      Long live TUX!
    2. Re:3x-7x pay raise? by StoryMan · · Score: 2

      Well, I spent three years at Michigan as a grad assistant and, yeah, my "salary" each year was around 10 grand. (And, of course, remember that grad assistants don't get paid from May to September, so take that into consideration...)

      Try teaching three classes a year (freshmen classes, I mean), writing a doctoral thesis, and *taking* five classes a year and, well, you're a candidate for burnout.

      Now, try living like this for 4-5 years.

      Now, I'm not saying that my suffering should be praised or rewarded. Many people have done it, managed to do it well, and eventually got themselves good jobs out of it. (And in fact, I find more prospective employers impressed with the fact that I went the "old school" route -- English/Comp Sci BA, English MA, Creative Writing MFA, English PhD -- than some of these comp-sci hot shots who don't even graduate college. Which, of course, brings up another interesting question: are liberal arts grads -- who come to programming jobs indirectly -- more highly regarded than straight-to-work comp-sci grads? Well, my experience has been interesting. I've had more than a few employers say how refreshing it was to see someone who could code well with a background in something other comp-sci. But I've had a lot of managers who see me woefully under-qualified. Usually these are miserable people to work for, so I'm more than happy to move on. So YMMV.)

      But -- getting back to my original point -- it is true to say that a PhD does (eventually) make 7-10X more than his or her pathetic grad student salary!

    3. Re:3x-7x pay raise? by StormyMonday · · Score: 1

      .... another interesting question: are liberal arts grads -- who come to programming jobs indirectly -- more highly regarded than straight-to-work comp-sci grads?

      Depends. Sometimes yes, sometimes no. Some managers are credentials fanatics, some don't care. Some jobs require a detailed knowlege of (say) graph theory, some don't.

      The big problem with CompSci grads is that many of them have essentially no communications skills and no ability to think critically. Liberal arts types may not have had the greatest programming education, but they don't panic at the thought of writing a white paper.

      After a programmer has been out of school for five years or so, the question is irrelevant anyway. By that time, either they've made it, they're not programming any more, or they're stuck in a tiny little niche somewhere.


      --

      --
      Welcome to the Turing Tarpit, where everything is possible but nothing interesting is easy.
  161. Re:never getting more than a 2? by RickHunter · · Score: 1

    I find that I write much, much better code if I don't overwork myself. Having a social life lets me concentrate on other things, and when I start coding again, I've got a fresh perspective on something that might've seemed an insoluble problem a day or two before. Besides, I seem to recall that having a social life is healthier psychologically for many people... But, as always, it depends on the individual. Which is why managers should let the workers have a voice in decisions like that, as opposed to requiring overtime.


    -RickHunter
  162. Well I'd better retire by cheekymonkey_68 · · Score: 3

    I'm not long past thirty with a sixteen month old little toddle, according to Greenspan I should just put myself out to pasture and get my carpet slippers.

    Surely if project managers did their job probably and argued the case for realistic project deadlines all this macho culture of working 70 or 80 hours a week would be unecessary.

    Remember when you have a family you have responsibilities, and that means avoiding death march projects in companies that require you to work at least 70 hours a week.

    1. Re:Well I'd better retire by kevin42 · · Score: 1
      Been there too. :) Fortunatley there are a number of jobs left where you can get paid well and work a reasonable number of hours.

      In my experience the death march isn't neccesary. I worked at a company once where it was expected that most people wouldn't work hard unless they knew we were in crunch mode, so we went into crunch mode (i.e. 12-18 hour days 7 days a week) for 6 months at the end of each project. So in turn nobody wanted to work hard for the non-crunch mode part of the project and of course it was a self fulfilling prophecy.

      I have proven through a number of succesfull projects that that isn't the right way to run a project. If you manage people well and manage the project well you can deliver quality code on time without killing people doing the work.

      As far as blaming the project managers, someone posted about the project manager's job being a negotiater. In my experience that's true, and I don't think you can blame the PM for a project's failure to deliver on time. It's got to be up to the technical lead, or whoever actually has the authority to make it happen. IMO peer management doesn't work.

    2. Re:Well I'd better retire by gargle · · Score: 2

      Dude, making people work 70 hours a week on some silly web site is not going to give them the time to become the next Linus Torvalds and Richard Stallman.

      And what happens when your programmers grow "old" (turn 30), get married, have children, and don't want to work 70 hour weeks? Fire them?

    3. Re:Well I'd better retire by Mark+Leighton+Fisher · · Score: 1

      I had quit working long hours several years before I created one of the first web-based knowledge management systems, the TCE Corporate Technical Memory (as mentioned in the Interactive Week article "25 Unsung Heroes of the Net for 1998"). The long hours have never been productive for me -- I'm a lot more productive now than I was when I was working long hours. However, as I have learned more Software Engineering skills, I've become more productive in the 40 or hours I do work.

      --
      "Display some adaptability" -- Doug Shaftoe, _Cryptonomicon_
    4. Re:Well I'd better retire by Pfhreakaz0id · · Score: 2

      It's easy. Just say it in the interviews: "If you're looking for a guy to work 50 or 60 hours, don't hire me. I have to get home to my real job." Then when they start making those "hints" a few weeks down the line, say "I guess you thought I was fibbing or something. I'm going home". Managers think you're full of it, or will crack under the "guilt" of your coworkers. In my case, they have been sadly mistaken. I work 40 hours a week, period, and if I happen to do something after hours (maintenance, etc), I take comp time.
      ---

  163. Re:We pay $100K! And Cambridge is better than Peor by dohnut · · Score: 1


    ...but, of course, they will have no time to do such things. So...

    --
    Stupider like a fox! - H.S.
  164. Comment on article by jag29 · · Score: 1

    Software engineering is different.

    Software engineering is different because it is still more art than science. You either "see it" or you don't, and it's very fragile. No good painting, and no good software, was done by committee. It may be copied by committee (i.e. Microsoft's "innovation" techniques) but not originated by committee. You can't "manage" it with any canned techniques like this article proposes yet again and expect results. _You have to find what works for your people!_ If you experience turnover you may have to change to a whole new environment!

    Software engineering is different because you are doing a different job every time. All the effort goes into writing it. Making an unlimited number of copies is easy. You don't learn one set of tasks and repeat to produce more units, you solve a problem every day and move on to something different the next day. This can be fun but also stressful on the brain. This is why measurement is difficult, and management is difficult, and predictability and project scheduling are difficult. The process of writing software is forever a moving target, and completely unique to each project.

    You know, if two programmers producted a market cap of $30 billion, who gets all the stock?

  165. I have gotten BETTER with age. by catseye_95051 · · Score: 1

    Young men work fast, and work long, and have to in order to produce.

    Older men work slower, shorter, and produce the same or better results because (hopefully) they've made most of their mistakes when they were young and learned from them.

    "Line counting" is a legacy of IBM and one of the silliest thinsg ever to hit coding. 5 lines of code that do the work of 50 are easier to maintain and more likely to perform quickly.

    When we are young, we use brute force. When we are older, we use elegance instead.

    1. Re:I have gotten BETTER with age. by catseye_95051 · · Score: 1

      I meant to end this with a quote. A very bright Brittish school-boy said this to a friend of mine who was watching the boy slowly and methodicly build a construction project:

      "I am in a great hurry, so I must work very, very slowly."

      Out of the mouths of babes sometimes comes great wisdom.

  166. Form a union! CPU: The Computer Programmers Union! by Anonymous Coward · · Score: 5
    Don't wanna haul around radioactive waste in cardboard boxes? Or carry ebola samples in ziploc bags? Or work in mines with no wall or celing supports? Or work 16 hours a day and live in soot covered housing on company grounds? Well, we're paying you $150K/yr, so shut the fuck up, whiny mama's boy.

    Is "high pay" the latest excuse to justify crap treatment?

    It gets worse. Get married? Have a kid? Need to cut back the work hours to "only 40-50 hrs/wk" as a responsibility to your family. Then you get fired. And no IT company will hire older workers that have a life because they won't work 80 hours weeks (like recent college grads and H1B visa workers can), even though their contract never mentions more than 40 hours, or mentions overtime pay or days off for additional work hours, which employees get fired if they actually try to claim that pay/time. And of course having the company cell phone 24/7 on weekends or at night is never considered to be so much as one working hour.

    If companies don't start treating IT workers better, tech unions WILL form. Think they're a bad idea? Hate untions? Hate the corruption? Hate the politics? Hate the strongarming? Well, hey Mr. Employer, then this is your lucky day, because you have a chance to FIX THINGS NOW, before the union forms. Otherwise, don't start whining when some union has your business upsidedown by the balls down the road, because you had your chance to fix things now. Why are you wasting time reading this while your IT staff is 6 braincells short of pulling triggers from overwork? Go and make their lives more pleasant. Yes, it'll even boost productivity. Happy workers are productive workers.

  167. SCREW YOU!!!! by Xenix · · Score: 1

    ADP-1437-006

    --
    You can't destroy the Earth, that's where I keep all my stuff!
  168. Re:Link slashdotted... by dhogaza · · Score: 1

    Well, arsdigita.com is generally a very lightly-loaded site. It's normally only visited by aD staff, clients (and potential clients), and folks who use the company's open source toolkit. They probably didn't bother to configure it to accept large numbers of connections, and it is probably running on a shared server.

    The tachnology scales fine, they operate some busy sites.

    When the OpenACS site was slashdotted a few months ago ("Why not MySQL?") Ben, the author, was busy working on the system, which happened to be his personal server at the time (dual P400). Not only did the system survive being slashdotted, but he didn't even notice the load and had no idea that his piece had hit slashdot until someone e-mailed him the news.

    (OpenACS is AOLserver+Postgres+aD's toolkit, i.e. the same technology but PG-based rather than Oracle-based).

  169. Re:Link slashdotted... by cpeterso · · Score: 2


    Netcraft says arsdigita.com is running AOLserver 3.0+ad5 on Solaris. If the OpenACS on a dual-processor P400 has no load impact when a Slashdot article linked to it, then how can a site running Solaris be slashdotted off the map all day? I assume that most Solaris servers are at least as capable as a P400.


  170. Technical Workers Unite by abe+ferlman · · Score: 1
    From a business point of view, long hours by programmers are a key to profitability. A programmer probably needs to spend 25 hours per week getting coordinated with other programmers and comprehending the structures of the systems being extended. Thus a programmer who works 55 hours per week is twice as productive as one who works 40 hours per week. In The Mythical Man-Month, the only great book ever written on software engineering, Fred Brooks concludes that no software product should be designed by more than two people. He argues that a program designed by more than two people might be more complete but it will never be easy to understand because it will not be as consistent as something designed by fewer people. This means that if you want to follow the best practices of the industry in terms of design and architecture, the only way to improve speed to market is to have the same people working longer hours. Finally there is the common sense notion that the smaller the team the less management overhead. A product is going to get out the door much faster if it is built by 4 people working 70-hour weeks (180 productive programmer-hours per week, after subtracting for 25 hours of coordination and structure comprehension time) than if by 12 people working 40-hour weeks (the same net of 180 hours per week). The 12-person team will inevitably require additional managers and all-day meetings to stay coordinated.

    This is clearly from a management perspective, and while this advice will be useful for managers, it underscores the need for unionization among technical professionals. An industry norm of 70 hours a week would be devastating to the lives of most human beings without some other sort of compensation, like 3 out of every 7 weeks off.

    --
    microsoftword.mp3 - it doesn't care that they're not words...
  171. Hours? Hah. by Angst+Badger · · Score: 2
    Greenspun's right on except for the hours. Maybe he's right that good programmers are more productive pulling exceedingly long hours, but it's an awful way to treat workers. Sure, we get paid buttloads more than 19th century factory workers, but the social consensus that developed while union members were getting their skulls bashed in by private corporate armies and federal thugs in the first part of the 20th century was that some conditions are unreasonable no matter what the pay. If you have a spouse and children, to work 70+ hour weeks is to be neglectful, period. Unless we are collectively planning to continue the popular practice of riding young programmers like cheap whores and discarding them as soon as they turn 35, this sort of thinking must be met with the derision it deserves.

    Past a certain point, productivity has to give way to the well-being of the worker. Antebellum slaves were more productive working from before dawn until after nightfall, but their life expectancy wasn't very high. The Japanese, who pioneered this sort of thing in the white-collar world, are finding that the heart-attack rate for men in their 40's and 50's is alarmingly high. There is nothing anyone is doing in the business world, <sneer>"dotcom"</sneer> or not, that is worth grinding people into the ground like that.

    Just my two cents. I'm going to start my 70+ hour work week now.

    --

    --
    Proud member of the Weirdo-American community.
  172. Good specs by wiredog · · Score: 2

    "put out a working product built to spec within the amount of time allocated. " You have complete specs? How unusual. As a programmer I have found that the customers desires, and therefore specs, change during the course of a project. One of the hardest things to do is to get a customer to agree that "That feature needs to be in the next version." Because of this, the spec is never complete, therefore the project never is.

  173. Re:SE is difficult because... by kineticdave · · Score: 1

    Finally! Thank you. Forcing people to work 70 hours against their will is bad. But when artists are working, they usually keep working until they are finished. When you are inspired, nothing else matters. Read about the lives of "traditional" artists to see. Anyone who is really out there to solve problems and learn new things can't say they aren't inspired to complete a project, to solve a problem. On the other hand, they DO take a break when they are done. Artists may be obessed with some things, but they aren't always crazy.

  174. I'm on the cat side. by pruneau · · Score: 1

    I won't work for that guy.
    Why ?
    Because there is at least three things at home he will _fail_ to bring at work :
    - my wife (she's allergic to work)
    - my childs (just give them a try)
    - my cat (there's too much dogs into his offices).

    Hey Philip, work and life just don't mix...

    Unless you do things like redhat does : instead on bringing home to work, you bring work to home - now that's better !

    --
    [Pruneau /\o^O/\ warranty void if this .sig is removed]
  175. SE is difficult because... by garoush · · Score: 1

    ... Soft. Eng. is an _art_.

    -- George

    --

    Karma stuck at 50? Add 2-5 inches.. err.. 2-5x Karmas Count to your pen1es.. err.. Karma all naturally and private
    1. Re:SE is difficult because... by djweis · · Score: 1

      ...and a skill, and a craft, and a science. As much as managers would like it to be engineering, it's just not. With construction you are dealing with physical components with known properties that have been tested for centuries. Structural Engineering would look more like software if you had different bricks for every job, some of which are left overs from the last building, some are new stuff that you got the first pallet of, and they all were different. Also, no one is surprised when it takes a year to make a building and includes months of design, but no one would go for software schedules like that.

  176. Why do people think Greenspun is a guru??? by Ars-Fartsica · · Score: 2
    I agree with your statements, and I am at a loss to see why he is so often quoted and treated as an authority.

    Most of the oh-so-highly regarded advice on his photo.net site is typically useless drivel. Use Oracle?? Gee thanks Philip! I would've never have thought of that. Use TCL? Gee thanks Philip, but no thanks! Keep my html simple and clean? Gee no one ever thought of that before!!.

    Hopefully this flamefest will keep his diatribes off of /.

  177. Happily discarding decades of Workers' Rights... by American+AC+in+Paris · · Score: 5
    One very important thing to remember here, folks.

    The economy is good right now--very, very good. So good that We The Programmers can often dictate the terms of our employment.

    Being human, we get greedy. We willingly work unhealthy hours at the promise of scrumptiously high wages. To help us along with being in the office 70 hours/week, employers give us cushy toys and comfy offices.

    What happens, though, when the golden days end?

    What happens when you wake up one day, find that you don't have the comfy office environment you once did, that there aren't fifty gazillion companies who'd hire you in a second, and, because you've done it so willingly for so long, you're still expected to work the same 70-hour week as before (or stand to lose the job you can't replace in a heartbeat anymore)?

    The companies are only your friends now because it's the only way they can keep talent. What do you do when the tech cup no longer runneth over, and you've already willingly committed yourself to a dangerously unhealthy work week?

    We're taking the work of generations' worth of workers' rights activists and throwing it all out the window because of a sudden, unexpected, and extremely volatile explosion in the amount of leverage the common tech worker has. We're willingly launching ourselves back into indentured servitude, and it's only going to be to our benefit for as long as the boom lasts...

    --

    Obliteracy: Words with explosions

  178. Re:Beekeeping by rogerwong · · Score: 1

    "'Having thus been rewarded for doing nothing, the programmer tries it again the next month' is absurd, factually incorrect, and, when you think about it, contrary to what is known by every open source contributor!" Having worked at a software company myself, I find Greenspun's statement insightful and extremely accurate. Why do you say it is absurd and factually incorrect?

  179. Software 'engineering' is different because... by l2b · · Score: 2

    ...as practiced in most shops it is not engineering. Can you accurately predict what the code will do before you run it? Betcha most of us cannot. Real engineers can predict the properties of the most complex product they are working on before implementing it, be it buildings, circuits, mechanical structures, etc. (Or even complex large automated computer systems.) For this to happen, they have models that accurately and completely represent the contemplated system. I have met few people in the software industry that even realize this.

    If we built bridges the way most people build software, we'd all be dead because the testing (and problem discovery) would happen in production.

    1. Re:Software 'engineering' is different because... by truthsearch · · Score: 2

      This is true all too often, but well managed projects may not be as rare as you think. I can tell you exactly what new features will exist in the next releases of my applications and how they will look and feel to the user. In a well run project, you can write the app's user documentation before coding even begins. That's one difference between a programmer and a developer/engineer. Unless development is done what I call cowboy-style (come into down, get the dirty work done, then get out asap, leaving a mess behind), any good developer should be doing pseudo-engineering.

    2. Re:Software 'engineering' is different because... by l2b · · Score: 1
      This is true all too often, but well managed projects may not be as rare as you think. I can tell you exactly what new features will exist in the next releases of my applications and how they will look and feel to the user.

      Does this information reside in your head? If so, then it is not engineering.

      In a well run project, you can write the app's user documentation before coding even begins. That's one difference between a programmer and a developer/engineer.

      If this is solely in text form, it is trivial to prove that (unless the system is very, very simple) the text is incomplete, inconsistent and incorrect (i.e. does not reflect what needs to happen correctly). It will also be close to impossible to manage changes.

      Unless development is done what I call cowboy-style (come into down, get the dirty work done, then get out asap, leaving a mess behind), any good developer should be doing pseudo-engineering.

      I am not quite sure what you mean by the above statement (esp. the term pseudo-engineering).

    3. Re:Software 'engineering' is different because... by Mr.+Sketch · · Score: 1

      I would bet that most 'real' software engineers can predict what their code will do more than 90-95% of the time. I'm not saying that I can, but I like to think I'm getting there :). As we all gain more experience we get to the point that most of the time we can just look over the code and see what it's going to do without having to run it.

      There actually are Proof of Correctness tests that can be performed on code to ensure that it will perform it's desired function. And I've heard (not actually seen though) of software that will produce 100% 'correct' code. However, 100% correct code is usually not optimized at all and in doing the optimization is where most programmers fail and where bugs are often introduced.

      The solution that Software Engineers use today is to just try to break the project up into managable components and hope each one of them is done correctly. However, if a component is not correct then the problem cascades into other modules that depend on that component.

      But in theory software can be written such that it doesn't have to be executed to know what it will do, however in practice this is usually not the case.

    4. Re:Software 'engineering' is different because... by syates21 · · Score: 1

      Hey, wow I guess all the CPU designers at Intel must not be "real" engineers either. They obviously can't predict with 100 percent accuracy what their chips will do before making them, or they wouldn't need BIOS-writable microcode segments would they?

      Also, I guess real engineers type with perfect accuracy as well. Interesting.

  180. Re:Form a union! CPU: The Computer Programmers Uni by HardLogic · · Score: 1

    Um, maybe you should consider becoming some sort of free agent. Most of the contractors I've met would think twice before taking a FT/perm job. Most of the former FT/perm contractors I've met have *no* plans take a FT/perm job in the forseeable future.

    Here's a link for some (lite) background:
    http://www.net-temps.com/talentcenter/section4.h tm

    "The most telling statistic about Independent Contractors is that when surveyed, 96.5% indicated that they intend to continue in this arrangement for as long as they were able."

    Union, shmunion.

  181. Unskilled and unaware of it... by Tet · · Score: 2
    From the article:
    One of the paradoxes of software engineering is that people with bad ideas and low productivity often think of themselves as supremely capable.

    Actually, this isn't unique to software engineering. I recently read a fascinating paper on that very subject, which shows that the least capable are not only unable to perform a given task, but they lack the ability to judge their competence at that task, and hence grossly overestimate their abilities. See http://www.apa.org/journals/psp/ psp 7761121.html.

    --
    "The invisible and the non-existent look very much alike." -- Delos B. McKown
    1. Re:Unskilled and unaware of it... by l2b · · Score: 1

      This was indeed discovered very early on. The oldest reference I have is "Forgive them, for they know not what they do", which is, of course, found in the Bible's New Testament.

  182. not always virtual by cabbey · · Score: 1

    which freakin' site are you at? better yet, which group? IGS? My site has a strong "old school" server group mentality in a lot of places... 40-45 hours into the week people just disapear. Friday afternoons the place is deserted. I mean it's not always, we all sometimes put in the overtime when a customer goes balistic, or a serious critsit comes in... but in general if anyone made that kind of requirement around here they'd be told what they could go do with themselves. (I can't say people would walk, because there aren't that many places to walk *to* around here, you'd have to relocate.) Having said that there are a number of us younger, single, folks who do spend 50-60 hours a week *at work*, which equates to maybe 45-55 hours a week working. it contrasts with the older, maried with children croud that might as well be punching a clock. (one guy that used to sit down the hall from me could be used to set a clock, in EVERY day at 0630, out at 1530, lunch from 1045 to 1145.

    Anyway, I know when I became an "eMobile worker" (gag me) the dirty looks I got we far from virtual. One individual that sat near me made no small issue of the fact that they didn't think I deserved a thinkpad (t20s were the current machines being distributed) and that they should get one of those to replace their 770 (or maybe it was a 600... yeah it had to be). My counter argument was basically that management didn't agree with them, and that my manager was sick of seeing me in the office as much as I was. We did a trial with a loaner thinkpad and I got a LOT more accomplished with less time in the office. The only thing I had to fight, and still do to some extent, is the urge to not stop working at home when it's nice and quiet and I can just think and work (had a few burn out weeks when I first went mobile). But now I can work in my office, or in the lab, or in a the support center, or in a conference room, or wherever. A case that I've proven a few times when I had deadlines looming and couldn't think straight in my office... unplugged walked a few buildings away to a buddies office in another division and camped out on his floor for an afternoon - got more work accomplished than I had in the last three days because no one knew where I was. :)

    Oh, and remember, the manager's guidlines say they're not allowed to use 1,2,3,4 (or 1,2,3,e in some locations) anymore, it's "exceeds expectations", "meets expectations", and "falls short of expectations" (or some such eBull as that.) Oh well, when you've already finished that farce for the year, and it isn't november yet, what's the real point? (to be fair, it's only because of a managerial change, the old guy wanted to do ours since he had worked with us all year, and needed to be completely wrapped up... but still, I have my rating for the year, it's submitted and signed by my first two layers of management... where's the incentive?)

    don't forget that the boss only works half days... "six am to six pm is half a day" (overheard half of a phone conversation between workaholic manager and spouse, on their aniversary (or maybe it was her birthday, don't remember well.)

  183. Chairman Lou by cabbey · · Score: 1

    to be precise, Lou's take was as follows for 1999:

    DIRECT COMPENSATION
    Salary : $2,000,000
    Bonus : $7,200,000
    Other : $ 66,376

    LONG TERM COMPENSATION
    stock awards : $0
    underwriten securities : $0
    LTIP Payouts : $5,250,717 (delayed bonuses)

    ALL OTHER COMPENSATION
    TDSP (401(k)) / EDCP : $285,000

    __TOTAL_COMPENSATION__ : $14,802,093

    Stock Options
    Granted : 0
    Exercised : 803,156
    Realized Value : $87,732,699
    total remaining options : 7,073,804
    value of (on 12/31/99) : $481,350,101

    __ANALYSIS__

    Total "income" in 1999 : $102,534,792
    percentage based on IBM stock price : 85.6%

    So what does this tell us? Lou is the most results driven employee in the company.

    (all data from IBM)

    just for fun, current (today) value of the average options grant for engineers this past summer: -$3,430.50 (if they were all exercisable)
    and for the average grant the previous summer: -$19,612.50 (again, if all were exercisable today)

  184. Salaries not that large by MrEfficient · · Score: 3
    ...but I'm not sure I agree with his concept that it is necessary to work 70-hour weeks (though for unreasonably long hours, they do pay unreasonably large salaries).

    What do you consider to be an ureasonably large salary? Are you talking about the $70k they (ARSDigita) pay their entry level programmers? Let's think about that for a minute. $70k for 70 hours per week, that would be $40k for for a 40 hour per week job. Mmmm, not looking so good now, but wait, there's more. Let's consider the location of the job, Mass. What's the cost of living there compared to your current location (hint: its pretty high). According to this site $40k in cambridge is equal to about $24k where I live. That just plain sucks. Remember, big numbers don't always mean big quality of life!

    --
    Check out AbiWord.
    1. Re:Salaries not that large by Zak3056 · · Score: 2
      Let's think about that for a minute. $70k for 70 hours per week, that would be $40k for for a 40 hour per week job

      Actually, your math is a little on the LOW side. The 40k/yr job, if appropriately compensated (i.e. overtime) would pay $85k, not 70. In other words, it's even worse than you're saying.

      --
      What part of "shall not be infringed" is so hard to understand?
    2. Re:Salaries not that large by xerx · · Score: 1

      That is a great point.

      Last week I was shopping at a local retail store with a friend who had recently started in a new entry level programming job at 50K a year. He was very excited about the MONEY he was making, but I never saw him around much. He said he was pushing 70+ hours a week, but it was worth it.

      I happened to be in a retail store that my wife used to work for and knew how much she started her people at. The 37.5 hour week worked out to 24K a year, plus commisions of 5K plus annually. That works out to be about 29K a year, take the 50K at 72 hours a week my friend was working and covert that to 37.5 hours and you get 26K a year.

      He was starting a computer job for less money an hour than the girl who just tried to spray him with perfume.

  185. Hard to manage programmers in Silicon Valley... by imagineer_bob · · Score: 1
    ...or at least it was a year ago, during the peak of the "dotcom" boom.

    It was so easy to find a job (and conversely, so hard to hire), that my staff knew as long as they were somewhat productive, their jobs were safe!

    I had a hell of a time getting people to show up to work before 1 or 2 in the afternoon and staying for more than 4-5 hours a day! Threats of termination didn't help, because they knew it would be next to implossible to replace them.

    Now that the dotcom bubble has burst, good old-fashioned management techniques will probably work again, but I'm out of the people-managing business for now.

    --- Speaking only for myself,

    1. Re:Hard to manage programmers in Silicon Valley... by In-Doge · · Score: 1

      Well if good "old fashioned" managment techniques mean overworking your employees and treating them like dirt or little more than pawns in a chess game, count me out.

      One of the reasons I love the computer industry is because it's easy to find a company with a fresh, laid back attitude to work, yet can still get the job done. Work hard and play hard.

    2. Re:Hard to manage programmers in Silicon Valley... by sheldon · · Score: 2

      Being asked to do more than 4 hours a day is called overworking?

  186. Re:Leaving @ 6:00 p.m. by The+Mayor · · Score: 2

    From their perspective, it doesn't cost any extra to have employees work longer than 40 hours. They're on salary, right?

    --
    --Be human.
  187. Let's unionize by The+Mayor · · Score: 2

    One way to stop pathetic arguments like this one is to unionize. The current bargaining system for negotiating salary and terms of employment are slanted too heavily in the corporations' favor. This has happened in a number of industries over a long period of time. One way to effectively deal with it is to unionize.

    Comments? I'm an independant contractor, so I have less to gain from unionization. That said, I'd be glad to take a leadership role in the effort. Anyone else?

    --
    --Be human.
  188. punishment != negative reinforcement by mmmmbeer · · Score: 1

    One thing in particular bugged me about this article. He misuses the term "negative reinforcement." This is not the same as punishment, which is what he is talking about. Punishment is the act of causing an unpleasant result if the subject (e.g. an engineer or a student) does not produce the desired result. Negative reinforcement is the act of causing something unpleasant until the subject produces the desired result.

    As an example, in teaching a rat to run a maze, lets say you implant a device which can cause the rat a small amount of pain. Then, if the rat runs the wrong way, you activate the device. This is punishment. Now lets say you keep the device active unless the rat is running in the right direction (even if it's standing still). This is negative reinforcement.

  189. ...and for the wankerous materialism by Peter+Harris · · Score: 1
    I couldn't agree more. The company is going to make working past 6pm at the office more attractive to me than going home to my two beautiful children, cooking stir-fry and playing Vandalhearts 2 on the playstation?

    I don't fuckin' think so!

    I don't work for a software house, but a whisky company. Overtime is optional, holidays are good, pay is OK (I don't care that much), and if I can get my work done as well as reading /. and working on my Sourceforge projects then my boss is not going to give me a hard time.

    Hey, I am at least a "good" programmer, but that's not all I am, and I happen to like a little balance in my life.

    P.S. the word "wankerous" is open-source and may be freely used and distributed (except in the US, perhaps :-)
    --

    --

    -- What do you need?
    -- Gnus. Lots of Gnus.
  190. Leaving @ 6:00 p.m. by bigbird · · Score: 5
    If you see one of your best people walking out the door at 6:00 pm, try to think why you haven't challenged that person with an interesting project.

    Maybe your best people have a life. Maybe they are married, have kids, or have hobbies. Maybe they work on a really cool open source project outside work. Maybe they have better things to do than dedicate every waking hour to your ever so important project ... maybe they are smarter than you think!

    And finally, maybe they are good enough or smart enough to accomplish more than what's required from 8 am - 6 pm. And you just want to extract every last ounce of servitude you can. Not a nice way to treat people.

    1. Re:Leaving @ 6:00 p.m. by crosstalk · · Score: 1

      I totally agree with this. Here at IBM they thing that all we do is come to work and then go home and sleep. All the time they preach this line about being good citizens and all. Then they turn around and all the sudden occasional overtime is now mandatory overitme so that they can get a few more people out of you without having to pay for another actual person. This is one trend here that I am not happy with at all. I for one know that I must have my time away from work, specifically with MY GF, and with the boy scout troop I help with and also just working on the house making sure that everything is taken care of like cleaning and mowing the yard, and cooking. It is just crazy to expect people to work 70 hours a week all at work. Because the rest of your life never stops, even though work sometimes thinks it should.

      --
      An armed society is a polite Society
    2. Re:Leaving @ 6:00 p.m. by DrCode · · Score: 1
      Yes... And maybe they're working on a difficult problem that they need to sleep on, or perhaps ponder while they go for a jog.

      Or maybe they need to get out early enough to visit their state's Labor Board office to put in a complaint about you requiring overtime but not paying for it!

  191. 36 in Germany? by Peter+Harris · · Score: 1
    So what's so much worse about working in Germany that you can only stand 36 hours of it?

    No wait, I know - variable names.
    --

    --

    -- What do you need?
    -- Gnus. Lots of Gnus.
  192. Working hours... by citmanual · · Score: 1

    Phil, as usual, has things pretty much right. But, I disagree entirely with his concept of hours. He seems to think that coders should be strapped in for 80+ hrs/week and I think that is nuts. I need my home time to deal with having a life (translation: getting really really drunk because I have no other life). I do vaguely remember having a girlfriend at one point or another, and I do recall not wanting to work all day and night.

    I would like to see a slashdot poll on num of hrs we all work. I imagine there already has been one, but nothing better than a rehash.

  193. Re:Happily discarding decades of Workers' Rights.. by Badgerman · · Score: 2

    Agreed. Some programmers are putting themselves in a dangerous position - to themselves, and to feeding the delusion some (not all) companies have.

    We *DO* have the talent to broker deals, to make a difference. But to do that we need to be willing to change, to find the right jobs, and to sometime take that lower paycheck in exchange for sanity.

    It's also important that companies get realistic views of programmers and programmer needs now. Otherwise they will make plans based on inaccurate information. Taking a job that gives you time and sanity is one small way to contribute to this.

    And these jobs are out there. I'm employeed at a consulting firm with training, bench time, and a reasonable support-the-employee attitude. I even make more money than where I used to be. Best of all for them, I WILL work those long weeks when they're really necessary, because I won't be burnt out.

    --
    "The Sage treasures Unity and measures all things by it" - Lao Tzu
  194. 70-hour weeks, etc by algebraist · · Score: 1

    The 70-hour workweek is one aspect of some successful models of software development. Nevertheless, it is hardly a sufficient aspect. IBM and others have for years encouraged long hours and it seems in my experience this was just effort tossed away. Also, the extreme programming approach advocated by Jeffries and others puts a premium on proper design and pair programming work rather than isolated heroes, seems to be successful, and keeps within a reasonable workweek both so to not overly fatigue its participants and to be predicatable.

    Simply put, a 40+ hour week is not sustainable for the long term. Further, it is not realistic as an HR policy. The participants will either get old enough to wonder about other things in their lives (and have made enough money so they can bolt and not give a damn) or pull back because of health reasons. And I really wonder about the ethics of an industry that says its doesn't care and demands such despite its effects.

    Finally, one successful e-entrepeneur, Jeff Bezos, makes it a policy to demand he and folks around him get enough sleep. Or at least so he told the Wall Street Journal . It appears he's backed up by a lot of scientific evidence. There are recent articles about this in Kinko's IMPRESS magazine, the Washington Post, and the above-mentioned Wall Street Journal, unfortunately either only available for a fee or only in dead-trees form.

    --
    Jan Theodore Galkowski, (Oo) http://www.smalltalkidiom.net/ MySQL,PHP,ETL,SQL,MinGW C, and plucking the Web
  195. Good Grief!! by StormyMonday · · Score: 2

    Where to start? This is the biggest piece of pseudo- management crap I've seen in ages. Outside of a few well-worn chestnuts ("Positive reinforcement is better than negative reinforcement. People do what you reward them for doing." Duh, and duh.) this is a recipe for disaster.

    Rather than do a point-by-point commentary on this piece of fertilizer, I'll just say that, Once Upon A Time, I was part of a proposal effort where our competition followed Greenspun's philosophy. Our group used the classic software- engineering management style. We not only won the bid, we humiliated the other group. The client rated our system superior in every category, including price.

    Yes, we had our superprogrammers. Yes, most programmers were average. The main thing that made this project such a success was talented management and adequate funding.

    Perhaps Greenspun is hoping his competitors will follow his advice?


    --

    --
    Welcome to the Turing Tarpit, where everything is possible but nothing interesting is easy.
  196. Re:Form a union! CPU: The Computer Programmers Uni by boomzilla · · Score: 1

    I can't tell if this was sarcastic or not.

  197. Close, but.... by rrwood · · Score: 1

    Greenspun is right on the money for most of what he says. I'm betting he's single and a major geek though, since he has no clue about families and generally having a life outside of work. Granted, there are some people who are great programmers and who have no life other than work, and if you built a company out of them, you'd probably make a ton of money. However, there are a lot of talented people who do grow up and who do realize that there is more to life than just code, and IMNSHO it's worth tapping the resource that these folks represent, too.

    And yes, I do consider myself a good programmer, and I do have a wife and kidlets. And having kids has turned out to be cooler than I could have ever comprehended before it happened. Yeah, it's an intellectual thrill to write some kick-ass code and have people at work be impressed, but if I were hit by a bus, they'd hire someone else, and never miss me. But my kids-- to them, I'm irreplaceable, and as a parent, I'm doing something that truly touches their lives and changes the world (for the better, I hope).

    So, try to stay focused on what really matters. Computers are a lot of fun, but it's the people in your life that really matter (or should). Again, IMNSHO, of course.

    -Roy

  198. Re:My perspective by joshua · · Score: 1

    The trouble is, observation shows that most companies don't actually *want* to produce the best possible product, and will actually penalise developers who have that as a goal...

  199. Move to NL by citmanual · · Score: 2

    Over here we don't get wicked huge salaries (excellent lifestyle by NL standards), but we do get perks from hell.

    -28 days/yr vacation, off the bat. I started here June 1 and have already burned my 16.5 days for the year.
    -hella perks. I went for an all expense paid corp vacation to South Africa. Spent the whole week drinking corp beer and eating like a king. Oh, and there was the whole safari aspect
    -decent working hours. I slog 45 hrs usually. no more, not much less.

    I don't get to drive a hot new car as I would back in the US. I also miss my truck, but living is good.

    1. Re:Move to NL by codemonkey_uk · · Score: 2
      The Netherlands. But you can do normal hours in London too if you like.

      The whole 70 hour week is a demented American concept.

      Only a fool would throw away their formative years for money.

      Money. Does your money hug you? Does your money say "I love you"? No. It does not. Its money, and, its worth nothing unless you spend it.

      Thad

      --

      Thad

    2. Re:Move to NL by Kierthos · · Score: 1

      Where's NL? I mean, what does NL stand for? North London? *feels he's missing something important here...*

      Kierthos

      --
      Mr. Hu is not a ninja.
  200. Re:Do they only hire people with no social life? by fizban · · Score: 1

    Hear Hear! Bravo!
    ----

    --

    +1 Insightful, -1 Troll. What can I say, I'm an Insightful Troll.

  201. Link slashdotted... by TurkishGeek · · Score: 4

    Well, the ArsDigita link is slashdotted. Strange contrast to their claims of the reliability of their server/software architecture that they hype up to high heaven on their site. Perhaps overpaying programmers/sysdamins to crank out Tcl code or set up AOLserver boxes for 70 hours does not necessarily work for designing stable Web sites.

    --
    Zigbee Central: A Zigbee weblog
    1. Re:Link slashdotted... by corecaptain · · Score: 1

      moderate this one up.... Greenspun (who does have some interesting things to say, but has a God complex IMHO) should make sure his site(s) can handle the slashdot effect before spouting off!

    2. Re:Link slashdotted... by gadders · · Score: 1

      Too true. Are they going to re-write their "How to Build High Performance Websites" manual?

  202. Managing software engineers is like herding cats. by NecroPuppy · · Score: 2

    Think about it.

    Programmers want to do their own thing, even though they are being paid to do what the company wants.

    To get them to do what you want, occasionally, the cat toys have to be broken out, in an attempt to get them all working on the same thing.

    And, like cats, if you mistreat them, they will sulk, ignore you, and actively plot your destruction.

    --
    I like you, Stuart. You're not like everyone else, here, at Slashdot.
  203. Article thoughts by timbu2 · · Score: 2

    I've always liked Mr. Greenspun's writing, and his various we sites.

    A couple of things to keep in mind.

    He isn't always as right as he is opinionated.

    He makes a lot of assumptions about the world, that may seem to have evidence in his world, but don't play so well to the rest of us.

    That said, there were a number of interesting points made.

    Like everyone else I think having people work 70+ hours a weeks is bullsh*t. It might work for a while but it isn't sustainable or neccessary. I work with veteran of the software industry who started in the 70's, 80's and early 90's. Not only can they put out high quality code, but they can do it in 40 - 50 hours.

    Maybe if you hire single people who wish to stay single this will work. Heck if you reward them well enough anyone might do it for a year or two, but I don't think it's sustainable.

    See what happens to your star programmers when they are going through a really ugly divorce because there wife has given up on their marriage.

    25 hours a week spent in communication is ridiculous. Lots of companies have a lot less than that.

    One or two people doing the design, now that is critical. But it might be valuable to have a bunch more people review the design to make sure the design isn't screwed up.

  204. Joel Spolsky has good thoughts on these issues too by gkanai · · Score: 1

    Joel Spolsky also writes on these same issues: interviewing programmers, hiring programmers, user interface design for programmers, functional specifications, as well as productive software schedules.

  205. Can you say stroke at 39? by bluGill · · Score: 4

    A neighbor of mine was a single guy who owned his own house, has a nice boat, nice car, and over a million dollars (if he sold his investments) He had a stroke at 39, and will spend the rest of his life in a nursing home unable to enjoy any of that money. Well, unless you call paying a nurse to help you to the bathroom enjoying. Personally I respect my fellow humans too much to want someone else wiping my rear end.

    Point is, if you live a healthy life to 75 or more, retiring at 38 is great and worth the years of working too long of hours. If your health disappears what good is all that money.

    Of those I graduated from high school with, several didn't live to their 5 year class reunion due to accidents. (I'm not even counting drugs or suicide which account for a couple more) Accidents happen, and there is nothing you can do about them.

    therefore, I'm enjoying my life now. If I live to be 123 and am healthy all the time, great, but if not I've enjoyed what I had. Mind you, I am puttting a large sum of money into retirment funds so I can retire early, but I'm not working more then 50 hour weeks (and that much rarely) so I can enjoy what my health while I have it.

  206. Drivers and Software Engineering... by truthsearch · · Score: 1
    One of the paradoxes of software engineering is that people with bad ideas and low productivity often think of themselves as supremely capable.

    Isn't this true of most drivers on the road? If we're all such good drivers, as most of us think we are, then why are there so many accidents?

  207. Do they only hire people with no social life? by Malc · · Score: 5

    "It is easy to make an office more entertaining than the average person's home. Most people have a TV at home but they don't have friends with whom to watch it. "

    Comments like this and obvious expectation to work 70 hour weeks seem rather condescending and also imply an expectation that work is more important than your life. In my experience, at 70 hrs/wk, work becomes your social life too. Sorry, but that's not acceptable to me anymore. I have and want a life outside work. I recently got engaged, and in my opinion, family comes first. Then friends. Work should have a lower priority than your happiness, and it shouldn't try to provide all those things (afterall, most employment that I've experienced in the US is "at will" and they will drop you with no compassion if they need to make cutbacks). I might love my job, but not over other aspects of my life. I work to live, not live to work.

    If other people want to work that hard and enjoy it... fine, but don't be resentful of those who want to work 40hr weeks, and don't try to make them feel guilty for that. I've seen too many examples of managers trying to manipulate people with families, outside interests, etc, by telling them that a load of other people in the office are working twice as many hours. That's not fair: most of those other people are either single, or slowly destroying their personal relationships. What's the point of working 70+hr weeks on a project if you wind up with a divorce? You've lost somebody from your life who should be there long after you've left your employer. You might have earnt a lot of money (assuming that the project succeeded), but it's no good if you have nobody to share it with, and enjoy life with.

  208. Warning! by Neutronix · · Score: 1

    Just a bit of advice for the ones that are working 70-80 hours a week...

    Why did you get that job? Because you had the technological expertise, right?
    How long will you keep up with the latest technology while still working all your waking hours?
    Will you be useful to your company?

    Will your company give you time to catch up, or will they contract a younger a more apt guy?

    Think about it.

    --
    Long live TUX!
  209. More hours == more quality code? Hardly. by gambletron+3000 · · Score: 1

    Another person who seems to belive that Rambo coding is the way to go. Productivity is not a measure of how many letters you type. Try reading <a href="http://www.fastcompany.com/online/06/writes<nobr>t<wbr></wbr></nobr> uff.html">this</a> for an example of how coding is done by grownups when lives are on the line instead of stock options.

  210. If you don't like money ... by psergiu · · Score: 3

    ...then come here, in eastern europe. You'll get like 6,000 if you're really lucky (usually more like 4,500) :)

    And the prices here are just a little tad lower. (US imported stuff is allmost 2x the US price however)

    You americans just whine too much.


    --

    --
    1% APY, No fees, Online Bank https://captl1.co/2uIErYq Don't let your $$$ sit in a no-interest acct.
  211. Don't these people have lives? by armb · · Score: 1

    "It is easy to make an office more entertaining than the average person's home. Most people have a TV at home but they don't have friends with whom to watch it."
    I have a family at home which means a lot more to me than TV. I like where I work, but one of the things I like is that working 70 hour weeks is something that happens occasionally when there is a crisis, not the norm.

    --
    rant
  212. He's right about the hours, but... by joss · · Score: 2

    You do get more than twice as much work done working 70 hours a week than 40.

    He's also right about productivity. The best programmers do get 10x as much done. The exceptional programmers typically get 10x as much done as the good programmers.

    Companies try to listen to this advice, but they never take it seriously. They think they can get really good programmers by paying 1.5x as much and buying a few toys. Unless they are very lucky, they just end up with average programmers like everyone else, and maybe a couple of engineer-savants (great programmers with no common sense).

    The fact is that no companies will pay them 10x as much. In fact, it's hard to find a company that will pay 2x as much. Say an average developer can make $50,000 per year working 40 hours per week. If paid according to achievment, a really good programmer working 70 hours should earn around $15,000 PER WEEK. There's no way on earth that traditional companies will pay that much - the director of HR would go mental if they found out some hacker at the bottom of the management chain was earning twice as much as they were.

    The only way for really good programmers to make the kind of money they are worth is by working for a start-up where they can have a decent equity slice. Then they'll work 70 hours + per week. Otherwise there's no point unless the work is *very* interesting. Contrary to popular opinion, the very best programmers do have a life. It's the 2nd tier geeks who happily work 70 hour weeks as a matter of course and spend the rest of their life playing video games.

    If companies took the hyper-productive programmer thing seriously, the job market for programmers would look like that for sports stars. Until companies are prepared to pay those hyper-productive programmers enough that they could work for 6 months and then spend 6 months doing whatever the hell they like. In the mean time they just pretend to themselves that they have the best people.

    --
    http://rareformnewmedia.com/
  213. Positive reinforcement is far better by sips · · Score: 1

    Feeling that no matter what you do you will fail is absolutely the worst possible thing that you can do. Personally I don't believe in total failure just setbacks and revenge^H^H^H^H^H^H^H reaction to problems.

    --
    Respond to s
  214. Frankly, I'd rather depend on the Easter Bunny by Thag · · Score: 2
    First off, most programmers aren't working 70 hours a week, or at least not in any company I have ever worked for.

    Secondly, exactly how is a union supposed to make my work experience better? Most of my problems at work are with management. Bringing a union into the picture ADDS ANOTHER LAYER OF MANAGEMENT! Not only do I still have to deal with my boss, but now I have to deal with my union boss as well, and I probably have to deal with my real boss THROUGH the union boss and some other damn committee. This is NOT a solution!

    All I can say is, if anyone ever tries to do this in a company I work for, I will try my utmost to scuttle it.

    Jon Acheson

    --
    All opinions expressed herein are my own, and not those of my employers, who are appalled.
  215. so much for phil's scalability by kellan1 · · Score: 1
    well greenspun has always contended against all logic and reason that the AOLServer and Tcl combination scale. if so, why is his website slashdotted?

    kellan

  216. Beekeeping by goliard · · Score: 5


    The more I read of Greenspun, the more I am convinced he's completely clueless.

    WRT reinforcement: His little folk wisdom is thoroughly trashed by the many actual studies cited in Punished by Rewards: The Trouble with Gold Stars, Incentive Plans, A's, Praise, and Other Bribes by Alfie Kohn. Study after study demonstrates that "positive reinforcement" is devastating to creative or intellectual workplaces. Greenspun's comment:

    Having thus been rewarded for doing nothing, the programmer tries it again the next month
    is absurd, factually incorrect, and, when you think about it, contrary to what is known by every open source contributor! I recommend Kohn's book highly to anyone planning going into management, in part because what he has to say about why people do difficult intellectual work dovetails perfectly with what people have observed in the open source movement -- only he was writing back in like 1994.

    In fact a lot of what Greenspun talks about as "obviously" true has no actual support in research. He talks about how overtime is such a wonderful thing, and how it makes companies so wealthy. I have in other places noted the mathematics of wages and resources which are so advantageous -- to the company. After all, if you donate 20 hrs beyond a 40hr work week without further compensation, your manager gets a project done for half the money (and possibly in half the time, if there is no exhaustion penulty). Very efficient that.

    What of merit there is in Greenspun's article was long ago written by Orson Scott Card in his famous essay "How Software Companies Die" -- the one which originated the metaphor that managing programmers was more like keeping bees than planting crops.

    Frankly, Greenspun comes off as manipulative and exploitative and pretty skanky. And superstitious: it sounds like his explanations of his company's success are post hoc, and reflect more what he'd like to believe that his actual practice.

    --
    -*- Any technology indistinguishable from magic is insufficiently advanced -*-
  217. Extreme Programming ... by jiriki · · Score: 1

    ... sounds a lot better to me ;)

    http://slashdot.org/books/99/12/ 21/ 097256.shtml

    Working 70h might work for some time, but when the "great programmer" doing this leaves the company, nobody will be able to maintain the code ... great !

  218. Can't read the article, is /.'d by gelfling · · Score: 2

    But 70 hours a week is not managing anything. Sorry, but if I had a section head who required everyone to work 70 hours a week I would fire that person. 70 hours a week is churning client billables to insure that your own bonus is guaranteed off the backs of the people who work for you and are subject to your control. Threatening to fire people who don't can't or won't work 70 hours a week is criminal. Actually it is in many states and localities. You would be hard pressed legally to demonstrate that 70 hours a week was a known, described, understood and necessary job requirement or at the very least a long term convention of everyone doing that class of job aka medical residents.

    This kind of thinking is where workplace violence comes from. At the very least you're courting burnout, long term failure, increased absence, sick leave, slacking, substance abuse and depression.

    This is why software sucks.

  219. Re:I think... more issues by MidnightLog · · Score: 1

    I also have some issues with this article. This quote in particular bothers me:

    A programmer probably needs to spend 25 hours per week getting coordinated with other programmers and comprehending the structures of the systems being extended.
    25 hours a week seems way too high to me. 10 or 15 I could believe, but not 25. I've been working in this industry for 10 years and the only time I spent 25 hours a week "getting coordinated" and "comprehending ... systems being extended" was a couple of weeks when I had to modify a large COBOL program. I didn't know COBOL (still don't) so I ended up rewriting the program.

    The other issue that bothers me is related to the one you mention:

    However, I did have some issues. For example, Greenspun implies that programmers are naturally arrogant, saying that either the bad programmer is so bad that he's unwilling to accept good ideas, and that the good programmer is so good that he assumes that his idea is the best.
    It seems to me, from Greenspun's assumptions and conclusions, that he is used to and prefers programmers to be young. The idea of making the office more "nicer than the average programmer's home" so that "programmers essentially live at your office" is more likely to work with young, unmarried people. IMO, one of the common failings of youth is arrogance. This is especially true of young unmarried men who have recently graduated from college (like the "22-year-old Stanford CS punk" that Greenspun mentions). So when Greenspun says that programmers are arrogant, it means that the young, unmarried, college-educated (, male?) programmers that he is familiar with are arrogant.
    --

    To understand what's right and wrong, the lawyers work in shifts ...

  220. NOOOOOOOOOOOO by JurriAlt137n · · Score: 1

    Don't!!!!! It's crowded enough here as it is. We don't need shitloads of Americans walking around, stealing our jobs, smoking our pot, drinking our beer and sleeping with our women. Not to mention their incredibly intolerant behaviour to everything slightly different than themselves.

    Note to moderators: if you don't get the concept "sarcasm", then this is indeed flamebait. Do your worst...

    --

    People replying to my sig annoy me. That's why I change it all the time.