Fog Creek Software
Discussion Board

how to "manage expectations"

i recently got hired to put together an application for some physicians. the app is a relatively simple web/db thing. there is a problem: an initial version of the system was put together by a physician-slash-part-time-coder who told my bosses that they just needed to hire a "serious hacker" to "finish things up." his initial system is very bad...basically, instead of using a standard web server + application server (apache+tomcat, or .NET/IIS, etc) he decided to write a web server from scratch.  this web server doesn't really do any of the application stuff they want, and it is poorly written: it fills up a 3gb disk with log files, with no users using he system.  he managed to pass it off as "almost done" by having a lot of hard-coded phony screens mocked up for conference demos.

I don't want to say "this server is crap, what on earth was this guy thinking?" because it was written by a colleague of theirs. I also don't want to appear as though I'm not as fast and able as advertised, because I was referred to this job via a friend, who will catch flack if my bosses think I'm not the "hot hacker" he said I was. 

What is the best way to let my bosses know that this is going to take longer than expected, without it seeming that the reason it is taking longer, is because I suck?  Also, a related question, is what is a good way to explain why I'm not using any of the guy's original code, without being disparaging?  Thanks!

Will C
Friday, November 15, 2002

Basically you are proposing a re-write when they expect a 'massage', you'll end up burning midnight oil while they're playing golf once a week.

My advice (I've been in and heard of similar situations), document all the issues, all the problems, all the faults, all the rework you'll have to do, be very professional, give the documentation to whoever is paying your bills and ask the simple question "do you wish to continue?". They may say yes, they may say no, either way your professionalism is preserved.
Do the doco and give it to them.

Friday, November 15, 2002

This is hard to type, I'm so busy cringing. Yikes.

I agree with Alberto. You need to document all of the problems. I would also add that you need to document why doing to something else makes more sense. Just pointing out the problems with the existing system could be interpreted as overly negative. You want to "turn" the conversation to why going to .NET/IIS (or whatever) makes more sense.

Oh, and don't ever get treatment from that doctor. If he heals like he codes you would end up with your ears on my butt. :p

Friday, November 15, 2002

The doctor who wrote the original code is not a practicing physician. He now works for a company that gives IT advice to HMOs and hosptials. (sigh)

Will C
Friday, November 15, 2002

Have you tried asking the original coder why they wrote their own web server? There may be a genuine reason why they did.

Matthew Lock
Friday, November 15, 2002

Yes, I asked about this. It was for "security reasons." This being a medical-related project, there are a lot of security concerns. He felt that by writing his own webserver, he could be sure that the code was completely secure.  I suppose this _could_ be a valid argument for doing a re-write, but considering the goals of the project and the code he produced, it was a bad choice.

To understand the situation better, I should maybe point out that I work for a research-oriented institution, and this project began as a semi-academic exercise. Thus, the nerdy doctor writing a webserver from scratch can be partially forgiven (he didn't know any better.) The issue is now, that non-academics are now funding this project, for use in the "real world" and it actually has to "work," in a relatively short timeframe.

Will C
Friday, November 15, 2002

Be prepared to be brutally honest about all the "issues" with the current system, or do not take the job. Otherwise you will inevitably get both yourself and your friend a dunce reputation, while trying to save the ass of an obvious faker.

Just me (Sir to you)
Friday, November 15, 2002

Maybe the guy wrote a new web server because the client told him they really couldn't trust a commerical one.

And when he realized what a hole he had let himself in for, then he climbed out.

Anyway, tell them straight that their system is irreparable. Ask them which is cheaper for chronic organ failure, multiple operations and intensive care or a transplant with a new organ.

And never bother about being too negative if you intend to finish the job.

Stephen Jones
Friday, November 15, 2002

For something like this, you must not be subtle with them, or else they will miss the message.

You have to tell them that what they have is complete rubbish. Then take it from there. Otherwise you wil be roasted.

Must be a manager
Friday, November 15, 2002

..maybe the home grown solution was prompted by the requirement to be HIPPA compliant....

Friday, November 15, 2002

I agree that you need to get the truth across to these guys clearly and unequivocally.  Tact is good, but getting the point across should come first.  Probably they are not going to be very happy with the idea of throwing away the original, so be prepared to stand your ground.

You might deliver your diagnosis and then recommend that they get a second opinion.  Seriously.

Matt Conrad
Friday, November 15, 2002

On the subjiect of associated programs can anybody tell me how I can get mailto links in Netscape 7.0 to open my default mail editor, Outlook, instead of Netscape's own mail client.

And if anybody has found a way around the bug that means Outlook linls (in HTML formatted mail) to the web (in HTML formatted mail) open in IE 5.5 instead of the default web browser, could they let me know. The last info I had was to replace IE 5.5 with an earlier version.

Stephen Jones
Friday, November 15, 2002

Wrong thread! This was supposed to be in another thread where I'll post it now.

Stephen Jones
Friday, November 15, 2002

I agree that you need to get the truth across to these guys clearly and unequivocally.  Tact is good, but getting the point across should come first.  Probably they are not going to be very happy with the idea of throwing away the original, so be prepared to stand your ground.

This is very good advice.  I would follow it closely.  I can't tell you how many times I have been in this situation in my career.  Subtly will only get you a big fat headache. 

Be honest.  Brutally honest.  And make sure they get the point.

Good luck.

been there, done that
Friday, November 15, 2002

I can understand wanting to write one's own web server as a learning exercise, but wanting "improved security" should be a ridiculously easy argument to dispense with.  What, this guy is smarter on his own than the entire Apache team?

My natural tendency is to be subtle, but it seldom works in these kinds of situations.  You've got to get in there and show them what you're talking about -- point out enough of the truly fatal problems that your bosses understand the magnitude of what you're up against.

You've already got one point in your favor:  you're a "serious hacker" called in to finish up the things that the original author *could not do*.  "Finish things up" is very easy to turn into "fix my mistakes."

Basically, this project was out of scope before it began.  The only way out of that that doesn't leave you, or them, or both, upset is to straighforwardly tell them what *needs* to happen.  You should be prepared to walk, though, unless you're willing to put up with the migraines involved in working with this (or you can't afford to turn down the work).

Friday, November 15, 2002

Today I had a meeting where I was pretty frank and blunt about the current state of the code. the doctor I work for said "go ahead and pave over everything if you need to." The other doctor was a bit more argumentative, but luckily, doctor 1 is the one cutting the check.

Thanks for the advice, it worked!

Will C
Friday, November 15, 2002


I guess there's no point in telling the story about the job where I spent months gently and tactful suggesting to the powers that be that the code that I'd inheirited, written by a more senior engineer, was less than perfect (it remains to this day the most appalling, pathetic, childish, unintelligible code I've ever seen in any context).  Unable to get my point across, and unable to salvage the code, I eventually solved my problem by leaving the company.

I regret to this day not exposing that incompetent in the most ruthless and emotionless manner possible.

I wish I'd told that story. 


Dunno Wair
Friday, November 15, 2002

WillC "The doctor who wrote the original code is not a practicing physician. He now works for a company that gives IT advice to HMOs and hosptials. (sigh)"

You just scared the shit out of me. Seriously rocked my boat of trust.

I hate it when that happens!

Beka Pantone
Friday, November 15, 2002

I never trust doctors anymore.  Oh, I still see them when I'm sick, but I don't take their advice or fill their prescriptions until I've verified the information myself.

My local medical school allows community members to use the library.  It's amazing what you can find out in an afternoon there.  Medical textbooks and journals are often not nearly as complex or jargon-filled as you might think. 

Power to the people, brother!

J. D. Trollinger
Saturday, November 16, 2002

You did the right thing. Good for you !
Even if they had turned you down at this point it would have been a blessing in disguise. You handled their expectations quite well.

I once inherited a project where the last guy to touch it actually faked it. The system was supposed to do a telco switch database conversion (for a German switch company that shall remain nameless). It produced worthless junk. But the guy in charge of programming it worked 24 hours a day for a couple of days to do the conversion manually and claim victory in the final QA test. He got a promotion and transfered back to West Germany as a hero ! The stupid Americans couldn't do it, but he could !

A couple of weeks later his boss tried to use the system for the next switch conversion. Surprise ! It didn't work. Stupid American programmers running the system must have screwed up. After a couple of weeks of analysis the American programmers figured out what had happened and finally convinced their German boss that he'd been "had".

They hired my employer to "upgrade" the software (Stupid American aren't allowed to do original programming - just patches.). I got to be the one to tell the German manager that "perhaps" 5% of his $1M+ investment "might be salvagable".

German manager turns to me and say "you mean I spent $1M and all I have to show for it is s**t?"

My employer's sales people looked like they were about to have a cow !

"Yes," said I.

If looks could kill I'd have been declared dead on the spot.

We got the contract to re-write it from scratch. Turns out I was the only one not blowing smoke up his ass. He respected that.

Tom Dratler
Saturday, November 16, 2002

*  Recent Topics

*  Fog Creek Home