Thursday, October 20, 2005

The Customer Is Always Right?

Even the customer of your worst nightmares apparently. And I mean that literally. This particular customer is giving me nightmares. I have dreams about him. Like now. I went to bed at 3:00 am last night & I had this horrible nightmare about him & his project so here I am - awake at 6:00am even though am off today. And it's Ramadan so I can't even have a cigarette.

The project started at the end of July. For me personally it was a bit of a challenge because it was my first time dealing with someone who is not in IT. In all my previous projects the user is the IT department of the organization. They're IT people themselves but they don't have the resources or the people to handle the project so they outsource it to us. This means that you're dealing with people who know what they're doing & what they want.

In this case though - the contact am coordinating with is not in IT. This is not a problem in itself. After all we're supposed to be able to help everyone - not just people in our business.

But this guy is one of those people who don't seem to get the difference between technology & magic. Explaining that something he wants is not viable because he doesn't have enough technical resources for it for example is an incredible challenge. Explaining that he can't change the entire design of the system & expect that there will be no delay is an impossibility.

We have 6 programmers working full-time on his system. He has succeeded in making them all hate me.

The story goes something like this. I have meetings with him where we have tortuous discussions about what his requirements are & what is the best way to implement them. Finally when am ready to have a nervous breakdown, we appear to reach an agreement. So I go & type up a requirements document & send it to him, asking him to confirm that this is what he wants. He makes me chase him for a couple of weeks then he finally sends it back approved.

So I sit & work on a design, have meetings with my colleagues & we decide on everyone's share of the workload & we get started. When we're ready for a demo, I call him to set up a date. He says oh yeah I was going to call you. And proceeds to explain all the parts of his process that he forgot to tell me about but he wants the system to handle. Even worse, he seems to see himself as some sort of expert in IT because he subscribes to a couple of IT publications. So he reads an article somewhere describing some new revolutionary feature & decides he wants it but doesn't remember to tell me that until the project is almost done. Of course trying to explain that his system doesn't have the scope for the feature he wants - or that it's redundant or that is too expensive in terms of resources, etc...is a waste of time. He's very rude. Will usually tell me that he's much older than me & more experienced etc...& finally will tell me that if I don't like it I can have my management contact his management.

So I go to my manager - who essentially takes the attitude that the customer is always right. If the customer wants us to build a pyramid every morning, tear it down by end of the day & build a new pyramid tomorrow, then we'll do it - provided he's still paying our fees. We don't want our customers taking their business elsewhere.

Basically the answer from my manager is always get him to put it in writing, that he has changed his requirements & that he is responsible for any delay, set a new deadline & do what he wants.

So I go back & fight with the customer about the proposed new deadline. He will usually refuse to accept the time I say is needed. And he will have his management contact my management like he loves to say. And my manager will ask me if I need more people to meet his deadline. Everyone knows that involving new people when the project is already so far advanced is creating more trouble. I have to babysit them until they know where we're at & where we're trying to get etc...They will fall all over everyone's feet. And all this will mean time wasted. In the end I'll get about half the time I need.

Then it's up to me to break the news to everyone in the team - that they basically have to do everything all over again & it needs to be ready yesterday. I know am being unreasonable so I don't blame them for resenting this. They're getting bored & demoralized. It's supposed to be my job to keep them motivated. As far as they're concerned it's my job to get the requirements straight & if they keep having to work extra & redo everything then am not doing my job. They don't know about all the pressures am getting from the customer or from management & it's not really their problem or their job to know. Sometimes I feel so bad for all the hard work they did I end up doing some of the changes myself just because I don't have the nerve to ask them to.

We've been through the above 3 times already. This project is starting to haunt me. Everytime I think I see the light at the end of the tunnel this happens & we end up pretty close to square one. Even worse, it's exploding - it's becoming so bloated & over-loaded with garbage that I know it's going to be a nightmare to maintain later no matter how well we try to document it. I hate this project. It's not the quality of work I feel I can be proud of. Too many patches. Too many shortcuts. It's not efficient. Everything it does can be done much better using a fraction of the resources & in a fraction of the time. I've worked on similar projects in less than a month which worked much better. Now I find myself forced to slave away for 3 months to create this monster. It sucks to find yourself getting zero satisfaction from that much work. But the customer wants it like this. I think the customer should be shot.But am sure my manager would give me some nonsense about shooting customers not being good for business.

Labels:

19 Comments:

Blogger Nightlegend said...

LOL...I am really sorry for hearing about your trouble with your (forgive me to say) IDIOT customer...but that's business nature nowadays ,you have to keep yourself up to requirments in order to succeed.

But there's something else I think you should do ,you talked about your team's members hating you or at least feeling annoyed for the constant requests from the customer ,so why you don't go into explaining to them some if not all of the problems you have with this customer? ,I know you said that this is not their business nor theirjob to know or care about stuff like that but who knows ,they may feel sympathy with you and this form a new motivation for them to execute the project more quickly and accurately.

I wish to transfer into a HitMan right now..LOL..someone like Tom Cruise in (Collateral) ,and wearing this nice grey suite I will travel to where your customer is and give him a clean shot in the head...Am I violent?

10/20/2005 08:54:00 AM  
Blogger programmer craig said...

Hi LouLou-

I've never worked in IT, and for all of my career I've made packaged products that were for sale, and customers either bought them, or they didn't. So... I've never had quite the experiences you describe! I have had product managers insist that I do the crappiest possible(I'm sure!) implementation, and I've done it. Because they are the product managers and it's their head on the chopping block if the product doesn't sell, not mine. I've never been proud of my work on those products, though.

On other occassions, I've been given free reign to do things my way, as long as the product does what it needs to do. I've always put my heart and soul into those jobs, and I think it shows in the finished product. Most of the time, it's someplace between these two extremes.

I've been working as a consultant, lately, and I do have to deal directly with the customers when I do custom apps. Here's a description of one such project, at the other extreme from yours:

The customer wants an application for a military contract. He's a subcontractor, he needs somebody to do the software. He describes to me what it is he needs me to do. Seems like an easy and interesting job, and it involves things I haven't done before... I've been writing windows code a long time now, and jobs that are new and different are rare for me now. So, I lowball the bid, because I think it'll be fun.

He provides the old version of the application, which is a command line interface from the 1980s. It contains all the math and the technical details. So far so good. I whip up a demo and send it to him.

No comment.

I call him. Is that something like what you want? Yeah, fine, he says - looks great! So, I say, when do you need this done by? No rush, he says.

Like a week, I ask? A month? I can do it in a few days but I'd have to drop everything else I'm doing to get it done that quick. Oh, no, he says... I don't need it til next year...

Fine. OK. Why am I working on it now, then? Oh well. So I fiddle with it for a couple weeks. I realize at that point, I need to change the user interface... it's more complex than I originally thought. It's going to take longer than I originally thought as well, but that's OK, it is fun, like I expected it would be. So, I send him a demo of the new UI. Fine, he says. Looks great! Thanks for all your effort, I know you are putting a lot more into this than what we agreed to!

Nice guy. So I get it all done, a working prototype. I send it to him for feedback. Fine. Great, he says. Nothing you want changed? Not really. The user interface is OK? You know, because I thought it might work better this way or that way blah blah blah... well, maybe it might be a bit better if this was over there (names some little 10 second change in the dialog editer) so on and so forth.

So, I finalize the code and I'm ready to add the eye candy and extras. How's about a program icon? Well, whatever you come up with is fine. Luckily for him I'm a creative guy. Help file? What's a help file? OK, I'll just link to a helpfile and put in a few stubs and you can fill it out in Microsoft Word later on. Oh, thanks! I didn't know you could do that!

That's about when I stopped soliciting feedback and just did everything the best way I knew how. I thought it came out really nicely, and the gentleman wrote me a really nice (and official) thank you letter. He was very happy.

But I stressed out over that project a LOT. So, I guess customers can be a PITA one way or the other.

Customers can be annoying. But in the end, I think your management is right. Whoever is paying the bill makes the rules.

There's got to be a better way to deal with the frustration, though. Somehow, I think that people who don't take their work as seriously have happier lives. But I love my work, and I'd rather be stressed and frustrated than be doing a job I didn't enjoy. So it's all worth it, I guess.

10/20/2005 12:40:00 PM  
Blogger Al Sharief said...

Meet with the end user who is paying the Bill & put a stop to that. Design Freeze with a dead line & All. List What is possible & What is NOT possiable to add for Extras. The better you scope upfront the less problems like these you would have. I know IT projects is a bit different. But The Ruless apply.

10/20/2005 06:47:00 PM  
Blogger programmer craig said...

But, Al Sharief, nothing is impossible! Impossible things just cost more! Seriously. A programmer who claims something is "impossible" will quicklly be proven wrong, and laughed out of a job :D

10/20/2005 06:50:00 PM  
Blogger LouLou said...

Craig,

"But I stressed out over that project a LOT."

But why?You enjoyed doing it & the customer was appreciative all along. Poor guy was a bit out of his depth but didn't you get a few laughs out of that?The way you tell it I certainly did:)

Your input doesn't make me feel much better though:(

What you're saying is that it comes with the territory? If this is my first psycho customer I've had it pretty easy so far & I should expect more in the future?

10/21/2005 12:49:00 AM  
Blogger LouLou said...

nightlegend,

"so why you don't go into explaining to them some if not all of the problems you have with this customer?"

Yes I've been thinking about that. Usually I don't like to look like I can't handle the customers. Am a woman & they're men & am their boss for this project so I have to act tough & not complain. This is what I thought. Usually I say what needs to be done like am in perfect agreement with it. Don't like to show that I was pressured from above.

In this case though if I keep this up I think they'll kill me.

10/21/2005 12:54:00 AM  
Blogger LouLou said...

Sharief,

Craig is right in theory. Anything is possible in IT if you have the money & you're willing to wait.

So yeah a customer can throw an article from some IT magazine at me & tell me I want this & I can't say it's impossible. What I can do is try to make sure he understands the cost in time & resources, that it adds unnecessary overhead because it wasn't designed into the system from the beginning, that his application doesn't have the scope for it or that the system already has another feature that serves the same purpose more or less etc....That sort of thing.

If the customer is too thick to get any of that, then we charge him extra, change the deadlines & we do it. It's frustrating because you feel like you're disfiguring something beautiful that you yourself built & feel proud of but what can you do?

It did occur to me to take the issue to his superiors - to try to find some saner individual in that organization to talk to. But in this part of the world they're very stiff-necked. I can't contact his superiors. Only my superiors can. And my manager doesn't want to do that. He says it's up to them who they assign to the project. If they have the wrong man in the wrong place it's their problem & it's not our place to question their human resources policy.

10/21/2005 01:06:00 AM  
Blogger Al Sharief said...

Any Lebanease Bosses / Mangers involved?

10/21/2005 01:25:00 AM  
Blogger LouLou said...

Al Sharief,

The customer is Lebanese. Or a Canadian of Lebanese origin.

But managers?I don't know about his managers but my manager is from Switzerland.

Why do you ask?

10/21/2005 01:36:00 AM  
Blogger Charisma said...

Lou,
i know nothing in IT, and i know how hard it is, but i can relate to the demanding freak customer.

i worked in an ad agency before my current company, and had different accounts to handle, and to my luck they were all IT companies, they drove me up the wall sometimes, some demanded changes right before a press release was supposed to be out for example, and this is dificult coz ill have to do the changes AND re send it to all the newspapers ALL over the middle east!
my boss at the time, said a similar comment like the pyramids one, im on the customer side now, so im enjoying being demanding :D

sorry lou but thats how it works :)

10/21/2005 03:59:00 AM  
Blogger roora said...

lou, off topic, Happy birthday for your 29th , it is on 23 october
and mine is on 22

10/21/2005 01:48:00 PM  
Blogger LouLou said...

Happy Birthday to you roora. Kol sana winti tayba.

10/21/2005 03:12:00 PM  
Blogger LouLou said...

Chari,

I don't mind demanding if it improves things. This guy is a destructive idiot. He 'demands' that we ruin a perfectly good thing & he thinks he's being really tough & smart.

10/21/2005 03:15:00 PM  
Blogger Al Sharief said...

"as long as he's still paying our fees"

I thought your Manager could be a lebanaese, they usually lean more toward the commercial benefits even when it is not technically or professionaly sound.

10/21/2005 06:17:00 PM  
Blogger LouLou said...

Sharief,

No. Not many Arabs where I work actually. Europeans, Canadians & Asians.

U.A.E is weird that way. Sometimes I have to double as a translator when my manager is meeting with a local customer who doesn't happen to speak English.

And sometimes I find people downstairs lost because they can't communicate with the reception staff - also because they can't speak English. I mean it's an Arabic country. You'd think that at least they'd have Arabic-speaking receptionists.

Anyway I digress. Let's just hope this project will be over soon before I find myself considering an early retirement.

10/21/2005 07:44:00 PM  
Blogger Charisma said...

Lou,
"I don't mind demanding if it improves things. This guy is a destructive idiot. He 'demands' that we ruin a perfectly good thing & he thinks he's being really tough & smart."

now thats like totally frustrating! especially after all the effort you put in, he's super ignorant!
rabena ma3aki ya benti!

10/22/2005 12:27:00 AM  
Blogger MoonLightShadow said...

I’m fairly new to the real world of IT and software development, but I can imagine what you are talking about ya Loulou. My colleague have been working on a project and he has been short in time. After the project was launched for testing, the users came out with new requirements, and as I understand he is gonna rebuild many parts again, and I guess they are not that major in the system.

It’s true that everything in the IT world is possible, but we are chained by deadlines and resources. Unfortunately, deadlines sometimes aren’t realistic. Finding yourself behind deadline creates a pressure and the work is not done in the way it should have been done.

In the case of Craig, still, a customer with no specific requirements isn’t good, especially if you are not into the field of business and can understand what that system should exactly do, and know all it’s details. And that creates a pressure as well to get things done in a good way.

I still think that your manager is wrong. There should be some kind of a commitment from both sides. Your customer identifies exactly what he wants and sign a formal document stating that no major changes will be done to the requirements, and from your side you are committed to deliver the project on it’s time. Any changes done in the requirement, should be accompanied by a change in the deadline. I guess that should be stated clearly in a formal document.

Wish you a pleasant birthday :)

10/22/2005 03:44:00 AM  
Blogger LouLou said...

Moonlightshadow,


"I still think that your manager is wrong. "

I don't know if my manager is wrong or right. It's hard for me to judge him because we clearly have different priorities. Certainly this incident has made me see that.

My manager has seen the project, agrees that it's getting ugly & that the customer is an idiot. But he still believes in giving the customer what he wants.

If I was working for myself I'd probably only take projects I enjoyed & tell customers like this to take a hike.

10/22/2005 09:31:00 AM  
Blogger Wonderer said...

This is very weird, I guess you have to prepare a contract signed by the 2 parties including, the required work, the deadline, the prices and the penalty in case one of the 2 parties violated the terms and conditions of the contract. The customer should pay extra fees for extra work if he didn't state that from the beginning!!!!
You are right, the customer sometimes should be shot.

10/22/2005 08:47:00 PM  

Post a Comment

<< Home