Thursday, March 02, 2006

The Absolute Unreality of the Work Environment

It just keeps getting more and more unreal every day.

We had a meeting today, a late meeting scheduled to begin at 4 o'clock (which is normally the time to head home), and all of us, the entire group, gathered into the big conference room to discuss our plans, our strategy for accomplishing the impossible.

Our next software release is due in six weeks, and we have a 'skeleton' staff of nine people to handle the entire process, which includes writing code, reviewing code, updating documents, revising test plans, running tests, and verifying that it all works as designed.

We don't even have all the hardware we need yet!

Unfortunately, this is not an uncommon occurrence in the software industry. In fact, it's the rule rather than the exception. Many of the projects I've worked on have gone through a period like this. But this is the first time to my knowledge that it has happened so long after the product was supposed to be complete.

With regard to budget and schedule, we're running on fumes two hundred miles past the last gas station, and we still have a hundred miles or so to go before we get to where we're going. This is what I mean by unreal. There's no way this task can be performed in the time allotted with the staff on hand, but we just keep going on and on, making our little plans and committing ourselves to the next task on the list, coming to work day after day, and I'm not sure whether we're all doing it because we're expecting a miracle to occur, or because we're all so conditioned to the idea of showing up at work every day, afraid of not having something to do, someplace to go.

Of course, the original budget and schedule were so completely out of sync with reality that there was no way they could happen as planned. They were trying to guess how long it would take to write a complete avionics package when the hardware was still a gleam in some engineer's eye, and they had these big plans of making the hardware so generic that it could be applied to just about any airframe in existance. And they figured it would be simple to create a generic board and slap a generic operating system on it, and then write a generic I/O layer on top of that, and then write a few airplane-specific applications that would handle all the user interfaces.

Hoo-boy, were they off the mark.

It's like trying to guess when your laundry is going to be done even though you haven't even gathered up the dirty clothes yet (so you don't know how many there are), and you don't have any laundry soap in the house so you'll have to go out and buy some; and, oh, by the way, you don't even have a washing machine or dryer, so you'll have to go out and buy them, too, and learn how to use them.

(To make it even more relevant, you have to install the washer and dryer yourself AND plumb and wire the house AND write the manuals AND do all this while the kids keep running through the house scattering the laundry and dropping more of it in out-of-the-way places.)

Oh - and you have guests coming over for dinner tonight!

We engineers just love a challenge. Personally, my idea of a good challenge is seeing if I can get to bed before midnight so that getting up in the morning doesn't feel like a reprise of Dawn of the Dead. Right now, it looks like I need another Planning Meeting...

No comments: