When we are behind schedule, we often compound our problems by acting like we're behind schedule. The trouble is, we're behind schedule and don't realize what we are doing. There are, however, things we can do to break this downward spiral.
When we are behind schedule and under pressure, we stop breathing. Not physically, but we might as well. Physically and mentally, we are always in a hurry; we try to do things faster than we are able. The result of this virtual lack of oxygen is we do stupid things and don't do smart things. Silly shortcuts don't look so silly, so we try them. My guess is that we figure we are behind schedule because of some uncontrolled bad happening (fate or something). Since the unexplained caused our problem, the illogical will solve it.
We are willing to look anywhere and do almost anything. Using a big bang integration approach should work; testing becomes a good place to gather miscellaneous tasks; tasks not on the critical path can slide; and so on.
We don't have time to do what we know works. Peer reviews stop. They probably caused us to fall behind schedule in the first place. We have plenty of smart people on this project (led by me), and smart people can do their own work.
Normally useful tasks go away. Sure, we could run a couple more tests on system modules and that might show us a few things. But we know those modules are alright and integration will prove it.
And then there's looking ahead at the schedule. "If such and such doesn't happen by the first of the month, the delivery will slip by two more weeks." There's no need to look at the schedule and make those predictions. The schedule is what is causing trouble, so don't think about it.
Finally, we don't organize our tools, our people, our offices, etc. We don't have time for that. Some people say that organizing for a day will save weeks in the long term, but we are behind schedule. We cannot waste a day organizing!
We need to do something to get out of the "behind schedule" predicament. We need to start breathing again.
The answer is change the schedule. The schedule was wrong; someone underestimated the difficulty or overestimated productivity. There are three ways to change the schedule. The first is to change the schedule officially. Convince management that the schedule is unrealistic, is hurting morale (we are always behind), and keeping us from breathing (we keep making stupid mistakes in an effort to catch up).
Sometimes that won't happen, so change the schedule unofficially. The official schedule stays up on the wall, but the team uses their own, unofficial schedule. The team makes the unofficial schedule, owns it, and works to meet it. Meeting the unofficial schedule has several affects. First, success breeds success. The team meets the schedule every week, goes home happy on Friday, comes back ready to work on Monday, and keeps succeeding. Second, we start breathing and thinking again. We make good decisions daily and start to gain ground on the official schedule.
Finally, we change the schedule emotionally. We ignore the schedule and convince ourselves to start breathing and thinking. We stop doing stupid things and start doing smart things. This is the hardest of the three options. It requires great mental and emotional strength to ignore the pressures that everyone is pushing on us.
Whatever strategy we employ, we must examine ourselves to see if we are breathing when behind schedule. This self-examination is difficult, and the solutions aren't easy either.
Dwayne Phillips has worked as a software and systems engineer with the US government since 1980. He has written *The Software Project Manager's Handbook, Principles that Work at Work* (IEEE Computer Society, 1998). He has a Ph.D. in electrical and computer engineering from Louisiana State University. He can be reached at d.phillips@computer.org.