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).
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.
*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
-jerdenn
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....
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
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
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.
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.
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
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...
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".
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...
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.
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!
It is OK to work single people 70 hours per week?
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.
These would all be forms of positive reinforcement.
70 hours is scary, but then again i am a lazy SOB anyway
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
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).
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.
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.
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)
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).
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.
(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...
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.
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
To understand what's right and wrong, the lawyers work in shifts ...
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.
- Get a boxload of toys, hand out to programmers, repeat if needed.
If programmers don't complain:ManicHawk - Just because you're manic doesn't mean the walls aren't bouncy
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.
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.
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.
:)
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...
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?"
- ^ - ^ - ^ - ^ - ^ - ^ - ^ - ^ - ^ - ^ - ^ - ^
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.
half in jest, but many a true word...
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.
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.
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).
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.
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.
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.
<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 -*-
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.
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.
PJRC: Electronic Projects, 8051 Microcontroller Tools
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)
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.
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.
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
--
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.
> 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
> 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.
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.
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.
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!
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).
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.
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.
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
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.
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.
oh life is sincere, believe me. but you won't find out that way
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.
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!
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.
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.
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.
by Philip Greenspun (philg@mit.edu)
Submitted on: 2000-10-22
ArsDigita : ArsDigita Systems Journal : One article
asj-editors@arsdigita.comReader's Comments
Add a comment | Add a linkThere 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.
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.
Developers: We can use your help.
- 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.
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.
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.
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
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!
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.
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
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.
Yep, I've heard of them. Who are you again?
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
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?
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.
You are saving half your income so that you can do this aren't you?
Bollocks to that!
Hacker: A criminal who breaks into computer systems
"Information wants to be paid"
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.
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
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
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?
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
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...
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
We had that poll. IIRC, most of us work "Hemos".
--The basis of all love is respect
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?
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
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:
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:
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
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.
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 */
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
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.
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.)
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
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.
http://www.arsdigita.com
cpeterso
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!"
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.
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.
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
Wait..... isn't that fuzzy math?
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.
It takes a lot of what Greenspun says and turns it on its ear.
managers...why god invented purgatory
Work to live... don't live to work.
that Greenspun should stick to managing our economy instead of managing our software engineers.......
.... So true, so true
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.
Information is the catalyst for revolution
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...
[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
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
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.
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!)
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
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!
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
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
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.
... and that at best we seek a bit of balance in secondary addictions: to TV, the Web, sex, drink....
... 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.
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.
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
"with their freedom lost all virtue lose" - Milton
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.
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.
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)
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.
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.
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
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.
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.
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.
Flame away, but I've never been impressed with
. html
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
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
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.
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
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!
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'
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.
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?
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
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.
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
Hmm ... do I get to pick the nurse?
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
[see subject]
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.
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.
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.
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"
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.
What are we talking about EXACTLY ? ... stop working.
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
- 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.
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
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.
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.
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
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.
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.
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
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
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.
Stupider like a fox! - H.S.
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?
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.
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.
ADP-1437-006
You can't destroy the Earth, that's where I keep all my stuff!
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).
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.
cpeterso
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...
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.
"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.
Best Slashdot Co
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.
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
... 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
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 /.
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
"'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?
...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.
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.
h tm
Here's a link for some (lite) background:
http://www.net-temps.com/talentcenter/section4.
"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.
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
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.)
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)
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.
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,
From their perspective, it doesn't cost any extra to have employees work longer than 40 hours. They're on salary, right?
--Be human.
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.
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.
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.
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.
Great Windows SFTP Server!
No wait, I know - variable names.
--
-- What do you need?
-- Gnus. Lots of Gnus.
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.
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
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
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.
I can't tell if this was sarcastic or not.
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
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...
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.
Hear Hear! Bravo!
----
+1 Insightful, -1 Troll. What can I say, I'm an Insightful Troll.
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
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.
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.
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.
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.
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?
Developers: We can use your help.
"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.
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!
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.
...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.
"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
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/
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
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.
kellan
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:
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 -*-
... sounds a lot better to me ;)
... great !
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
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.
I also have some issues with this article. This quote in particular bothers me:
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 "comprehendingThe other issue that bothers me is related to the one you mention:
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 ...
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.