Saturday, June 17, 2006

The Bells! The Bells!

Philip Su's recent post about The Broken Windows Theory tartly illustrated the root of problems plaguing the Vista project, making it a darn fine read for a Saturday afternoon. For me, however, the post rang so many bells in my head that I am now nearly deaf.

Whilst we do not have a cast the size of the chariot race scene in Ben Hur, meaningful parallels abound:

"The code is too complicated": I'm not a developer anymore, but our mission was to replace a spreadsheet that had become burdensome due to its highly recursive nature. Not, as some who fancy themselves geniuses may think, because it approached the complexity of the Black-Scholes formula.

Look, we're not trying to find ways to price and structure exotic tranches of derivatives here. We're trying to find a simple fair distribution. So why has it taken about a year and 20 developers to code this? Even in my days on the trading floor, it took no more than a team of 5 to knock up a reasonably complex pricing engine.

I half wonder whether fancy-pants design patterns are getting in the way. Again, I'm not a developer anymore, but the code seems to be a mini army of different objects - models, views, controllers, subclassed controls, not to mention the server side object classes. Does it make us look cooler? Or does it create a freakish spiderweb that serves to artificially bloat the pipeline so that we can justify the existence of 20 developers, none of which get to do any meaningful work?

On the other hand, the business analysis constipation doesn't help either. Egomaniacal little minds struggle with understanding the most basic of details. They also mistakenly believe that tenure creates extra super brain cells which aid in their efforts to illustrate the problem for others. When somebody does come along who "gets it," they are branded Wicked Mutant Devil Spawn.

In this particular part of the project, it's not that the subject is too complicated. It's too complicated for them. And that is why productivity and quality have fallen and can't get up.

"The process has gone thermonuclear": I hinted at this problem in an earlier post, The Dough Boy. And I can hardly put it better than Philip Su does:
Imagine each little email you send asking someone else to fill out a spreadsheet, comment on a report, sign off on a decision -- is a little neutron shooting about in space. Your innocent-seeming little neutron now causes your heretofore mostly-harmless neighbors to release neutrons of their own. Now imagine there are 9000 of you, all jammed into a tight little space called Redmond. It's Windows Gone Thermonuclear, a phenomenon by which process engenders further process, eventually becoming a self-sustaining buzz of fervent destructive activity.
"Communicate!" we are told, "Collaborate!" It all sounds so deliciously modern until one realizes the exact consequences of having to poll 50 people to change one pixel. Life becomes an endless stream of meetings, emails, progress reports, phone conversations, and discussions about work. Heaven forbid anyone actually tries to get any of that work done. That's just plain selfish and uncooperative!

Add on top of that the quorum of half-wits on management. Welcome to process Groundhog Day, where everything has to be explained at least 10 times (in every meeting, email, progress report, phone conversation, and discussion) before any of them understand the first idea what we're supposed to be doing. If they had any less power, it would be possible to ignore them. As it is, we monkeys must dance for our dinner.

"A culture of belittlement and aggression": I can't say that this culture exists within the company as a whole. I'm told by my longer-tenure colleagues that there are a significant number of humaner pools of existence outside of the project I'm on.

But I don't have enough appendages on my body to count the number of times I've heard management act like Veruca Salt, screaming and kicking and trying to squeeze a square project into a round schedule.

They say that they want things done right, and that they will give all the time in the world to do it.

I normally like to count to ten. Right at about five, when when they encounter a molecule of difficulty, they start screaming blue murder and start giving arbitrary deadlines several weeks too short to get any job done right.

Or (I love this one) they pick a date for delivery without having done any analysis or planning and tell the users. When the results of the analysis come in and the delivery cannot happen as scheduled, they whistle and try to look very small. Oh no! The users have spotted them! Instead of trying to explain to the users that they have no intellectual powers whatsoever, they decide to use brute force to pass the pain of their stupidity onto the users.

Fortunately, because we don't work for true paying customers, IT management can amputate 25% of the deliverables to "make" the delivery date. Phew.

And don't even mention lack of trust, threatening behavior ("If I hear that you have talked to any other managers about joining their teams, I will be very angry"), and dishonesty. The predominant emotion in the ranks is fear. Although this may have been the preferred method for getting slave ships to their destinations faster, I can't help but feel that 21st century software development requires a new paradigm.

"Too many cooks in the kitchen": I could go on about too many people on the project overall, but there is a fine point to be made about too many managers and micromanagement. We have "only" 4 managers, but flash-mobbing of Larry, Moe, Curly, and Shemp at each new release point causes an endless amount of direction change.

Go Agile! No, go Waterfall! No, go RUP! Put this person on! No, take them off -- put this one on instead: she can't reason her way out of a paper bag, but she's got nice legs!

While the rest of us are reeling and puking by the side of the road, management attempts to rectify the situation by giving us "direction." Which means giving micro-managerial edicts on what color the UI should be, how many users we should allow on the system at once, and what version of screen print software we can and can't use.

I thank my lucky stars every day for management. Otherwise I wouldn't know how to pick my nose properly.

"Windows Vista is the largest concerted software project in human history": Our project is now officially the largest one in our company's history. For over 20 years, all projects large and small were done by an IT department no bigger than this one project alone. Historical accounts praise the "get it done" cameraderie of those days.

"Are Vista-scale projects essentially uncontrollable by nature?": What? I can't hear you! Those darn bells....

0 Comments:

Post a Comment

<< Home


More blogs about technology.
Technorati Blog Finder