Free Newsletters

   All InfoWorld Newsletters
Advice Line | Bob Lewis » When you step into a kludge/Who or what do you go nudge?

June 27, 2006 | Comments: (0)

When you step into a kludge/Who or what do you go nudge?

Dear Bob ...

I really enjoyed your article on kludges ("The Kludge Index," Keep the Joint Running, June 26, 2006).  But I have a question:  what do you do when you step in someone else's kludge?  I'm a junior member on a team that's been kludging along for about a year and a half on a project.

I've been here for three months.  I'm examing source code and finding comments like "DO NOT MODIFY UNDER PAIN OF MUTILATION OR A MONTH OF COFFEE DUTY" with no explanation about what the following block actually accomplishes. The system is a pieced together mess that hasn't been properly tested against any cases, let alone corner cases. Every time we try to use the system it's a labyrinth of steps involving way too many tools.

But of course, the people who have been here longer, the ones responsible for devoting so many company resources to developing the kludge, have a vested interest in NOT scrapping the thing and starting over. They can't admit that the work they've done so far needs to be thrown away. (In fact, they don't even really want to admit that it's a software development project that requires some kind (any kind!) of methodology...)

I'm "managing up" as much as I can (I just convinced everyone that we need to start using a revision control system) but is it really worth it?

- New kid on the block

Dear Newbie ...

The "right thing to do" depends on how the project is being managed. When we teach project management, one of the techniques we, along with just about everyone else, recommend is to maintain a formal list of project risks and issues. Part of project management is developing contingency plans for risks and making decisions about issues.

Generally, the project team reviews the list during the project's weekly status meeting. If this project is being managed that way, I'd recommend adding your concerns as a risk or issue and letting the process run its course.

Otherwise, you might consider sitting down with the project manager to inform him of your concerns, ask what the plan is for cleaning up the system's internals and otherwise moving it from proof-of-concept to a production-grade system, and accept whatever answer he gives you. In the end, it's his baby and you are the new kid on the block.

You'll have to use your judgment in deciding whether this would be a productive course of action or just get you labeled as a troublemaker. That depends entirely on the personality and competence of the project manager.

If your organization has a separate architecture group you might consider discreetly dropping a quiet word in the right ear. I don't love this approach, though. In some, politically ugly companies it's about the only thing you can do, but you end up getting a reputation for being a junior G-man, as it were, and  very quickly, nobody is willing to trust you any more.

I'll also say this: My comment about hiding ugly code inside a "box" where nobody can see anything except its interfaces was sincere. Not all code is beautiful; sometimes the only way to accomplish the job is a nasty little hack that you hope nobody ever looks at very closely.

That shouldn't apply to a whole system, of course, but it usually does apply to a callable module or three.

Anyway, as junior team member your options are more limited than if you'd been around longer, so my last piece of advice is to remember that relationships outlive transactions. That is to say, know when to stop pushing the point. Even if you win every battle you fight (to pick an overly harsh metaphor), eventually you'll end up alienating so many people that you won't be able to win any battles at all.

I hope this helps.

- Bob

Posted by Bob Lewis on June 27, 2006 04:41 PM


RATE THIS ARTICLE:





 

  •  
  • COMMENTS




Re: ugly code inside a box.

I was involved with reprogramming a calendaring product from Windows 3.1 (and C) to Windows 95 (and C++). The heart of the program was a routine that did actual calendar computations. It was a nasty C routine that was undocumented and worked flawlessly. Needless to say, following the logic, "If it ain't broke, don't fix it" the C routine was incorporated in the new product, untouched.

Posted by: J. Taggart at June 29, 2006 05:46 AM

Three books. Three ways to change the world, your life, or at least Bob Lewis' bank account.

Leading IT: The Toughest Job in the World distills the world of IT leadership into eight learnable skills and gives you concrete, practical techniques for each one of them.

Bare Bones Project Management: What you can't not do makes project management manageable, even for first-time project managers with no formal training in the discipline.

ManagementSpeak: What managers say/What they mean … well, it won't help your career, and won't make you a better manager. Mostly, it will make you chuckle, guffaw, and maybe even chortle. Make friends - it's the perfect gift for anyone who has ever suffered through one of those meetings.

Order your copies today!





Technology White Papers

 

InfoWorld Technology Marketplace

» Technology White Papers Library

Technology White Papers by Topic

Technology White Papers E-mail Alert

Find out when the latest white paper is available:
 
 
» BUY A LINK NOW

Sponsored Technology Links