Seriously. I mean, there's so much work in college that I feel like I would really learn more if I had
about a month for every week of work assigned.
Psychiatrists recognize three levels to anxiety:
0. resting, such as watching the tube
1. vigilant, such as driving
4. project management
Level 2 is a "peak performance" level; it's when you tighten your grip on your spear because the woolly mammoth just chose you to see if she can break out of the ring. Your senses sharpen; your perception of pain lessens.
Level 3 is a psychic preparation for death; that useless floating peaceful feeling. Don't go there.
People think faster when the anxiety level is self-imposed; when they can opt out and relax without getting whipped. Level 2 does not last long.
However, school is not about performing well, it is about mental exercise. Cram all night, Holmes!
Just wait until you get out of college. The pressures of the RealWorld
are even worse. The reason that most software is so bad is because nobody has the time to do it right or to learn how to do it better.
I always took the phrase PeopleDontThinkFasterUnderPressure
, by the way) to be about anxiety not
being the optimal mental state for clear thinking over longer periods of time. I don't know about you, but I
wouldn't want to use or maintain a piece of software designed and written in a state of mind as if under continuous attack from a mammoth (including the pointy-haired variety).
Now, physical performance may be a different thing entirely. That's why managerial techniques that may
work for sports or physical labour backfire when applied to software development.
People can be more productive for a short time when under pressure because they (a) focus attention on the important tasks and (b) ignore low-priority tasks. This is not sustainable because tight focus leads to BurnOut
and because important low-urgency tasks (refactoring, backups, CleanTheKitchen
, etc.) won't get done.
An important time-management and stress-management technique is to set priorities, and then address each task in a focused-but-unhurried manner. You can never do everything you want/should, so focus on the tasks that have the biggest payoff. Trying to "work harder" doesn't pay off. (It took me way too many years to learn this.)
This raises an incredibly crucial point: People think differently
under pressure. They may be more focused, but they're not necessarily focusing on everything that needs to be done. Pressure places people in a specific mindset, and that can have massive repercussions. This is why stupid bugs can get introduced during peak development times, because folks are in that anxious, sharp-minded time when they're focusing on specific things, but not necessarily all the important things (QuadrantOne
Pressure does help me think faster sometimes. A stopped production line costs $50K per hour. That's hugely motivating and for a short time the adrenaline helps speed things up. I agree that it's only good for focussed, specific tasks but this mindset can be helpful when you're in AnalysisParalysis (a common thing here at HP). Once the pressure is gone you have to make sure to go back and clean things up. --AndrewQueisser
I hope you're not likening software development to a 'production line'. ProgrammingAintManufacturing
. On the other hand, I'm not denying that sometimes you have to go into CrunchMode
. It's just that the reasoning for doing so shouldn't be anxiety because the 'production line' is 'stopped', costing $X per hour.
I rather got the impression he was referring to software used to control a real production line.
And in that case, that sounds like a fine reason for CrunchMode
"People can be more productive for a short time when under pressure because they (a) focus attention on the important tasks and (b) ignore low-priority tasks."
It actually means that pressuring people will give you the appearance of being more productive without any real productivity gain, like an OS giving higher priority to foreground task. Unless the team is already very dysfunctional, those low-priority tasks are probably there for a reason, so ignoring them will only have them come back and bite you later.
A project manager just need the guts to bear responsibility to have the team focused, just tell the team "Ignore any other tasks, I will be responsible for any consequences." and you will get a team focused purely on your project. Unfortunately, most project managers don't want to bear such responsibility while still wanting a focused team, so they apply pressure which result in team members themselves ignore other tasks at their own peril.
Pressure reduces efficiency in Programmers. This is not true for all tasks, but *is* true for tasks requiring the use of your brain.
The problem is that the human body allocates resources *away* from the brain while under pressure. The basic assumption being that in the history of evolution quadrant 1 (FourQuadrants
) tasks used to require mainly muscle-power to solve, so resources will be auto-allocated there.
there's 2 levels of stress recognized:
stress level : in English : mode change signal
acute : urgent : adrenaline
non acute : not so urgent : cortisol
Both adrenaline and cortisol allocate more resources to muscles, and away from immune system, digestion and your brain. So under stress you're also more likely to become ill, or have digestion problems.
Adrenaline dumps resources into the bloodstream, shoves your heart and lungs into overdrive, overrides safeties on muscles, kills the safeties on the immune system, and on your brain too. Increased blood-pressure might have you "seeing red", overpower in your muscles might have you trembling and you may notice a distinct decrease in your ability to reason logically. Hopefully you won't need much adrenaline in your job.
Cortisol works by modifying your physiological pathways on the long term so that you will react more properly to physical problems in the future, including making adrenaline bursts more effective. Cortisol production goes up if you are experiencing psychological or physiological stress in your work. (Ie if you are pushing yourself to work too hard)
If you find yourself becoming ill often, or having trouble with your digestion, it means you're probably not going to be programming effectively.
It's good to do programs and math problems "for fun" during some of your spare time when the pressure is not as intense. Then when stress builds for real problems you find you have honed skills that you can apply to the situation. Like athletes who do weight training, running, focused shots over and over in non play situations; when game time comes, lower-level responses are automatic and problem solving can be aimed at working out higher-level strategies.
Is there any study of the effects of repetition on this? I think that we do great under pressure - occasionally. It builds esprit de corps, and makes us all feel like heros. We dive in and give it our all and take great pride in our incredible feats of engineering. The teamwork of a good team in crunch time is amazing. But if it starts happening too often, then morale plummets. It becomes just another mismanaged project with unrealistic expectations - a no-win situation, therefore no reason to give it your best, or for that matter any significant effort (because it won't succeed anyway). If you have 160 hours of work to do in one day, then it doesn't really make any significant difference whether you do 8 hours, 12 hours, or none at all. At that point, the pressure is counterproductive.
I think that you have summed it up pretty much like it is. Once in awhile equals great teamwork and wonderful innovation, but abuse this with continual crisis and the opposite will happen.