[A picture of private offices at Fog Creek Software] Alert! This ancient trifle retrieved from the Joel on Software archive is well-past its expiration date. Proceed with care.

Joel on Software

Lazy Programmer, Didn't Handle Exception

by Joel Spolsky
Friday, May 05, 2006

try()
{
...
}
catch(Exception *)
{
   print("call customer service");
}
// i guess i'm done!

I called the numbers listed, and went through several layers of menus and waiting. Of course, the person who answered at Cingular had no idea what to do. He found someone walking around his call center who told him to call some other number. He called that number, went through voice menu hell, and finally got told to call some other number. Now he's calling that, and of course, it's just ringing the guy next to him, who has no idea what to do, either. Of course they don't. It's a friggin' unhandled exception.

Eventually they got me to another customer service representative who had been trained just to ask me what I was trying to do (add another couple of lines to my account) and do it. That's not really a solution.

One of the hallmarks of a broken system is when there's just no possible way that the programmer who is writing code that talks to customers can ever get feedback from those customers about bugs, because the call center is outsourced to a different company than the software development project is outsourced to. Everyone is trying their hardest to do their job but management has set it up so that it's impossible.

Now, on to wireless companies in the USA. In the last ten years I can't think of one time when a wireless company has been able to handle the basic things I've asked for (new service, cancel service, port a phone number) without 45 minutes of unbelievably incompetent service. Over the years I've used Sprint, the old AT&T, Cingular, and BellAtlantic, and they're all pretty much equally messed up. All of them suffer from hard working shlubs who are stuck in a situation created by incompetent managers, who have built esoteric mountains of complicated and brittle systems with a million moving parts, 3/4's of them outsourced, where it's simply impossible to get anything done.

What does your code do to contact you when things go badly wrong? We use BugzScout to report unhandled problems directly into our own FogBugz database. But even if you call our customer service line you get a human who is sitting right next to the programmer.


Have you been wondering about Distributed Version Control? It has been a huge productivity boon for us, so I wrote Hg Init, a Mercurial tutorial—check it out!

Want to know more?

You’re reading Joel on Software, stuffed with years and years of completely raving mad articles about software development, managing software teams, designing user interfaces, running successful software companies, and rubber duckies.



About the author.

I’m Joel Spolsky, co-founder of Trello and Fog Creek Software, and CEO of Stack Exchange. More about me.

© 2000-2014 Joel Spolsky