web counter

From the monthly archives:

October 2008

clockworkmouse-300x252 Caption Contest: The Clockwork Mouse (The Seven Types of Software Engineers)Reader Eric submitted this addendum to the original “The 6 Types of Software Engineer.” The Cranky Product Manager liked it so much, she changed the name of the series to “7 Types of Software Engineers.”

Submit captions for this cartoon of “The Clockwork Mouse” in this post’s comments. And don’t forget to submit captions for the other Software Engineer Types as well…

The Clockwork Mouse

Unlike the other types of software engineers, the Clockwork mouse is most often female. The Mouse works consistently, quietly, and diligently on any project, sub-project, or tiny little feature that is given to her. She is the perfect engineer for that boring file conversion job.

Distinguishing Characteristics

  • Rarely leaves the safe haven of the cube. Must be forced to join meetings.
  • People often ask how long the Clockwork Mouse has worked there when she is spotted (briefly) outside the confines of her cube. Very often, the Mouse has been with the company longer than the person asking.
  • Often talks with a very meek voice and is unwilling to contradict anybody, even when she clearly knows the right answer.
  • Nobody knows what this engineer does with her personal time.
  • Will consistently finish projects on time, but in the most bland manner as possible.
  • Her sense of interface design is non-existent. The interface will either be horribly complex and confusing or so primitive that it will make you wonder if if a C: prompt would be better.
  • She often codes something completely different from the specs because she is too afraid to ask questions.

Project Pitfalls
You may not know this engineer is actually on your project.

Achilles Heal
Any type of social interaction will cause so much stress that the Clockwork Mouse might blow a spring.

Best Bet
Assign non-interface related projects that are intricate, yet boring. The mouse will thrive in this environment. QA is another good bet.

{ 16 comments }

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5 out of 5)
Loading ... Loading ...

Submit captions for this cartoon of “The Moverick” in this post’s comments.  And don’t forget to submit captions for the other Software Engineer Types as well…

The Maverick

maverick-292x300 Caption Contest: The Maverick (The Seven Types of Software Engineers)The Maverick will do your feature IF he can do it in Ruby on Rails. Or Haskell. Or Python. Or <other hot new language that his peers don’t know and therefore can’t evolve or maintain>.

And, NO, this type of Maverick has nothing to do with John McCain or Sarah Palin. Well, probably not.

Distinguishing Characteristics:

  • Smart. Creative.
  • Doesn’t want to build on or maintain the existing codebase (because it’s a spaghetti nightmare AND because it’s written in Java, which is sooo passe), so he’ll roll his own. This will include the creation of an exotic protocol and adapter layer so that the old code can call his code.
  • Dependable — if you let him do it his way.
  • Magically finds his way off the project if he is not permitted to build in his preferred language.

Project Pitfalls:
Oh, you’ll get your feature all right, and you’ll get it on time and it’ll probably be done well and it may even delight you and your users, but once that guy leaves someone is going to have to refactor it in order to evolve it. And we all know there are few words a PM likes less than “refactor”.

Achilles Heel:
Back in my hometown, we used to say “That dog won’t hunt” when referring to someone who simply and inexplicably will not do the obvious, such as build on the tech stack into which he was hired.

Do you need this engineer?
Maybe you could aim this smart engineer at a custom one-off or a stand alone widget that doesn’t need to be evolved or maintained. No.

Best Bet:
Be prepared to make your perfectly reasonable case for building the feature in the existing language in a public forum. Make said case without emotion, and in front of his peers & manager because, trust me, they don’t want to support his alien creation any more than you want to.

{ 10 comments }

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5 out of 5)
Loading ... Loading ...

Submit captions for this cartoon of “Offshore” in this post’s comments. And don’t forget to submit captions for the other Software Engineer Types as well…

offshore-300x180 Caption Contest: Offshore (The Seven Types of Software Engineers)Offshore

Where are these guys, anyway, and what time is it there? Who knows; you always have to count the time difference on your fingers.

But anyway, they seem very nice, and they do try to read the documentation. They just don’t always understand it and it’s not their fault that they were home sleeping when those critical changes were decided last week.

Distinguishing Characteristics:

  • Located in Malaysia, China, or a former Eastern Bloc country. (Ukraine is the new India).
  • Their proper English is downright charming.
  • Sometimes they say they understand when you know they don’t.
  • They make a lot more work for you, including having to attend 9PM meetings. On the upside, it is nice to have a glass of wine in your PJs while discussing the desired behavior of wildly far-flung corner cases for no other benefit than that of QA.
  • Will often do the needful.
  • Sometimes their code isn’t great. But, as I have mentioned, they are generally quite polite.
  • ARE ULTIMATELY NOT CHEAPER. But we’ll let CPM cover that topic separately.

Project Pitfalls:
Too many to count on your hands.

Achilles heel:
Communications.

Best Bet:

  • Document the hell out of your requirements and functional specs.
  • Provide completed mock sets,including exception scenarios.
  • Keep up with change requests.
  • Meet with them often, and for God’s sake speak slowly (but not louder, because duh) and speak clearly
  • Stop the meeting conversation often to see if they have any questions.
  • Also, I know you don’t want to hear this, but for best results, you really should just go there for a week or so.

{ 11 comments }

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5 out of 5)
Loading ... Loading ...

Submit captions for this cartoon of “The Teflong-gineer” in this post’s comments.  And don’t forget to submit captions for the other Software Engineer Types as well…

teflongineer1-300x286 Caption Contest: The Teflon-gineer (The Seven Types of Software Engineers)The Teflon-gineer

The Teflon-gineer will do anything to reduce his work. If you’ve asked for a sports car, this engineer will try his/her damnedest to meet your requirements with a Model T Ford. Deflects all bug assignments with his/her Teflon Work Deflector (in size ‘J’ for Jerk).

Distinguishing Characteristics:

  • Says things like, “Are you sure the users really want that?” and “Is XYZ functionality really that important? How many users did you talk to? Can I see your notes?
  • Reassigns his bugs back to you with updates like, “Please provide more clarity“, even when you’ve already referenced the spec page and section which spells out the original requirements with blinding clarity. When you reassign the bug back to him, you get his Out Of Office response.
  • Attempts to lock you into a legal contract specifying everything down to the last minimalist kilobyte of code that will be written.
  • During spec reviews or Scrum, says things like “Oh, you want the page to validate the user’s password entry? Well that will cost you an extra 2 days of work…plus another day if you want that alpha tested.
  • Attempts to break your will to live with never-ending requests for excruciatingly documented detail to the point where it would be faster to code it yourself (inclusive of the time it would take you to learn Python).
  • When he delivers, his code is solidly mediocre. He never surprises, never innovates, and never has ideas.
  • Even his peers think he’s kind of a jerk.
  • Likes to watch When Animals Attack.

Project Pitfalls:
Serving your sentence for justifiable homicide will impede the project schedule.

Do you need this engineer?
Did you need your sibling to hold his finger one inch from your nose and say “I’m not touching you. I’m not touching you. I’m not touching you…“4

Achilles Heel:
His manager thinks he’s a jerk, too.

Best Bet:

Get this engineer off your project. Confront him/her, document as much of this crap as you can, then confront his manager. No good can come of this.

{ 12 comments }

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5 out of 5)
Loading ... Loading ...

Submit captions for this cartoon of “The Great One” in this post’s comments. And don’t forget to submit captions for the other Software Engineer Types as well…greatone-257x300 Caption Contest: The Great One (The Seven Types of Software Engineers)

The Great One

Where did this engineer come from, and can you have five more of him?

Distinguishing Characteristics:

  • Always delivers on schedule, even when unforeseen code bottlenecks require more time that initially estimated.
  • If unforeseen bottlenecks arise, you don’t hear about it from this engineer. Instead, you hear about how this engineer worked all weekend from one of his peers.
  • Respected by engineering peers. Professional in meetings.
  • Honest with estimates.
  • May have a Star Trek accent or a superhero fetish. Loves watching “How It’s Made”.
  • Solid code, sometimes delivers more than what was requested.
  • After the feature is launched, asks whether it met the users’ needs.
  • Keeps up with his bug queue.

Do you need this engineer?
Um, duh.

Project Pitfalls:
Try not to hug this engineer in public. He gets embarrassed and human contact is sometimes confusing.

Achilles Heel:
This engineer is so dependable that his manager tends to put him on every project. He sometimes has trouble saying “no”, so can become overstretched. Also he tends to be optimistic in his estimates.

Best Bet:

  • Give lots of public credit to this engineer, even if he doesn’t care about that — because his peers might.
  • Send nice notes to his management.
  • Don’t ask him to attend time-waster meetings, but if he must, publicly change the agenda to accommodate his part first so he can leave quickly.
  • Add time to his initial estimates to buy him some wiggle room.
  • Play Halo with him
  • Bring him food.
  • Ask how you can help him, and ask often.
  • Encourage this engineer to breed.

{ 11 comments }

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5 out of 5)
Loading ... Loading ...

Submit captions for this cartoon of “The Hotshot” in this post’s comments. And don’t forget to submit captions for the other Software Engineer Types as well…

hotshot1-293x300 Caption Contest: The Hotshot (The Seven Types of Software Engineers)The Hotshot

Smart and knows it, often quite young. Has great ideas and hacks crap together at midnight, then… is done.

Distinguishing Characteristics:

  • Unfortunately has little appreciation for what it takes to actually ship software and thus never really finishes his features and his stuff is often fragile or just broken.
  • Can’t be bothered with making sure his stuff is internationalized, thread-safe or designed to scale.
  • Can’t be troubled to fix what he built because he’s on to the next thing.
  • Detests “process” and all the process hangers-ons like QA, PM, Training, and Project/Program Managers.
  • Doesn’t read the documentation OR reads the documentation and codes something “better.”
  • Says things that annoy his fellow engineers and managers like, “If it takes Ed more than 2 days to do this feature, then he is seriously stupid.” But of course, Young Hot Shot never actually finished a real feature in just 2 days either. That is, if “finished” means working in more than just an obscure corner case scenario.
  • Rarely seen without headphones or earbuds. Plays World of Warcraft and Halo.
  • Drinks Red Bull and stacks empty cans up in his cube as some sort of offering to the God of Unmaintainable Software.
  • All shirts purchased from threadless.com. Appears to either skate or snowboard. Green IM status 24/7.
  • Natural habitat is start up environments.

Do you need this engineer?
Depends on whether you’re building something that a person will eventually need to use.

Project Pitfalls:
None, really, because you are not even on his radar.

Achilles Heel:
Cannot build evolvable, sustainable software.

Best Bet:
Convince him he’s a genius who really belongs in your company’s “Innovation” or R&D group.


{ 10 comments }

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5 out of 5)
Loading ... Loading ...

Fun, fun! Submit your captions in the comments for this cartoon of “The Veteran.” And don’t forget to provide captions for the other Software Engineers Types too!

veteran-193x300 Caption Contest: The Veteran (The Seven Types of Software Engineers)The Veteran

He’s been here for five years, and he’ll be here for five more.

Distinguishing Characteristics

  • Cranky.
  • For some reason, he’s permitted to use profanity in meetings and otherwise behave in ways that would make his mother cringe and your company’s attorneys start job hunting.
  • Casual Friday dress is too formal. Facial hair is common.
  • You’re never in on his private jokes.
  • He’s eaten 5 Product Managers before you, and he will chew through 5 more after you’re gone.
  • His manager is afraid of him. He’s eaten through 5 managers before this one, and he’ll chew through … etc.
  • Yes, he is always a “he”.

Do you need this engineer?

Yes. He has the best only knowledge of your product’s undocumented, spaghetti code and he knows it, which is why he will never support projects aimed at documenting it. Also, if left ungoverned he can negatively impact the other engineers (except for any offshore team members, which he does not really consider to be part of his team.)

Project Pitfalls:

He can smell fear and ignorance, so don’t defer to him too quickly and don’t ask dumb questions. You’re toast the second you utter your first corporate buzzword in his presence. If he gives you a nickname such as “MBA,” you’re screwed.

Achilles Heel:
He wants to tell his project war stories, like how f-d up the project before this one was, and which “business people” on the project couldn’t handle the stress. He’s happiest when reminiscing about Assembler, or about launch 1.x of the product (which is now in V8.3)

Best Bet:
Bring food. Listen to his stories. Defer to his expertise on architecture, even if you think it’s wrong, because he’s probably right. Do this publicly, so he wins. But the architecture battle is your pawn: don’t compromise on anything user-facing, because if he discovers that can scope-cut one critical user-facing feature, this will set the pattern of your relationship.

{ 14 comments }

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5 out of 5)
Loading ... Loading ...

Caption Contest! (7 Types of Engineers)

by The Cranky Product Manager on October 29, 2008

in Development, The 7 Types of Engineers

Remember that “6 Types of Software Engineers” post from way back, authored by “Another PM”? Well, a most excellent reader named HW drew some WICKED AWESOME cartoons of each.  PLUS, another wicked awesome reader, Eric, added a 7th type of Engineer - The Clockwork Mouse.

So, now we’re going to have some fun — help the Cranky Product Manager come up CAPTIONS for each of the cartoons.

How to Vote

To facilitate voting, the Cranky Product Manager has created a new post for each Software Engineer Sub-Type with the new cartoon.  Please submit funny captions in the appropriate post’s comments.

The Deadline

Submit your captions by midnight (PST) on FRIDAY, NOVEMBER 7.

The Prize

The Cranky Product Manager will send one lucky reader/caption-submitter a mug featuring the winning caption and its companion cartoon.  If you leave a real email address, that is.  (remember, your email is not published to the blog. Only the Cranky PM can see it.)

Why is the Cranky Product Manager doing this?

Reason 1: Because the Cranky Product Manager wants a funny coffee mug to haul around the office and leave around the war room.  When an engineer says something “typical” she shall hold up the mug and point to the appropriate Engineer caricature.  It will go over REAL NICE, she’s sure, and do wonders for Product Management and Developer relations.  But frankly, she doesn’t give a s&*#.  She wants her mug, damnit!

Reason 2: Duh…. To drive blog traffic.  Because nothing feeds the Cranky Product Manager’s ego like a bunch of page loads.

Reason 3: What a great way to get out of writing an original post this week!  Have the readers do the work!

{ 5 comments }

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 2 out of 5)
Loading ... Loading ...

Customer Self Sabotage

by The Cranky Product Manager on October 23, 2008

in Customers

The Cranky Product Manager flew many miles, suffering through innumerable connections, delays, malnourishing food, and indignities heaped upon her by TSA officials. All to interview this fantastic new customer that just spent a huge wad of cash to buy DysfunctoCrank. Even better, this new customer represented a new and potentially very lucrative market segment. With a bit of product work, perhaps DysfunctoSoft could make Big New Customer blissfully happy plus have legions of new prospects beat a path to its door.

So the Cranky Product Manager had big plans. She was going to LEARN this customer, Ninja Style. All its sundry business problems. All its hopes and dreams. All its political quagmires.

She was going to LISTEN LISTEN LISTEN and identify those key use cases, capturing their very essence, and distilling them to succinct, beautiful user stories that were perfect in proportion and packed more punch than a Long Island Iced Tea.

The CPM would get to know those users better than their own mothers and spouses, and then — like Steinbeck, Hemmingway, and Shakespeare before her — she would create personas. But not just ANY persona. No, the Cranky Product Manager could never abide by that. Her personas would NOT be lousy one-dimensional cartoons, ala Joe the Plumber. Never! Instead,the CPM’s personas would be fully realized characters that spring to life on the page and burrow deep into the developers’ psyches — making those Code Boyz and Grrls not only better coders/artistes, but also more empathic, more grounded, and better people.

And so the Cranky Product Manager prepared. A lot. She made lists of questions and topics. Unearthed her voice recorder. Thought of fun games and exercises she could do with the customers. Practiced active listening and open-ended questioning with her Cranky Kid (”So tell me, Cranky Toddler, what do you think about Elmo? Does he help you? How? What is the value of Elmo completely solving this problem for you? How would you compare the value of Elmo’s help to Thomas the Tank Engine’s?”).

The Cranky PM got the Sales Droids to line up a full schedule of in-depth one-on-one interviews with representatives of all the main stakeholders. She even sent ahead her favorite handout on Persona interviewing, so the customer would understand why the CPM was asking such detailed questions about each user’s overall job responsibilities and motivations.

And then. Of course. It all got screwed up.

A simliar act of customer self-sabotageWhile the CPM was flying 40,000 feet above some square red state, a Veep on the customer side decided it was a big waste of time for “her people” to spend so much time meeting with the Cranky Product Manager. Instead of the six one-on-one interviews, the Veep decreed there be just one 60 minute meeting of the group. Never mind that everyone was still “wasting” the same amount of time, exactly 1 hour. No, that didn’t matter. Because the Veep’s whole point was about flexing her power over a software vendor, and NOT about being logical or rational.

As expected, the one hour group meeting did not go well.

Strike One: The room was overflowing with 30 people, 75% of whom were completely unfamiliar with the product and had no idea how they would ever use it. They were told there was going to be a product demo and food. But alas, neither was planned.

Strike Two: The Cranky Product Manager gave her introductory spiel about how important it was for her to understand Big New Customer’s actual business problems, all to ensure that future product changes lined up with their needs. Well, despite all the nodding heads in the room, the Veep laid down the law. “I don’t think we need to go into all that. Let’s stop wasting time. Your Tech Support already has the list of all the enhancements we need.” Great. Nothing like a list of enhancements with no context to guide product development.

Strike Three: The Veep insisted the Cranky Product Manager give a demo and then a roadmap presentation. Neither of which was originally planned. Fortunately, the CPM was always ready to give either at any moment. But damn if the roadmap preso wouldn’t have gone better if she had understood this customer’s problems better and was able to speak specifically to their pain.

And so the entire customer visit was (mostly) for naught. Despite the CPM’s attempts to turn the audience’s roadmap questions into learning opportunities (”You’re asking if we’ll have feature X. Is that important to you? Why?”), very little was learned. Not enough to create personas. Not enough to identify key use cases and write user stories. The best she got was a few business cards. Maybe she’d be able to contact these people for interviews later, but probably not since their Veep made it clear she thought their communicating with a vendor was wasteful.

Naturally, the tale ends woefully.

The next release was NOT what Big New Customer wanted, nor what they thought they outlined so clearly in that list of 37 enhancements submitted to Tech Support. The Cranky Product Manager had every intention of making major revs to the product to meet this customer’s needs, but instead Big New Customer sabotaged the Cranky Product Manager’s information gathering efforts, thereby unwittingly sabotaging themselves as well.

Stupid dumbass customer.

{ 5 comments }

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Twitter Experiment

by The Cranky Product Manager on October 21, 2008

in Blog Business

OK, the Cranky Product Manager heard that all the Cool Kids are doing this thing called “Twitter” which involves sending “tweets” and getting a phone full of SMSs with critical information, such as what your BFF ate for breakfast that morning.

So, in an effort to recapture her already-spent youth and waste even MORE time than EVER before — because god knows she doesn’t already have enough to do — the Cranky Product Manager has signed up for Twitter.

FURTHER, the CPM has committing to sending some tweets.  At least a few.  About what, who knows?  Because remember, the Cranky Product Manager is a fictional character with a very fictional life, and as such her Tweets will be fictional too.  In other words, ALL LIES ALL THE TIME.

Unfortunately, keeping track of a morass of lies is complicated business.  Will the CPM be able to do it?  Or will she introduce ridiculous continuity errors into the narrative? Will she look like a jackass?  Will she be unable to maintain her snarky and bitter fictional persona when called upon to “assume the character” a few times a day intead of once or twice a week?  We’ll see.

Anyway, if you’re interested, follow the Cranky Product Manager at www.twitter.com/crankypm.

{ 0 comments }

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...