December 20, 2009 Spout

How To Handle Angry Callers in 7 Not-So-Easy Steps

When I was first in technical phone support for the software I was building, I found out that I wasn’t exactly a… um… “natural” at putting customers at ease. I used the following information from an AT&T magazine (I was working for a AT&T VAR at the time) in the fall of 1992 to start my education:

  1. Don’t react. Stay calm. When confronted with an irate caller, everyone has the urge to return fire. But don’t fight back. And don’t take it personally, or you’ll become an emotional basket case. Keep relaxed by breathing deeply. And remind yourself that this discussion will not change the destiny of mankind.
  2. Let them vent. Remember, you simply cannot get customers to deal with the logic of a situation until you’ve dealt with their emotions. Trying to attack the problem before people have fully vented their anger or disappointment just won’t work.
  3. Defusing the anger. When a tirade is winding down, try asking - sincerely - “Is there anything else?” By this point, they’re usually exhausted and willing to talk. If you hear profanity, try saying: “I know the words you’re using right now aren’t directed at me personally.” If the caller replies, “Oh yes they are!” you’re no worse off than you were. But generally they’ll apologize, realizing it’s not your fault. At which point, a real dialogue can begin.
  4. What do they want? Once they’ve calmed down, that’s the time to find out what they want: Money back? A defective part replaced? Find out quickly to determine whether you can solve the problem on the spot.
  5. What can they have. Once you’ve figured out what they want, what can you do? This will be set by bounds of your company’s policies - such as warranties or guarantees - as well as any flexibility that management may give you (which should be clearly spelled out).
  6. Customer solutions. Sometimes, the best solution you can deliver is one the customer suggests. And, surprisingly, it can end up being less than what you yourself were willing to offer. Recently, at a major department store, a customer wanted a discounting an imperfect blouse. The cashier was willing to take 35% off the marked price, but first asked the woman what discount she wanted. The answer: 20% off. Of course, some customers will make outrageous demands. In that case, ask them what they’d consider to be a “fair solution.” Instead of confronting the customer, this reply opens up the discussion to a more equitable resolution.
  7. Follow up. Don’t make an angry customer even angrier by not doing what you said you’d do. When a promise is made, keep following up internally to be certain that what was promised has been implemented. Even if that means making a minor pest of yourself!

Fred Gleek

December 15, 2009 Tools

LINQPad updated to support Data Services!

Joe Albahari, the author of LINQPad, has added support for WCF Data Services to the 1.37.1 version beta of LINQPad. This means that you can point LINQPad at any Open Data (OData) endpoint and do queries interactively just like any other LINQ data source. He even supports HTTP security, in case the endpoint in question requires it. Further, if you have your own custom LINQ to Whatever and you’d like to plug a connection to it into LINQPad, Joe has already added the ability to create a custom data context provider. It is, as they say, a thing of beauty. Enjoy!

December 1, 2009 Oslo

Data and Modeling Talks from PDC 2009

If you weren’t lucky enough to be able to attend this year’s PDC, not only did you not get a killer laptop, but you didn’t get to see the Data & Modeling talks live and in person. Fortunately, Doug has a nice list of them so you can watch them from the comfort of your own home. Enjoy!

November 29, 2009 Oslo

“Quadrant”: Three Features in Two Minutes

Doug Purdy shows off three features of “Quadrant” from the Nov ’09 SQL Server Modeling CTP bits in two minutes:

  • Access to SQL Azure databases
  • Creating custom views (including master detail) by mashing views together
  • See the “markup” of any view in Quadrant and steal it/change it (just like view source in a Web browser)

Enjoy!

November 22, 2009 Spout

Do you know someone that needs dinner this Thanksgiving?

The boys and I were driving past a church with a holiday bizarre, so we stopped by. It was a mix of silent auction, bake sale and a $1 raffle for a turkey dinner with all the fixings. I made several comments about how they could skip the formality of the drawing and to make sure they could read my phone number on the back of my raffle ticket, because I was obviously going to win. They laughed.

When they called this morning to let me know that I had won, they told me that they remembered me and I laughed.

Anyway, the Sells Brothers and I have already picked up all we need for our Thanksgiving dinner, so if you know of a family in the Portland metro area without the means for a traditional dinner this holiday season, please let me know. I doubt it’ll be so big that I’ll need a sled to cart it through the streets, but I’m happy to deliver it when it needs to go. You can leave a comment on this post or drop me a line.

Happy holidays, everyone.

November 13, 2009 Oslo

“M” For Language Definition in November 2009 CTP

I couldn’t wait for the PDC, so I posted a screen shot of my favorite new three features of “M” for defining domain-specific languages (DSLs) in the November 2009 CTP of “Oslo”:

  • Expressions on the right-hand side in language actions to calculate results. “M” supports a rich expression syntax for a variety of data types.

  • Data conversion functions for output, one for each of the supported “M” data types.

  • DSL debugging mode to let you step through your input data and debug your language.

I can’t wait for you to see it!

“M” For Language Definition in November 2009 CTP November 12, 2009 Oslo

“M” For Language Definition in November 2009 CTP

In the November 2009 CTP of “Oslo”, we’ve got some new DSL features in “M”, three of which I couldn’t wait for the PDC to brag about.

November 2009 CTP version of Intellipad

Notice the following in this screenshot of Intellipad:

  • The use of an expression on the right-hand side to calculate the full name from the first and last name from the parsed input: Name => f + ” ” + l (“M” supports a rich expression syntax for a variety of data types).

  • The use of ToInteger32 to provide output data conversion of the Age token as different from the default of string (there’s one of these functions for each of the supported “M” data types).

  • The orange highlighted text in the left-hand pane shows a breakpoint and notice that Intellipad knows that “yours old.” is a single thing, so highlights the entire phrase. Also notice the “notification” pane on the far right to show what the data is that’s being parsed right now. This indicates that Intellipad is now in DSL debugging mode and lets you step through your input data and debug your language.

You’ll also notice richer error information in the Error List at the bottom of the Intellipad window, but that I could’ve waited to tell you about. : )

All of these “M” features and more can be yours for the low low price of absolutely nothing in the latest CTP of “Oslo”, which you can download on November 17th, the first day of the PDC.

November 10, 2009 Oslo

From “Oslo” to SQL Server Modeling

Extra! Extra! Read all about it!

Doug Purdy, my boss and one of the chiefs on the “Oslo” project has just announced the move from codename “Oslo” to SQL Server Modeling, which is the name we’ll be using for starting now for the group of “M”, “Quadrant” and Repository that you’ve come to know and love.

Tune in on November 17th, the first day of the PDC, for the new unified Data Developer Center, which will include all manner of data technologies, including XML, DataReader, DataSet, LINQ to SQL, Data Services (aka “Astoria”) and Entity Framework. One stop shopping!


← Newer Entries Older Entries →