Sunday, January 26, 2014

Found this nice little blog post about Killing the Crunch Mode Antipattern. It explains this individual's reasons (with some link backup information) on why the fabled "crunch mode" in software engineering is a stupid and unhealthy practice. Crunch mode essentially deprives software engineers/programmers of sleep and causes coding errors and bad habits to develop.

Reasons crunch you shouldn't go into crunch mode:

  • The less sleep you have, the more prone to errors you are going to make in your code. This will cause major slow downs in development because you then have to go back and fix your sleep deprivation caused errors.
  • If you do it too much, you might lose your passion (if it existed in the first place) for software engineering/programming. I can't remember ever thinking, "let's work crazy amounts in a short period of time, over and over again."
  • It makes you lazy and less productive in the long run. After working really hard for a burst of time, you begin to rationalize that you should take it easy during the non-crunch times.
  • You might not make your deadlines even with going into crunch mode.
  • If people know that you've been working like crazy, they don't expect you to not make errors.
  • It makes you wonder if the team leader / management really cares for your health over meeting a business goal.
Essentially, in more brain intensive work, crunch mode doesn't give good results; thus it doesn't really mesh well with software engineering/programming.

Reasons crunch mode is activated:
  • Unrealistic expectations for project deadlines are set.
  • Managers fear setting far off deadlines.
  • Heroic feeling of finishing a ton of work in a small amount of time.
  • It drastically increases the focus level for that period of time, enabling team performance to soar.
Alternatives to Crunch mode:
  • Missing the deadline.
  • Set smaller goals.
  • Measure progress concretely.
  • Set realistic goals.
So how exactly does one end the practice of crunch mode? Well, it appears that it is up to each individual within software engineering. Managers need to hold themselves accountable for poor planning, and need to view going into crunch mode as a personal failure. Everyone else needs to hold themselves accountable for their every non-crunch time minute at work; if the work is done evenly throughout the deadline, there won't bee a need to activate crunch mode.

No comments:

Post a Comment