Fog Creek Software
Discussion Board




What if they really are bozos?

I work for a small start-up that is part of a fairly large company.  The large company is _really not_ the sort of place where managers move the furniture out of the way.  In fact, it's a place where managers go around hiring _other_ managers to move the furniture _into_ the way.  And the technical people who manage not to trip, well, they get fired.  (I'm not kidding about the furniture: it keeps getting moved, for no better reason than that someone gets it into his head to move it.)

Our prize software -- the one thing we have -- was written by a couple of primadonnas who would not listen to poor underlings (like yours truly) who, for instance, had some experience in database normalisation and who thought that, just maybe, they could learn a little by stopping for 10 seconds and trying to think before they started to code.  Massive changes were made to our software in a 24 hour period immediately before shipping.  You can imagine what happened.

My question is this: what does one do in this circumstance, aside from quit?  The software is broken badly enough in a number of places that it just can't be fixed: it has these huge, bloated, ugly, and slow work arounds to fundamental design mistakes which slow everything down and sometimes break.  Every time you try to have a discussion about how to fix things, a whole bunch of managers (including our director, an MBA with no technological expertise at all) set up a meeting and blather for hours about what needs to be done.  But actual, simple repairs never seem to hit the ground, until the misdesign screws us so royally in front of our customers that we have to scramble to fix it.  Retroactively.

I'm of course looking for other work; but what we're doing is genuinely cool.  I don't want to throw over all my work just because the MBAs are bozos.  Since this forum seems to have so many good software managers, I wonder if anyone can suggest a way to stick-handle around a whole rinkful of bad ones.

Acowymous Nonard
Friday, December 14, 2001

There isn't any good solution to your problem.  You can quit in disgust; you can try to convince your superiors that you're right and they're wrong; or you can just give up any pretense to excellence and simply go with the flow.

Hope this helps!

Dilbert
Friday, December 14, 2001

"Since this forum seems to have so many good software managers, I wonder if anyone can suggest a way to stick-handle around a whole rinkful of bad ones."

Hip check 'em.

Um, no.  What you can do is start a little bit at a time.  While the managers are in a day-long meeting blathering about where to move the furniture, get in there and change the code.  Write test cases beforehand that exercise a small bit of code that needs to be changed.  Figure out everything that you can think of that could possibly go wrong (and you'll miss some), and then code those situations into your test case.  Change the code, keeping the test cases working.  Keep the test cases around for regression.  Lather, rinse, repeat on another piece of functionality.

A.Nonnie Mouse
Friday, December 14, 2001

Yep agree 100% with the previous comment.  Get defensive, fix things in the guise of fixing something else if you have to, keep the test plans up to date and make sure you prove everything.

The drawback though is if the design is that bad, and you implement a different one that they never notice, they'll not only get the credit they'll make the same mistakes again.

And in the end you have the classic mistaking the map for the terrain problem.  They will think their design is this, but really its now that.

Simon Lucy
Friday, December 14, 2001

How about when you go into a meeting to discuss the (horrible) state of the code have a little presentation prepared (if possible organise the meeting & write the agenda too).  If you start out with some structure then the meeting might stay focused on the things you want to discuss.  If you've got a Powerpoint that spells out a problem area, explains in simple words why it's a problem, and propose some solutions then you make it easier for your managers to tell you to do what ou wanted to do all along.

Jamie Anstice
Saturday, December 15, 2001

By the way, I hope you have the patience for all of this.  You'll be pulling the weight for every other incompetent rube in the office.  Try your darnedest to find other people worth their paychecks there, and work with them, and support each other.

More tales from the cynic pit (brace yourself):  don't underestimate the ability of management to spot someone productive, like you, and squish them.  While you're getting all this work done, try to look invisible to management.  Otherwise they'll give you some time-sucking job they think is important, and then another, and then another...

Paul Brinkley
Tuesday, December 18, 2001

*  Recent Topics

*  Fog Creek Home