I had a weird dream last night. In the dream, I made a gazillion dollars because I wrote a program that automatically generated wholly truthful and accurate status reports.
(This is especially funny if you ponder the irony of designing software pointing out software ironies.)
It was based on MadLibs, rendered in a template like this:
This project is adjective ( doomed; not dead yet, but coughing up blood; dead).
Important Person (VP, CIO, customer) verb phrase (is still withholding information, has been meddling/changing requirements again, won’t make up their mind),
marketing verb phrase (hasn’t finished the specification, is too busy playing golf/doing field research, doesn’t have any use cases, gives us specifications relying on 23rd-century Star Trek technology),
the developers are excuse (pulling dates from their imaginations, playing Doom III, still trying to work out the answer to the moving Mt. Fuji interview question),
our IT infrastructure is unstable due the latest BoFH excuse (worm, software “upgrade,” power outage, random ill-thought security policy),
and Quality Assurance is ridiculously understaffed.
Should we finally ship the product, sales will need excuse (to be spoon-fed leads, training, a compensation structure that encourages them to sell the product)
Of course you’ll never see this kind of candor at a real company because there is a strong disincentive to be forthcoming.
Believe me, I’ve tried. At one organization, a certain VP up the food chain would email people at 2 a.m. asking people about any Bad News in one of those. (Hey, at least she read them.) Whether someone responded to her or not was irrelevant, the problem was always foisted back onto the person reporting it. This kind of behavior fosters Schedule Chicken.
At another organization, Chuck, my manager insisted on status reports by 10:00 a.m. Monday so he could concatenate them and forward them to his boss. He never had to produce his own status report, so as far as I was concerned, his only value could be replaced by a few UNIX commands.
My project was in the early specification stage. Without a specification, scoping, executive buy-in, and resource commitment — all that minor detail stuff — any final delivery dates that I provided were largely speculation. Of course, Chuck insisted I stick to the standard format, which required prognostication of ship dates. At the same time Chuck withheld an important piece of information: he “reprioritized” all the projects, taking my speculated resources from my project. It’s hard enough to cross-manage in an organization without your own manager sabotaging you.
I grew to hate writing status reports because it was obvious Chuck never read them. One week, I was in a hurry and cut and pasted a previous week’s report. There was no comment, but I thought it would be too risky to keep this up for too many weeks in a row. As I expended more effort controlling the Fist of Death, I started venting my frustration in the status reports, often using them as a venue to lapse into weird tangents, totally unrelated to the topic at hand.
One week, I was close to going postal and wrote a ten screenful missive, where screens 2-8 had been into Pig Latin. Again, there was no comment. I wish I had saved these because a few may have made good examples of creative writing.
(As of early 2003, that company is no longer an ongoing concern.)
I’m all for project communication, but to the extent that it’s productive. Writing general status reports no one’s going to read or act upon is not an effective use of my time. It’s double-plus ungood if I can’t be honest that Group X, whom I have no authority over, isn’t pulling its weight.