Your wait time may be excessive. If consumer sites operated like government sites.
When calling the DMV today for questions about transferring the title of a vehicle, I was greeted with the following message once I navigated through the automated phone tree:
"May I have your attention. We are experiencing a higher than normal volume of calls. Your wait time may be excessive."
Excessive? Did they really say that? On the heels of a similar post by Yabia, I couldn't help but post my own reminder that viewing your business through the eyes of your customer or a consumer is critical to providing satisfying service.
"Excessive" implies an amount or degree too great to be reasonable or acceptable
My beef with the above recorded message is the use of the word "excessive." Excessive is so often used in conjunction with something overly negative (excessive speeding, excessive drinking, etc.), why on earth would you use this language with your customers?
Now, granted, this is local government -- generally an area where I rarely find customer service going above and beyond the call of duty. This automated message is either a complete stroke of genius by realistically acknowledging that the wait time is totally unacceptable...or a sobering realization of the lack of awareness. My vote is for the latter.
Soften the blow
If your phone system doesn't support the ability to tell a caller how long they will wait, then don't mention anything about the wait time being excessive. At the very least, choose different wording if transparency is your objective.
It makes me wonder: what would life be like if we lived in a world where there was only one supplier for each product we used in our day-to-day lives? Would you also have "excessive" wait times?
A lesson in client servicing an application development project
We recently completed our first integration with an external customer website and our e-commerce website. (By "integration," I mean an API in which we pass configured product data from our site to a 3rd party shopping cart.) What ensued was an interesting learning experience for myself and our group of developers on the project.
Everybody has their own development process
Standards are hard to come by in the web application/development world and the process for managing development projects is certainly no different.
Case in point: We created a technical specification for an API and worked with developers on our own team spanning 3 different time zones. Add on top of this that our technical specification was an "ideal world" document which didn't account for specific requirements of the external website we were to interface with. This meant further coordinating our simultaneous development of our API with the integration of the API (as we were building it). This essentially equated to "building the plane as we flew it."
Agile development is great...but falls flat on its face when involving people outside the core team
In an agile software development world, code is written, tested, and released in several mini-stages. This methodology allows for us to be very open, flexible, and speedy with new development on our various web properties.
However, my takeaway from this project is that I would utilize a different approach when interfacing with external developers that are not part of the core team...taking me back to my agency roots when educating our clients about "our process." What we found is that our process didn't at all align with the customer's process for development, testing/QA, and release management. In fact, it caused a lot of tension between the two groups throughout the project -- especially in the home stretch.
Where we normally operate in a lean environment with small release gaps and short testing periods, the external party we interfaced with was accustomed to a more traditional waterfall model of building the entire application up front, test all of it at once, and going through several iterations of testing & debugging of all code at the very last stage.
Lesson learned: Provide a visual map of your process and timing
Multiple lessons were learned on this project:
1.) Provide a "site map" of the intended integration. This allows business stakeholders to visually understand where the API "handshake" occurs between the sites. It also empowers the external QA team to understand the bigger picture so they can see which areas need testing.
2.) Provide a map of the major components of the development project, timing on each, and the order in which they will be developed. Seems simple, but when you don't manage the external developers, keeping tabs on the timeline proves difficult.
3.) Schedule regular daily meetings to check in on status and even if there's no updates to report, it provides a crutch for the collective team to lean on so everybody remains on the same page (in terms of timing & expectations). Morning meetings are important so the day doesn't get away from either party. This is particularly helpful in the final weeks/days of the project.
If only all service companies could be like Rackspace
It's been a particularly bad week for customer and client service from two very important vendors to us (*ahem*...Omniture & scene7). Rather than focus on the negatives, I will instead post my 100% satisfaction with the service and support of Rackspace Managed Hosting.
Web-based support that can be trusted for a speedy response
Rackspace has both phone and web-based tech support, but they are so speedy and courteous at responding to web-based support messages that I routinely go there first for a question, request, or resolution to a problem. How many companies can you say this about?
You know the drill: the cryptic support hierarchy laid out on a company site, insisting you search their knowledgebase first (which is always sub-par and rarely has the answer to your question), presenting you with a customer service contact form, and if you're lucky, a toll-free support number.
I can't tell you how many times my only point of contact is an e-mail address at a vendor either for their "technical support" or for an account manager. I always am concerned that the e-mail will go into a black hole and never be returned (e-mail is such a terrible way to manage tasks). I've been so accustomed to this, that I always end up BCCing myself so that I know to flag the e-mail for later follow-up. Otherwise, I'll forget about it and I may never hear back unless I resend the e-mail.
A customer knoweledgebase that just works
The Rackspace support model is equally as fantastic. You have an account manager and essentially a "dedicated" team of support techs of varying skill sets that you'll basically always deal with throughout the week. Each message is signed by the tech, an entire log of your conversation is available in their support ticket system, and it all just works -- it's a complete CRM solution customized for their business and the customer benefits from their collaboration. No matter who you talk to, they can access the same information anyone else in the company can access (aside from sensitive information like server passwords). What a concept!
Better yet, the account managers can access what the support people are doing with your account. Not the case at some vendors who have departments operating in silos.
Managing customer expectations
There's nothing I love more than to report a problem or submit a request, get a response within a 2-hour window with a list of "next steps" and when it will be resolved by. Sometimes a customer problem is not a simple, 30-minute fix, either. Even the problems that keep Rackspace scratching their heads over the course of the week are kept up-to-date on a daily basis each week and always have a senior technician checking in on the status each day.
With these other vendors, I am the one checking in with them. Where's the client service in that?
Anyway, thank you, Rackspace. Always a pleasure to deal with you.
The value of client service – tips for developers and your clients
I deal with many vendors throughout the course of my day-to-day activities. I am also on the flip-side of the vendor/client relationship with SuperMotors (when dealing with individuals, clubs, or our sponsors). Coming from a background in the television production world and working with very needy clients (lots and lots of hand-holding), I've come to learn that client service and dealing with people was critical to any business relationship (as a client or as a vendor). This may sound like a no-brainer, but I feel I must post this to give some advice to the independent, freelance, and small-business developers of the world who may have never worked a day of a "real job" in their lives.
Freelance, Independent, & Small Business Developers, take note
You or your developers may be the best thing since sliced bread, but if you find yourself working with another team of people with similar skillsets (i.e. developers) as you, learn to properly service your client. I am currently involved on a project where I am dealing with 6 separate vendors, all of which handle individual parts of the project, hand data from one to the next, and are really at the mercy of the talents of everybody else. Due to the volume of work and the timeline, it would be impossible for one person to handle the workload. Additionally, the nature of the project has been that of scope creep, which means where we started over a year ago is many times different than where we're at today.
Diving into someone else's code is very easy to do -- and it's just as easy to point out holes in the code that you may see at an initial glance. Unless you're being hired to do this, I would advise against making it a point to belittle or criticize the work of others during the project.
If you see a problem with someone else's work, learn the "how and why" before jumping to conclusions.
A good developer is one who can develop code on their own time, quickly, and efficiently. A great developer is one who can develop code with others and work quickly and efficiently with others. The biggest piece of wisdom I can pass onto developers who own their own company or who freelance is to be a great team player, and be sensitive to your client's (in particular, the project manager's) needs. There are good times to point out faults in someone else's code, and there are bad times as well.
Any project manager should be open to hearing of issues about someone else's work. However, keep in mind, particularly in the programming world, there are many different ways to accomplish the same thing. Since I'm a "car guy," I always like to
relate my experiences back to automobiles. Look at a Ford Mustang vs. a Dodge Charger. One engineer may say, "Wow, that Charger sure is slow compared to the Mustang. What a joke!" Another engineer may say, "That Mustang can't seat 4 people comfortably. What a waste."
The moral of the story is these two vehicles, at their highest level, perform the same function: transport people from point A to point B, and back. This scenario can also be applied to application, web, and database development. Knowing the intended use can save you from an embarrassing attack on someone else's code. Optimizing a database is next to impossible without knowing how and why it's being used. It's wise to learn the how's and why's before jumping to conclusions. In the end, if you do find a flaw, by all means, point it out -- but only do this after doing the proper investigation. Blanket statements like "that's bad design" offer nothing positive to the team, the project manager, or your image as a vendor.
You may want to build a Mercedes, but all your client needs is a Honda.
I cannot stress this point enough. It is very frustrating to specify project requirements only to have a "know-it-all developer" explain reasons X, Y, and Z for why it should be done another way. Theory is great, but it's just that, theory. The real world, budgets, time constraints, and project scope sometimes mean breaking theory. The sooner you accept this, the better you will be at servicing your clients. Learn to provide the best balance of value and insight when working on a development project with your client. They will come back to you again and again if you work with them, not against them. Your clients are very busy with other projects, too, they don't want to have to feel like working with you is time-consuming, and they certainly don't want to explain themselves. They may even be wrong! At the end of the day, you need to be creative with how you shape your message to the client so that they aren't offended.
No news is bad news.
Never assume that because you haven't heard anything that it means there's nothing for you to do. Great client service means checking in with your clients when you're inbetween projects, in the middle of projects, or just because. Be there for them, make sure you are meeting their needs. The last thing you want is to deal with fires that could have been prevented if you'd just spent an extra 15 minutes to check in with your client.
Obviously, you'll need to weigh your time between clients. The clients who are spending more money with you should get more time devoted to them -- in terms of hours worked and client service. Don't take their money for granted because they can easily find other vendors. As good as you are, these days, it's easy to find developers who have the right programming and client service talents.
Old cliche: The Customer is Always Right
There is nothing worse than arguing with a vendor. It is a pet peeve of mine when a vendor questions the way something needs to be done. Keep in mind that your clients know their business better than you do. You are there to offer a supporting tool to their business needs, not a tool that defines their business or defines how their customers shop their products. This is a very important distinction. This is sometimes a difficult concept if you work with a new client that does business in a different industry than you're normally used to. Beware that you'll need to approach projects like this with more of an open mind, particularly if you're dealing in the consumer realm. Consumer behavior varies considerably between industries/markets and just because it's one way in market XYZ, absolutely does not mean it's the same in market ABC. Leave that up to your client to give you this insight. They'll know their customer best and should be able to provide this type of insight to better arm you as you dive into your code.
Client Service is critical to your business
Create value for your clients by providing excellent client service. This is one of the intangibles that's hard to see when viewing a resume or a company profile online. Great client service will keep your clients around for years to come. This will further solidify your company's position as a vendor with your client's organization. Don't be afraid to check in on a regular basis to "babysit" your more valuable clients. This will pay off in the long run. We like to feel important
(even if we don't have a current project with you!).

