A new version of CR_Documentor has been released. The latest version includes a revised set of styles to more accurately resemble rendered documentation, has updated tag support to render NDoc 1.3 tags, allows you to choose the level of “tag compatibility” to work with (Microsoft tags only or NDoc 1.3), and allows you to choose how to handle “unrecognized” tags.
I got the following email from my mom the other day:
OK. So you have a 2 pound box of See’s candy on your desk and no one is around but one person, and he is a cubicle up one and over one. You DROP the whole damn box of candy on the floor and they all roll out. Do you pick the sons-of-bitches up and put them back in the box and never say a word (maybe a small “shit” would be uttered) or do you throw the works away and tell everyone what happened?
GUESS WHAT YOUR MOTHER DID????
My mom rules.
I have the last two weeks of the year off, so my last day of work this year is two days from now, Friday. I’m doing my best to sew things up for the parts of the project that I’m responsible for, such that the people who will be covering for me will not be left with a steaming pile of feces. That said, as time goes on in the project, I find there to be some interesting and odd conflicting goals that management doesn’t seem to want to face yet are blatantly there, which must be dealt with lest all of my effort to not leave folks with a steaming pile of feces be entirely in vain.
We have a list of priorities we’ve been given from our internal customer, ranging in priority from one to 13, and “low.” Yes, “low,” which is somehow lower than 13 but doesn’t rate actually getting numbered “14.” Sort of like an ancient counting system that hasn’t yet developed a robust concept of cardinality.
What’s come to my attention is that there are a lot of unwritten priorities that rank, I guess, at “high,” which, in this system, would occur before “one.”
Keep that in mind as I digress for a moment to address the schedule on which we’re supposed to meet these unwritten priority-“high” tasks.
My team reviewed the requirements for the project, developed a list of what needed to be developed, created a full schedule for development, and started off.
About two weeks or so into actual development, someone (I don’t know who) looked at this schedule and said, “We want all the stuff that you scheduled for the end done first, and we need it done in a third of the time that you allowed for it.”
This is akin to telling a home builder that you realize he just broke ground but you really need to get those gutters on the roof in a week.
In addition, it was very intelligently decided that it would somehow help us if they threw a bunch of extra people on the project who wouldn’t actually stick around for the whole duration - they’d rotate on and off the project as they were needed elsewhere - and they generally wouldn’t be familiar with the technology we’re using. This sort of thing makes me question if anyone has actually read The Mythical Man-Month, but maybe I’m asking too much.
So, let’s bring that all back together: Unwritten (and generally constantly changing) requirements; an unrealistically aggressive schedule; and a team that changes fairly regularly, which requires time to bring the new members up to speed and transition work from the old members.
What it’s coming down to is that someone’s going to have to choose one of these things that we’ll actually be able to complete by the unrealistic deadline. Maybe two, if you’re lucky, but call that a stretch goal. Here are the options:
- Actual development on the product, with only the features we’re able to get done in the time we have left.
- Training of the new people on the team and transfer of knowledge about the use of the not-quite-pre-alpha product we’re writing.
- Thorough documentation of all of the decisions that get made, have been made, or are currently changing due to someone’s hidden agenda.
- Meetings to discuss said decisions one more time because someone new on the team calls into question everything that’s already been decided.
- New unit tests that verify the stuff we’ve already done does what it’s supposed to do.
- Additional unit tests on stuff that already has tests to ensure the code coverage numbers are up.
- API documentation on the product.
- Quick Start/User Guides for the product.
- A reference implementation [of the small portion of the product that we actually finish in the time allotted] that can be used as a template for other implementations [and will probably have to be thrown out by the time we finish].
You must choose, but choose wisely. You only get one of those things by the deadline.
We’re a good week behind the “deadline” already, and it’s only the second phase of eight.
My understanding is that the project we’re working on has been tried a couple of times before and has failed. If they ran into this ridiculous nightmare, I can see why - management (more specifically, marketing and sales) actually sets you up for failure by requesting the impossible, then has the balls to ask why you’re not on schedule. We are on schedule. Just not your schedule. Get a clue.
Here’s an idea: Why don’t we schedule a series of meetings with all of the developers on the project for several hours each week so we can go over administrivia, change the existing requirements, add new requirements, and get the techs to explain precisely how things are implemented from a technology standpoint to the non-techs? That’s not only a great use of time, it definitely helps to keep the project on schedule.
Oh, wait - we already do that. Sorry, I forgot. I was trying to get something done. My bad.
I watched Christmas Vacation last night, one of the regular movies in my holiday rotation, and as I watched it, I realized something.
My dad is Clark W. Griswold.
Okay, so maybe he doesn’t staple himself to the house when putting up lights or walk around in the attic and drop through the ceiling of the room downstairs - he’s usually very careful about things - but, by and large, it’s Dad.
Like when they find the squirrel in the tree and it jumps out at Clark and the whole family runs around the house screaming? That’s Dad. Or the plan to catch the squirrel in the coat and smack it with the hammer? Dad.
Running around with an electrical diagram of how the lights on the house all wire together? Dad.
Dad doesn’t say stuff under his breath the way Clark does, but he’s thinking it. Like when Cousin Eddie is talking to Clark in the living room and Clark says, “Can I refill your egg nog for ya? Get ya something to eat? Drive you out to the middle of nowhere and leave you for dead?” I don’t think Dad would actually say that out loud. We’d hear that later, once Cousin Eddie was out of the room.
When the lights on the house don’t light up and Clark kicks the crap out of the plastic reindeer and Santa? Ooooh, Dad.
I think the epitome of my dad, though, is when Clark goes off after finding out his Christmas bonus is a membership in the Jelly of the Month club:
Hey! If any of you are looking for any last-minute gift ideas for me, I have one. I’d like Frank Shirley, my boss, right here tonight. I want him brought from his happy holiday slumber over there on Melody Lane with all the other rich people and I want him brought right here, with a big ribbon on his head, and I want to look him straight in the eye and I want to tell him what a cheap, lying, no-good, rotten, four-flushing, low-life, snake-licking, dirt-eating, inbred, overstuffed, ignorant, blood-sucking, dog-kissing, brainless, dickless, hopeless, heartless, fat-ass, bug-eyed, stiff-legged, spotty-lipped, worm-headed sack of monkey shit he is! Hallelujah! Holy shit! Where’s the Tylenol?
That’s my dad.
A little anecdote. Picture this:
A small house in the country. One-story ranch. Surrounded by a fair-sized yard and a lot of trees. Next door neighbor’s a quarter mile down the road.
Zoom in on the pastiest skinny white guy you’ve ever seen. He’s wearing blue jean cut-offs and knee-high rubber boots. Glasses, brown hair parted on the side. No shirt.
The guy is checking out this swarm of bees that seems to be coming from a hole in the ground. No, wait, not just bees, but hornets. The hornets have themselves a nest in the ground in the backyard.
He thinks about it for a while and heads to the garage. He comes back out with a cup of gasoline and some matches.
I think you see where this is going.
He dumps the gas down the hornet nest hole, drops the match, and runs. A reasonable cloud of fire jumps out of the hole, followed by a very angry cloud of hornets. That cloud of hornets proceeds to chase the guy around the house, like something out of a Looney Tunes cartoon.
That’s my dad. And I couldn’t love him any more than I already do. He’s the best.
After playing San Andreas this long, I’ve grown somehow fond of the 90’s hip hop/rap they’ve put in as the soundtrack.
That, of course, has somehow turned me on to Snoop Dogg, who’s greatest hits album I purchased because a couple of the songs are in the game.
Now, while I fancy myself a ‘gangsta’ in the game world, I am a computer programmer/nerd/geek, so you have to take my altogether far-too-caucasian stylings with a grain of salt. That said, I never really paid attention to what Snoop was saying with his songs, I just grooved to them.
After listening to the songs without playing the game simultaneously (i.e., in the car), I’ve discovered the ultimate lyrical insight that Snoop Dogg provides.
Snoop’s songs are primarily about one or more of three very important topics:
- Snoop Dogg
Listening to Snoop Dogg has taught me several life lessons. For example, when smoking a joint, you’re only supposed to take two puffs, then pass it on. I’ve also definitely confirmed that Snoop Dogg’s name is, in fact, Snoop Dogg. Have no doubt about it.
These valuable life lessons come to us through such insightful lyrics as “I’m the capital S, I don’t f— with stress, N double O-P D-O muthaf—in double G.” Just in case, you know, you weren’t aware of how to spell “Snoop Dogg.”
In all reality, though, I have to look at this stuff the same way I look at Marilyn Manson: It’s entertainment - all part of the show. It’s so blatantly politically incorrect it makes me laugh, like a Chris Rock comedy concert or pretty much anything by Denis Leary. You can’t help but laugh.
Especially when, after all that, you see Snoop Dogg on a T-Mobile commercial asking advice about fabric softener from Wayne Newton. Too funny.