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).

30 of 310 comments (clear)

  1. 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.

  2. 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.

  3. 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
  4. 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).

  5. 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)
  6. 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).

  7. 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.

  8. 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

  9. Re:Working hours... by remande · · Score: 3

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

    --

    --The basis of all love is respect

  10. 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 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
  11. 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.
  12. 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!
  13. 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 ;-)

  14. 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.

  15. 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.

  16. 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
  17. 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.

  18. 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.

  19. 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
  20. 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

  21. 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.
  22. 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.

  23. 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
  24. 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.

  25. 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.

  26. 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.
  27. 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 -*-