I think the point about learning to work accurately and quickly is a good one. But working at a rapid pace should only happen some of the time, like when you are making a major design change. Also if you work really hard for 9 hours in a day, you are beat and had better go home. There is a contradiction between working quickly and working long hours. If you do both its unlikely you're working smart.
-- scott Plumbleg, November 6, 2000
I noticed that family life is one element that is missing from this description of a professional software programmer. I am a software architect with an internet-related company. I am living a leading-edge professional career with a professional spouse and kids. According to this article, it seems that my life should not exist, or I should feel guilty about living it because I am not in the office long hours during the week or during the weekend.
Answers to these questions would help my understanding:
- Can I expect to be an innovative programmer, and still have a family?
- Where does balancing my work as an innovative programmer with that of my professional spouse's work fit in?
- Where do cub scout meetings, camping, playing soccer, etc. fit into a successful programmer's work week?
Scott McConnell addresses this issue in his book "Debugging the Development Process". He managed the Microsoft Excel project through multiple releases. At one point in his book, he addresses the long work week issue. He says that anyone who works long hours for any length of time ends up taking long lunch breaks, performing errands from the office, and other tasks to catch up with daily life. The net actual work performed is on the order of 30-40 hours per week.
-- James Violette, November 7, 2000
Mr. McGregor's (much earlier) comment on the difference between "punishment" and "negative reinforcement" is flawed.
Negative reinforcement *is* punishment. If I have my toys taken from me for writing bad code, I get mad about my toys. Morale goes down. My code stays bad. If I get flogged continuously while writing bad code, I become upset at being flogged. Morale goes down. My code stays bad.
After all, even if I get my toys back or the flogging stopped, my environment has not significantly improved from its base condition. I signed up knowing that I get toys and that flogging is illegal in a work environment. Most companies I could work for are likely to take away toys on a whim, or start flogging should it become legal. Either way, such an act brings my environment closer to or below the base condition.
Adding toys I want (as opposed to toys in general) or having people I hate get flogged would be something I'd work harder to get. I'd work harder if I knew that repetitive, redundant paperwork would go away. I'd work harder if I knew that I would be paid better *at the end of this project phase* and not sometime in the far future. I'd work better (not just harder) knowing that others would enjoy my code (train me to write code worth enjoying).
I can endure suffering. But I cannot work well while straining my endurance. Seventy-hour weeks? Sure. Give me enormous benefits. Forty hour weeks? Sure. Make sure I'm in an environment that lets me work to my best capacity. In fact, I want that environment for the seventy-hour weeks, too.
And that's all I have to say about that.
-- Zach Collins, November 7, 2000