December 25, 2003

Varieties of insanity known to infect a project

Teresa wrote about various forms of Author's insanity over in Making Light.

Eric wondered if someone who did project management could come with a similar list for programmers.

Heck, I'll do that one better. Here's my list for various forms of insanity across the groups that I may deal with in the course of a program. Some of these go back to nearly punch card days--some things just never change!

Marketing:

The requirements doc will be three months late, but we aren't moving out the due date.

We did the requirements doc. It's only a page long, but that's all that you need, right?

If we can't tell engineering what we want, the PM can write functional specs instead.

No, we haven't presented this to the exec team, but we know they'll fund this.

That functionality can't require more than a hundred lines of code.

That can't take more than a day to code

It has to be done by May. We have a VP who has a bonus depending on it.

We can't tell you when we'll need that product. You don't have a need to know.

You'll know the due date when the CEO announces it.

We don't need focus groups. We know what the customers want.

Why do we need new hardware for this project? The servers are only three years old.

We want to upgrade all the software, but not the hardware--we can do that, right?

Do we really need staging and testing hardware?

Can't we just share the production hardware?

The product is intiutively obvious.

I don't like green--can you redo the entire site in blue? By next week?

I don't understand what's so hard about web design.

I took the intro class in web design--I can do the pages.

Our chargeback process was wrong, so we sat on your job until we figured it out. It's going to be a month late--is that okay?


IS

Yes, we know we make and sell that hardware. We just don't support it in the data center.

When you told us you'd need that support by the time you shipped, we didn't really think you'd ship on that date.

Yeah, you gave us funds to buy that hardware, but we bought something else instead. Do you have more funding?

Of course the planned platform doesn't offer half the capabilities of the previous platform. But you know what you won't be getting.

Yes, we know we told you to buy that hardware when you started the project, but we've changed our corporate standards. Can't you just buy new hardware?

Oh, you wanted those data fields added before you shipped? Why?

Yes, we have our analysts test their own code. Is there a problem with that?

Doc Control:

Oh, you wanted to sell that product? Now?

Yes, we know you filled out that form at the beginning of the project. But we didn't get around to implementing your request until now, and we use a different form. You'll have to start over, and it will take another three months to work through the queue.

When you said you were going to ship on that date, we really didn't think you'd need the BOM by then.

Engineering:

No one understands my code.

No one understands my UI.

My code is brilliant. The customers are idiots.

I made a change in a variable declaration that cascades throughout the entire code tree. But the buildmeister can take care of that, right?

So what if all my variable names are old girlfriends? No one will ever have to change the code anyway.

My code is so tight it will never need to be enhanced.

We'll never need more than that size of array.

I don't think this is important, so I'm putting my junior people on it.

Don't worry, if the coding goes long, we can just cut it out of QE time.


We won't need QE for this, because it will work the first time.

I know what the customer wants.

That part of the code is going to be late--can't we just test around it?

When you said you were going to ship on that date, I really didn't think you were going to ship on that date.


QE:

We're supposed to update the libraries when you update your libraries?

What do you mean, we can't use the same test suites we used last year?

The customer would never see that condition anyway.

I know you told us to not test that module because it wasn't ready. We tested it anyway. It didn't pass.

Yes, modularized code is supposed to allow us to test only the modules, but I personally can't start testing until all the code is checked in.

I don't use this product, so it's not that important to test it.

You wanted us to test the product on all the platforms it's supposed to run on?

When you said you were going to ship on that date, I really didn't think you were going to ship on that date.

Posted by lsefton at December 25, 2003 05:18 PM
Comments

You've just listed almost every reason why I don't miss high-tech. The only thing wrong with being an unemployed student is the lack of money.

Posted by: Stephanie at December 26, 2003 12:10 AM

I trimmed a number of entries from the auctorial insanity list. The last one to get trimmed was, "You're going about this all wrong. I know my book's audience."

If I'd done a list for interdepartmental insanities in publishing, one of them would infallibly have been "I wish, when you said that [date] was the deadline for this, that you'd told me it was the real deadline."

(Reply from grass-green head of production: "All my deadlines are real deadlines.")

Posted by: Teresa Nielsen Hayden at December 26, 2003 08:44 PM