c o d i n g f r o g s

croaking about programming, programming languages, software engineering, and the business of software

27Aug/100

Discipline When You Need It Most

In the locker room for the University of Michigan football team there is the following quote:

Under pressure you will not automatically rise to the occasion and become a hero. You will revert to the level of your training effort and perform at that level.

Or something like that.

At least, that's what I've heard.  I've never been in their locker room.  But I remember hearing something about that on TV once and it really stuck with me.

If you are a football guy, this is the explanation for all those long hours of drills.  The mantra, "You play the way you practice," exists for this reason:  So that the level of your training will be sufficient to carry you through the crisis.

If you are a software person, this applies to you also.  "Playing the way you practice" means having the discipline to follow your process all the time, even when you don't want to or feel pressure not to.  In fact, especially when you don't want to or feel pressure not to.

The entire reason you have a process is to help you make decisions in hard times.  If you are a software company that never has deadlines, never has commitments to meet, never has quality standards by which you are measured, then you probably don't need a process.  You probably don't have customers, either.  But if that doesn't apply to you, then you probably have a process, or need one.

Here are some examples of software development crises that are mitigated through process:

  • Sales just told a big potential customer that your software contains a key feature that it doesn't actually have.
  • A big partnership opportunity is available to your company if you will drop your current plan of record and instead implement a bunch of custom functionality.
  • An executive just installed the beta of the next release of your product, and found out that you cut that executive's pet feature that his cousin really wanted.
  • You are so sure the fix you just made couldn't possibly break the build, you are tempted to just check it in and go home instead of waiting for the test suite to run.
  • You're nearing shipment of your product, so you are tempted to forego a new unit test for the bug you just fixed and just ship the thing.
  • Your colleague or boss pressures you to just put in a "fix" for the product issue they found, even though the product is technically working as designed.

What should you do in each of these scenarios?  I'll tell you:

You should follow your process.

Your process should tell you how to handle each of these situations, and it probably does.  Scrum, for example, has built-in mechanisms for handling each of these scenarios.

The challenge is that when the pressure is on, you, along with every other normal human being, naturally feel tempted to cave in.  The pressure of the situation causes you to panic.  You don't make your decisions rationally and objectively.  You make them based upon emotion instead, which is not generally the best guide.

When the pressure is on, it is more important than ever to follow your process.  Trust it to help you make these and other decisions correctly.  When you feel pressured most to abandon your process, that's precisely when it is most important to follow it.

Which is why you should always follow your process.  During normal operations, your process may seem like it is oppressive or costly, and it may be.  But if you follow your process when you don't have to, you will have the level of training you need to follow it when it will save you.

blog comments powered by Disqus