Philip Greenspun wrote an intriguing article about managing software folks, which suggests that the key to running an efficient development house is lots of overtime. Here is a quote from his web page: “long hours by programmers are a key to profitability.” Here's something else he says: “A product is going to get out the door much faster if it is built by 4 people working 70-hour weeks than if by 12 people working 40-hour weeks.”
Wow. I bet working for this guy is a thrill.
Suppose he's right. What kind of team has he built? Won't people who have a life bail at the first opportunity? Are the rest losers who can't get a decent job anywhere else? Perhaps Mr. Greenspun has built a sea of cubicles housing Bob Cratchits hunched over their terminals, afraid to go home, terrified of losing their jobs.
And that's a productive environment?
As a former manager of embedded developers, I've got to plead guilty to hearing and at times heeding the siren call of free overtime. The deadline is looming and those bloody engineers have the gall to go home! What could possibly be more important than this deliverable?
Yet overworked people burn out fast and develop major attitude problems. I betcha most folks who spend 70 hours or more per week on the job wind up doing quite a bit of personal business in that apparently-at-work time.
Compensated or not, I think routinely long hours are akin to indentured servitude.
Then on the other side of the coin are those developers who won't put in a minute of overtime. There's a balance here; part of being a professional is taking responsibility for the job, even in the hard times. So I think sometimes overtime is unavoidable and reasonable.
Some companies offer comp time for those extra hours in lieu of pay. Not a bad trade-off as this tends to limit the abuses.
An alternative might be to really, honestly, let the programmers do the scheduling, and then hold them to their promises. But getting rid of capricious schedules is sort of like hoping for world peace. It ain't gonna happen any time soon.
What do you think? Are you afraid to sneak out of the office at 5:00 or even 6:00?
Are you compensated for the overtime you work?
Jack G. Ganssle is a lecturer and consultant on embedded development issues. He conducts seminars on embedded systems and helps companies with their embedded challenges. He founded two companies specializing in embedded systems. Contact him at His website is .
My original article really wasn't intended to cover all softwaredevelopment projects. If a group of experienced developers is buildingsomething that isn't so innovative for a big company then there isn't toomuch point in working killer hours.
But in groups where people are trying to innovate or in organizationswhere young people are learning their trade, it is tough to achieveexcellence by working 9-5. Surgeons in training don't work9-5. First-rate biology researchers don't clock out at 5 pm and say”we've unraveled enough of the mysteries of life for one day”.
The people that I was writing about at ArsDigita were mostly in their 20sand early 30s. They needed to build a professional reputation. This putthem roughly in the same position as the MIT grad students with whom I wasfamiliar. The grad students worked hard so I expected the youngprogrammers to want to work hard. That doesn't mean it is a totalgrind. I established a 5-weeks-of-vacation-for-everyone policy at theinception of the company (this again maps onto the grad studentlife: hard work but lots of vacation periods).
I think it is safe to say that the best universities achieve excellenceboth in innovation and in training young people. My article is a writeupof an attempt to translate that excellence into the software developmentworld. You can argue that a Microsoft Exchange administrator has a betterwork/life balance than someone building skills or pushing thestate-of-the-art. But if everyone were a 9-5 Microsoft Exchangeadministrator we'd never get too much innovation (the interestingfastcompany article notwithstanding, it is worth pointing out that thereliable Space Shuttle code has not resulted in any reusable innovationfor the rest of the software development community).
See http://www.arsdigita.com/books/panda/ for a more rounded presentationof the ideas I had at the time of the article in question.
abused quoted-a-bit-out-of-context author
Jack Replies: Thanks for the feedback! Couple of comments:
1) The newest of all software engineering models – Extreme Programming -promotes the 40 hour workweek and a core value. Why? People get tired anddon't work well.
2) I don't object to OT – when needed! OT as a regular management toolbackfires. People in their 20s/30s are building families as well ascareers; the kids need them more than the office.
3) I'd argue that the Space Shuttle code has indeed given us somethingextremely innovative! That's the Capability Maturity Model. Though it cameout of the Software Engineering Institute, their primary example, wheremany of the basic ideas came from, was the Shuttle team.
OK. I had to respond to this one.I have always worked for companiesthat compensate for overtime.
I enjoy embedded systems developmentand don't mind occasionally putting inovertime for a good cause (not generallyto cover for poor management decisions).
But, the thing I always consider whenI'm asked for overtime is the realcost/benefit ratio for me. Even whenovertime is compensated, it may notcompare to what it costs you to work it.REMEMBER: ONCE A MOMENTIS GONE YOU WILL NEVER GET IT BACK. Soaccepting in trade a few dollars an hour(or even worse, nothing) for a little bit of my non-replacable lifethat I will never get back is just notworth it in most cases.
After two decades of working in software development my advice to young engineers is to avoid working overtime unless you have a written agreement stating the (higher) rate per hour that you will be paid.
Too many managers abuse overtime, often to cover their inability to plan correctly, or in an attempt to make more profit. Put your foot down, say NO! In the long run you will not only save your family life, sanity and enthusiasm. You will also earn the respect of your managers by being assertive and taking control of your lives.
There is ALWAYS a crisis on which your company's very survival depends. It is never a 'once-off' as your manager says; accept that this is the norm.
Do you know of any other profession where overtime is expected, with no compensation? Wake up, get real! Software development and engineering are among the most difficult and demanding careers; don't undersell your skills. Just because engineers are fascinated by the technology should not change this. No manager will respect you for giving away your time, instead they will expect it in future and view you as a weak person. The next project's timescales will be built based on your free overtime. Its up to you to break this evil greedy spiral.
Software engineering needs to shift its focus from insane timescales to delivered quality. There is too much really bad software in this world, don't add yours. When working overtime the quality of one's work always deteriates. The truth is that your company's survival actually depends on the quality of the product it ships, not on some artificial timescale. For a (long)successful career your output needs to of the highest quality and above all sustainable, within the larger framework of a full life.
What happens to training time when working in overtime mode? Usually training simply never happens. When your skills are no longer current or your health fails the company you 'saved' by doing overtime will discard you; not reward you for your years of 'experience'. You will be replaced by an eager (cheaper) youngster and the cycle will repeat, lowering the quality of software again.
Not all companies work in this mode. If yours does you should seriously consider finding a better employer where you can grow as a person, to the benefit of both yourself and your employer.
If you are a manager and are still reading this ask yourself this: Do I really want to destroy young people's careers and lives to advance my own career/wealth?
The title should read, “Abuse of Overtime”…
I have worked for little or no compensation. I refuse to do it any more. At least for the present, I can get another job within a few hours. Probably with betterpay. Selling my time is the only way I have to make a living. My attitude is “if you want to abuse my time, it's OK, just let me hold your wallet when you do it.”
(rant ended, thank you)
Been there, done that… Only got a Tee-Shirt!!
There ought to be a law against forced overtime! What? There is? Why doesn't it apply to Engineers?!
Engineers who work their rear off just for the accolades or some bonus will always be disappointed. The fun is in the journey, not the destination. Life goes onafter each milestone. It's the challenge that's drives most good engineers.
Unfortunately our management doesn't know Jack!
Sr. Systems Engineer
I've worked various high tech jobs for the last 25 years and I have never been financially compensated for any overtime I have performed. That is, no pay raise, stock options, promotion, etc. The problem with compensation is that it is tied to the profitability of the company and not necessarily how hard you work. The last company I worked at went bankrupt, so obviously the 60 hour weeks aren't going to be compensated.
The worst situation I found myself in was when I worked at Intel, I worked 70 hour weeks for about 9 months on a software project at one of the FABs. The end product was very successful and resulted in a 3 million dollar per year savings in operating expenses for the FAB. Unfortunately, the company was going through a downswing in the market, so after a reorganization I took a 7% cut in pay. Well after 9 months of no life, I also couldn't afford to pay the bills either, so I had to leave the company for a better paying job.
The problem with being a veteran is that you have a lot of experience with bad overtime situations and thus aren't as eager to do needless overtime. Young kids don't have this experience and thus are under a misconception that if they worked hard by putting in lots of free overtime, somhow they'll get ahead. The majority of the time this won't happen. My advice to the new kids is: You have to do the work because you love it and don't expect any financial compensation. Also remember that you have another life besides coding called family.
Good article and good response from Craig Taylor
It's interesting to compare this article with another that you recently referred to regarding the space shuttle software group. (http://www.fastcompany.com/online/06/writestuff.html) Perhaps Mr. Greenspun should find out what it's like to have grown-ups working for him?
Principal Software Engineer
Yep, working for that guy must be a real thrill. And when the project is completed they might go into the ever present layoff mode.
But, techies do enjoy their work and are quite willing to put in the long hours to see the final outcome of the project. For a look inside the mind of some managers, read “The soul of a new machine” by Tracy Kidder.It is based on the engineers that slaved away at Data General (mini computers) and the story of the management teams concept of exploiting the work force. Now, where are all those souls who gave the company those excessive hours ……Perhaps unions might offer some insite????
I have worked the long hours. What it got me was a broken marriage, burnout, and a real bad attitude.The project turned out great though. But even working this underfunded, understaffed and underestimatedproject, the next project management decided that it had to be done in less time. This has beenthe story of each additional project. Well, I do now tell them to kiss my ass when they need overtime.As a matter of fact when they say it must be done for the company, I just remind then that I told thenthe time was not based in fact or reality. To cover my ass, I use memo's during the project layoutand show then the real time it will take. I also go to school and keep myself up to date on alltechnology.I do believe that if a team is put together and true by in for the project is obtained that not onlywill it be delivered on time (real time) but I will be a good product. Alas, MBA's seem to rule withthe lastest buzz word and leave (if they are good) before the roof falls.
In my next life, I will teach instead.
Craig A. Taylor
Product Development Engineer
I would say the majority of people who are involved in programming are programmers because they love the world of tech, or did at some time. For the ones who did at some time in the past, the reason this passion died is because of situations such this. You are excited about a new project, you are going to get to use some new interesting technologies and this time it is going to be done right. The programmer is excited but then the powers that be crush all of this interest, enthusiasm, and morale by making the project a nightmare where time does not permit creativity, organization, and dare I say fun.
Here is a question; What is better a product which has taken a relatively long time but has been organized well, gave way to “DEADlines” for the sake of quality, kept the programmers interested and excited about their new masterpiece, created a product which will last and maybe even become the leader in the industry OR create a product which does the extreme opposite of all the above? At my current employment one of the best programmers I have ever met just left because of the managements decision to make the second product. Was it worth it? I would say, no way.
One last statement, I think the majority of people think because programs are getting easier and faster to use that this means programs are easier and faster to build. The reality is, in order for programs to get easier and faster to use it takes longer to build them. I will take a slow cooked juicy steak over a 49 cent McDonalds fast food hamburger any day.