Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

As a programmer, you have to interact with your users/customers in some way to both develop and support the software they pay for.

What was the worst experience you've gotten from those interactions?

What did you learn from that experience? Why did this situation happen? How can you to avoid it in the future?

I'm also interested in best experiences you have, and why they were different from the worst. and how you can reproduce them.

share|improve this question

closed as not constructive by Anna Lear Feb 16 '12 at 19:34

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

Anything off of Clients from Hell, though specifically I like my entry of God owns the server. –  Josh K Oct 4 '10 at 18:53

15 Answers 15

up vote 16 down vote accepted

I interned at a financial firm my first year in college. At that job, I wore many hats: programmer, help desk, network admin. One day I had to hook up a printer for the secretary of the SVP of Investments. This SVP worked 15 blocks away and wanted the printer hooked up in a back room, 50 feet away from the secretary's desk. This was nearly 20 years ago, so wireless wasn't an option. To keep everything tidy and out-of-sight, I had to run serial cables into the ceiling, down the wall in the back room. Wires had to be spliced together. A faceplate had to put over the hole I punched into the wall. You get the idea. I finished the work and went back to my office.

At 5pm that evening, as I'm getting ready to leave for the day, I got an urgent phonecall from the secretary: "The SVP just asked me to stay late, because she needs 20 copies of a 20-page report printed for a Board meeting tomorrow morning, but the printer you installed won't work. She wants to see you right away."

I had to take the subway 15 blocks to SVP's office. Inside, the secretary was getting ready to leave, saying, "Since the printer won't work, I guess there's no point in me staying late." With that, she left.

Now for the worst part: the SVP walks up to me, gets right in my face and starts hurling profanities at me at the top of her lungs: "Why you little 5#1t#3@d! Why the 9^ck did you leave us without a working printer? You g0dd@mm3d 9^ck1ng @55#073..."

I was embarrassed and humiliated beyond belief, even though mostly everyone had gone home for the day by that time. But I kept my cool, and calmly asked her to pull up the document she was having trouble printing. I clicked the print key (Shift-F7), the print menu came up, and I hit "1" to print "Full Document." I heard pages printing in the back room. Walked in, and there it was.

No problem after all. At that point, the SVP must have realized what I had guessed as soon as I got there: This whole "printer problem" was just a ruse so the secretary wouldn't have to stay late, and wait for 400 pages to print.

(What did I learn from all this? The eternal truth: "Hebel Hebelim..." Translation: "Absurdity of absurdities... Everything is absurd. What profit does man have in all his work for which he toils under the sun? (Qoheleth 1:2-3)" All is absurdity, vanity, meaningless--hebel.)

share|improve this answer
Ouch... I love that one –  user2567 Oct 4 '10 at 21:01
So...what happened to the secretary? (Yeah, I know. Probably nothing.) –  Kyralessa Oct 4 '10 at 23:14
@Kyralessa: I don't know if anything happened to the secretary, but I highly doubt it. Fortunately, I never had to go back to the Investments Group again--it was a large company with 1000s of employees located in about 1/2 dozen buildings. I vaguely recall getting some kind of non-apology from the SVP--something like, "I'm sorry if I insulted you, but (excuses, excuses)"--as soon as it was obvious that the printer worked fine, but I was still stunned after being verbally eviscerated and tuned-out most of what she said. –  A. N. Other Oct 5 '10 at 6:35

I wrote a fairly complex custom web application for a Federal Regulatory agency once with an IT Manager who was seriously ADHD, had administrator rights, and an itchy trigger finger.

So one day she calls me up for support on the app. It was a fairly minor issue that was only experienced by a couple of users and I think ultimately was probably the result of an improper configuration setting somewhere. Very routine.

Well, it would have been routine if I weren't troubleshooting it with this IT manager over the phone from across the country. It was my first exposure to the "Scorched earth" troubleshooting approach.

Every time I'd ask her to check something, I could hear her furiously typing in the background for a lot longer than it seemed like would be necessary for what I was asking.

Me: Can you restart the web service by running the command "IISReset" from a command line?
Them: Okay (clickity-click-click-click) Okay, I ran that command. Oh and I was thinking that maybe the firewall might be the problem so I reconfigured it to blah blah blah..
Me: Hold on now. Let's try one thing at a time. So now I'd like you to open the IIS console and make sure the site directory is set to use basic authentication.
Them: Clickit-click-clack-clickity-buzz-ding-whoop-click. Got it. That was set. I also started a defrag on the hard drive in case that might be causing problems too. It has been a while yaknow.
Me: Okay, please, please. Let's just stick with the troubleshooting steps for now. We need to only change one variable at a time. Next, please check the permissions on Group A and tell me if it includes right x.
Them: Oh my god there are like way too many rights on this account, I'm going to remove y,z, and w from these users. What was the one you were asking about again? Wait, can I call you back? I'm going to go reboot the server to see if that helps. I'll call you when I get back to my office.
Me : Umm, well that's not really...[click]

[Phone Rings 45 minutes later]
Them: While I was rebooting the server I thought that a sure fire way to fix the problem would just be to reinstall from scratch, so I formatted the drive and re-installed windows, can you walk me through re-installing the app? Also, I can't find the install disks, did you leave a copy with me from the last time you came out? We have to hurry because this is a production server and we can't be down for too long without people complaining.

The story ends with me on a plane later that evening. There was absolutely no way I was going to talk this person through a full install of a complicated multi-tier application over the phone. I took another developer with me to the customer's site with the express task of distracting this person while I re-installed the software.

share|improve this answer
Upvote for this "I took another developer with me to the customer's site with the express task of distracting this person while I re-installed the software." –  Bill Oct 7 '10 at 20:13

I know I answered already, but I have a few of these as I work in web development. My favorite (least favorite?):

I was hired to build a website for a relatively high-profile name in the sports world, so all of the communication was done through his lawyers who obviously knew not a single thing about web development. I got the job because a friend of mine recommended my services to them and she actually became my liaison to them who were my liaisons to him. This created a wonderfully horrible "telephone" type communication process where I would lay out all of my plans (pretty much as plainly as I could due to the audience's understandable ignorance of the process) and they would get muddied en route to the actual client and vice versa. It was, how you say, frustrating.

Anyways, part of their requirements were a news section. No big deal. However, when I told them they probably wanted a way to update said news section (and that I would have to build them a tool for it), they balked, because they didn't want to have to pay me for another two or so hours. I said, ok, that's fine, no update tool, here's my estimate. Signed off, built the site, I get paid, everyone is happy.

Two weeks later I get a frenetic call from my friend who has apparently just taken a lot of heat from the client because the news section isn't being updated. She wants access to the code so she can go in and update it herself (because they don't want to pay me to do it). I say ok sure, no problem, and I wrote out very long and detailed instructions (for someone with 0 HTML experience [also didn't charge for the 45 mins or so it took me to write these instructions]) on how to do it and not mess up the site.

After she and her boss read the instructions, I got a freaked out call from her boss asking why I made it so complex to make changes (honestly, all it took was a text editor and an FTP client. Just change the text in a p tag and upload. But if you don't know any of these things, including what an editor is, it probably sounds complex). I then calmly explained to him (and showed him the email) where he declined that I make the tool to make it easy to update the news. He then accused me of trying to milk them for money with this tool, even though I explained to him it wouldn't even take two hours to build.

Haven't heard from them since. Needless to say, the news section is four months old at the time of this writing.

share|improve this answer

"I can't buy anything off your site!"

"Oh, I'm sorry to hear that. Which browser are you using?"

"I think Internet Explainer. The Microsoft one."

"I see. Do you happen to know which version?"

"What do you mean?"

"Err... how old is your computer? I mean, when did you purchase it?"

"I think about 1999 or 2000. I actually got it free from a co-worker. Still runs great, too!"

Turns out the guy wasn't using IE6, but IE5. This was in 2009.


share|improve this answer
ouch, ha. I now think blacklisting browsers is a good idea. (I use css to display upgrade your browser if its <=IE6. I havent blacklisted netscape and friends as i should) –  acidzombie24 Oct 4 '10 at 23:48

I need you to just make a minor change...only take a second...

Any experience involving wanting me to do excessive work for free because it's seen as a "minor change". Their asking can be either awkward, uncomfortable, or sometimes just downright insulting.

By insulting I mean when it's a blatant attempt to take advantage of me or a company I work for. We're all professionals here. Pay for quality services.

share|improve this answer
That's interesting Ryan. What do you reply when you are asked to do these "minor changes" ? –  user2567 Oct 4 '10 at 20:54
It depends on if a lot of things. If it promotes goodwill, and potential future projects, or if it's one of the first handful of times this is asked, then I do it. It's only when it's become a habit and it seems to start becoming the norm. I usually try to just increase the time estimate for it to be done, which is generally putting them in the position to choose between the minor change or shipping the product. It really depends on the circumstances a lot. (This phrase can be backed by a wide range of motivations...I just don't like the bad motivations, not the phrase itself, haha). –  Ryan Hayes Oct 4 '10 at 23:58

Many years ago I worked for a company that sold an upgraded system to a customer. Part of that upgrade was an agreement to upgrade the version of Informix that the customer had, including making any tweaks to the client's programs written against the prior version of Informix. The salesman didn't have a clue as to how much this could entail, and as such guessed at a flat-rate price to charge the customer.

I was not that experienced of a programmer at the time, but I wasn't too worried about updating the code (naively) because the client was a much worse programmer. Most of the "programs" were really nothing more than extended scripts. So I sit down to work, figuring it wasn't going to be too bad of a project, just tweak the programs to handle the differences between the versions.

The problem is that once I started working on the project, every other program I encountered just wouldn't work, and I had to go through a lot of gyrations to get them working as expected. I thought I was losing it, and my crappy programming skills were getting the better of me. I expected trouble because this "flat rate" project was taking much, much longer than expected.

Finally I stopped and admitted to the client all the troubles I was having. He just shrugged and stated that most of those programs he could never get working in the first place. Not only that, he knew this going in and never bothered to tell the salesman, but he did hold the company to what was agreed, all programs upgraded and working.

share|improve this answer

The stupidest was a phone conversation back about 1993:

Me: So-and-so, Inc.

Lady: I'd like to buy a modem.

Me: Ma'am, I'm sorry, our company doesn't sell modems.

Lady: You're in the phone book under Computer Services.

Me: That's because we write computer software.

Lady: Well I don't understand why you're in Computer Services if you don't sell modems.

Me: The phone company insisted we have a Yellow Pages listing and put us there.

Lady: Well, you ought to sell modems.

The worst was a little complicated. Our company had had a very good relationship as developers for Company A, and a fast-talking entrepreneur I'll call JR was interested in selling their patented software into a new market. JR came to an agreement with company A to do some enhancements to the software, for which he'd pay my company directly. So we got the check, did the enhancements, the check cleared, the whole nine yards... and then JR decided a good way to put negotiating pressure on company A was to stop payment on his check to us. I'm not sure how this worked, since the check had cleared, but it managed to suck thousands out of our bank balance and we had to scramble to make payroll.

The guy always seemed shady, and I learned... trust my gut around things like that, and three-way agreements suck.

share|improve this answer
what's a "phone book" –  Jason Oct 4 '10 at 22:07
Someone probably knows more about this than I, but as far as I know (and in the US), the bank has to make funds from a check available, but you don't really get notification that the check cleared. You only get notification if the check doesn't clear...in which case the funds get sucked back out again, as you discovered. –  Kyralessa Oct 4 '10 at 23:17
A "phone book" is something the Mythbusters used as a prop in Episode 106. Also good if you need a big heavy paperweight. –  Bob Murphy Oct 4 '10 at 23:51
@Kyralessa: Could be, although the duration was long enough that my wife (who used to be in banking) thought it was odd. –  Bob Murphy Oct 4 '10 at 23:54

When I was a civilian working as a computer salesman at the local Naval base’s Naval Exchange (Think: On-base department store) I was asked as favor by the store commander - hook up a new PC for the secretary of the commander of the Commissary next door (where the Commissary was the equivalent of a grocery store). No problem - I get everything hooked up, and leave.

The next day I get a panicked plea for help from the secretary - the machine isn't working! I head over to take a look, and on the screen are these words: "KEYBOARD LOCKED. UNLOCK AND PRESS ANY KEY TO CONTINUE".

The keys were in the lock, on the front of the PC, which was on top of the desk with the monitor on top of it and the keyboard right in front of it. It hadn't been locked when I left it.

I turned the key, pressed enter, and told her it was fixed. In fairness, she was just afraid that she'd broken something.

Then there was the time, when I was in the Air Force, that I had to drive to the next base over to fix their PC, and found that someone had managed to plug in the VGA monitor cable upside down. Yes. Yes I know. Upside down. Totally mangled the "D" connecter to do it, too.

share|improve this answer
sounds like a good ol "id 10 t" error to me :) –  Jason Oct 5 '10 at 16:51
How in the WORLD do you plug one of those things in upside down?!?!? –  Mason Wheeler Oct 6 '10 at 21:12

My worst customer experiences are doing 3rd party B2B integrations. When a business-customer can't meet their requirements/expectations it almost always results in them slinging as much mud at you as possible.

The sad part is how often it works; I'll be pulled off a project just to cover due-diligence and ensure there isn't an issue on our end. If they uncover any crack in your defense then it's back to step-1 (more fact-checking). Usually by the time the senseless emails, conference calls, and other fallout are at an end they've bought enough time to hack together their end.

What's worst is that with a non-technical customer in the middle you have to play along--otherwise it's just their word against yours, leaving you looking uncooperative. If they find something you could change to supposedly solve their issues ("can you do a .Trim() before sending that field? That trailing space breaks out architechture!!!!"), then it quickly spirals downward--especially if the change could easily be put in their side, but putting it in yours requires a new release/QA cycle, whatever it may be.

share|improve this answer
That is so Dilbert. –  Mark C Oct 20 '10 at 20:10
Dilbert is life :( –  STW Oct 20 '10 at 20:25

A couple to pick from:

  • going to a customer site to demo an application written in VB3 and forgetting to put vbrun300.dll on the floppy.
  • boss bringing a customer to my desk for a demo, unannounced, when the build I'm running is broken. First thing the customer does is crash the program.
share|improve this answer
The infamous vbrun300.dll :) –  user2567 Oct 4 '10 at 18:45

I took over the maintenance of a desktop application without developer licensing to some of the third-party widgets. There were large parts of the application I could not recompile. Any requests for changes to these areas were denied, but I was ashamed of the reason I had to give. Most users hated the application/company so much they actually felt sorry for me.

The company didn't care and would not pay to renew the licenses. I should have begun immediately to replace these controls with standard ones. All of this happened because of office politics. The company did several buy-outs. They purchased the application with no contractual obligations on the source code. There was a project to hire a consulting firm to replace the application which was easier to justify as my app was made to look worse.

One of the best experiences was a place where I was a part-time programmer and worked in office operations and billing for the other part. My goal was to be a full-time developer, but I took this as an opportunity to learn more about the industry. I would start taking over some tasks for other people (we were a little short-staffed). It wouldn't take long before I could automate what they had to do. Even if the job was given back to them, the additional amount of time was insignificant. Sometimes it was better since they didn't have to coordinate any efforts with me when they did it themselves. I wrote the documentation and training guides. I would just hand them the instructions and watch over their shoulder to see if they could learn to do it with no training. I corrected the instructions. This helped to create an office manual that was relevant and helped get new employees up-to-speed much faster. If felt a very strong connection between the code I wrote and the performance of the company. We tripled the amount of money we managed and maybe hired one or two additional staff.

share|improve this answer

"It doesn't work"

"Did you follow the install directions?"

"Insta... Yes."

Nope, no you didn't. Not only didn't you follow them but I got written up. Shouldn't have to spend 2 weeks because you decided to download your own versions of a library that were 4 years old instead of the redistributable that was sent with the application install package. (Then again, I should have been allowed to write an install script.)

share|improve this answer
I've often wondered what exactly "written up" means. You received a written warning from your employer because the client complained, or? –  Frank Shearar Oct 4 '10 at 20:41
Written warning or written to permanent record. In my case it's just written warning and a lot of "wtf did you do this time?" Then again, 1. unzip 2. double click the redistributable to run it 3. run the application was too hard. –  wheaties Oct 4 '10 at 20:45
In my experience, "written up" means you were called into the office, given a stern talking to, and told to sign a document that says you were given a stern talking to and what it was about. –  Kyralessa Oct 4 '10 at 23:19
They're used for legal reasons: If you've had 3 formal reprimands, you can be fired and a replacement can be found for your position. Otherwise, if you're fired for any reason other than breaking the law/your employment agreement then you can file for unlawful dismissal. (Layoffs don't require any write-ups, but legally, someone can't be hired to fill your position for a certain amount of time) –  Steve Evers Oct 6 '10 at 19:59
Most US states are at-will employment states, meaning there's no such thing as unlawful dismissal unless you had a contract. Where the reprimands would make a difference is whether you get unemployment benefits or not. If the company can make a case that you were breaking the law or were utterly incompetent, they might be able to deny your unemployment. –  Kyralessa Oct 9 '10 at 19:04

I once worked in a small company where I was the only employee whose last name started with Z.

The company had a phone number with an IVR system where you could spell an employee's name by pressing phone keys. Once the match was unambiguous, the phone rang at the employee's desk.

We had millions users worldwide at the peak and a well-publicized 1-800 number for tech support. But a tiny fraction of users called the corporate number instead and pressed "0" at some point to speak with an "operator." The IVR was set up such that 0 spelled Z.

So I got to talk to human users from time to time. Sometimes it would be a great conversation starting with "Let me walk you through this", but sometimes people clearly had no intention to solve any problems and just wanted shout some insults. Those were probably the worst experiences.

share|improve this answer

I worked at a pizzeria when I was a teenager, and there was a guy who came in once a week and ordered two small half-plain half-pepperoni pizzas, and he wanted the pepperoni half on the right side.

Yes, I know it is not programming-related, but I figured that the crowd here would appreciate the insanity of this order. Oh, and what I have learned from it was that there are people out there who will try to intentionally drive you nuts, and the only thing you can do about it is get a job where they pay you enough for it.

share|improve this answer
you should have charged a $1 pizza rotation fee :) –  Jason Oct 4 '10 at 23:16
Reminds me of this blog post: thesneeze.com/2007/the-great-pizza-orientation-test.php –  rmx Oct 5 '10 at 13:42
I'm not sure about the guy that you dealt with, but I can see this happening. My wife works with the mentally disabled, and this is something I'd expect that they would want. It seems more likely considering the frequency of the orders (I suspect the same day every week as well). –  Steve Evers Oct 20 '10 at 19:35

If you don't mind an internal user problem, a long time ago I worked at a company that sold a product that needed customization. I was in charge of doing what was necessary back at the office, and somebody I will call Joan (because it isn't anything like her name) was the customer engineer at the customer site.

Joan reported a bug in a certain utility. I'd written the utility, so I knew what was wrong. As it happened, the configuration for this utility was really messy. (Originally, I'd protested writing the utility that way, but was overruled. I figured it wouldn't really matter that much, I just hated doing it that way.) From the error message, I could tell what was going on, and it was a configuration problem. I emailed back, saying this, and offering to supply the configuration if she gave me a few pieces of information. I got back a reply saying that the configuration was correct, and she'd had another CE look at it. I sent an email pointing out that I could tell from the error that it wasn't, that it was tricky, and that I was perfectly willing to help. Next communication I got was from management, telling me I wasn't to communicate directly with Joan any more.

I never did find out anything more about that.

Anyway, the next bug report I got was that our main application demo ran for half an hour, and then stopped. That was it. We didn't have a standard demo, since the customers were all different, so I couldn't try running it, even if I'd had all the configuration and data available.

I told my liaison that I'd be perfectly happy to dig in if I had more information, and asked him to get it from Joan.

I never got anything more out of that, although I heard the complaint several more times.

share|improve this answer