What does dining on a cruise ship have to do with the quality of Collaboration Solutions? Plenty, if you're willing to translate, as quality transcends both the restaurant user experience and the software user experience.
My wife and I recently decided an offer for a Spring Break cruise was too good to decline. We were ready for a break, and the price was right. So we boarded in Miami and had a wonderful break cruising the Caribbean. One night we decided to dine in one of the Italian restaurants onboard, the Venetian on the 6th deck aft. As a quality engineer, I always have my antennas out for quality experiences I can learn from, whether good or bad. Here is what I gleaned from Dinner at the Venetian:
There is a dress code, so we show up looking far more formal than we did half an hour ago up on the pool deck. The entrance itself is a stair case leading down from the 7th floor into the restaurant. The steps are white marble with red carpet runners. The decor looks good: Carefully decorated tray ceilings in light blue and aquamarine with golden edges separating them from the white flat ceiling. White ionic columns with flutes painted in gold. The windows have an artistic custom arrangement of glazing bars. A pianist is at work pleasing the auditory senses. The room is non-smoking and appears clean and inviting. It all looks promising.
Software corollary: Expectations are set in many different ways before the user even lays hands on the software. Although this is a restaurant, we haven't even looked at the menu card yet, but I am already making (preliminary) judgments about whether this was a good choice based on looks and sounds. An important lesson here is that the experience I ultimately have is not just about the software (or food). The total experience involves everything from marketing messages (decor) to the actual software (the food), and the support & services (music, waiters, etc). Quality expectations are higher, when the IBM logo is applied
As we are seated, the pianist hammers out a cacophony of tunes better suited for a British pub or a German bierstube. With my eyes closed, the music paints pictures of steins colliding, foam overflowing, and long benches of people swaying to the music and singing the lyrics they know so well. But as I open my eyes again, I'm back with the Italian decor. The disharmony is jarring to the observer absorbing the details. I glance at the menu, which consists of a static menu plus a regional specialty, which today happens to be Mexican burritos. Excuse me? I thought I came to an Italian restaurant. The intellectual dishonesty, or at least the complete absence of artistic direction, is by now bothering me. What is being billed as Italian, is anything but.
Software corollary: The user experience needs to be consistent across all components of the solution. We drive a great program known internally as OneUI, the purpose of which is to align design elements across products. The same action, say uploading a file to a server, should consist of the same steps, and look the same, whether you're working in a Lotus, Tivoli or WebSphere product. OneUI is a key element in how we achieve that.
The menu cards are gigantic in size, and the text takes up far from all the 'real estate' on the page. After making my decision, I cannot lay the the card back down on the table, where it simply won't fit between the place settings, nor in the empty spot prepared for my plate. The menu card seems to be getting in the way, rather than facilitating the dinner.
Software corollary: Don't make aspects of the solution so large, they won't fit. Memory footprint, CPU utilization, and storage requirements need to be commensurate with expectations, especially when the software runs on a platform servicing multiple applications. We want our software performance to be CPU-limited, rather than memory-limited.
Having decided on the food, I ask for the wine card. Should I really have to ask? Oh, well. Lets move on. Chianti is my favorite wine, made primarily on the Sangiovese grape. It would seem appropriate for an Italian restaurant, but I ended up selecting a non-Italian entree anyway, and my travel companions might not appreciate the rich, high acidity wine. So I pick out a bottle of Argentine wine made on the Malbec grape, which I have recently become a fan of. The waiter leaves to submit our orders. Upon his return, he announces that they are out of the wine I ordered, but he has brought along another Malbec at a lower price. Hmm, so why advertise a wine you don't have? And when you can't fill an order as agreed, offer a better wine at the same price.
Software corollary: Keep the documentation accurate and up to date. It is frustrating to spend time trying to follow instructions or information, only to find out they don't apply any more.
I let the waiter pour a sample, and I approved it. He then went on to fill the glasses of my three travel companions, but he left me with just the sample. To his credit, he realized quickly and corrected the mistake himself. For some reason, he kept the bottle at a setup table in the distance. He naturally intended to fill our glasses intermittently, but it can be hard to keep up with timing, when you have multiple tables to serve. And sure, we ran out at one point. Had the bottle been placed on our table, it would have been easy to fill our glasses ourselves. Perhaps not as elegant, but easy.
Software corollary: If you're going to take over something that is easy for the user or administrator to do, you must do it exceedingly well, as they will otherwise see you as an unnecessary barrier to efficient operation. I'm thinking of our LotusLive Notes hybrid offering here. The hybrid solution allows you to extend an existing on-premises environment with additional Domino servers in the cloud, managed by IBM. This creates a mixed environment, where the customer already has Domino skills, but doesn't have administrative rights on servers located in the cloud. Nothing wrong with that, but needless to say, our administration has to be world class. After ~20 years with Notes/Domino, we think we know how :-)
Lest you think I complain about everything, let me point out that the Chef did a marvelous job. The music and the menu had both made clear to me this would not be an authentic Italian experience anyway, so I settled on a Chicken Tikki Masala rich with Indian peppers. The meat was tasty and juicy, cooked to perfection, and the pepper sauce was perfect, hitting primarily the front of the palate. The vegetables were tender, not mushy, and the presentation was good. All great work from the chef. Alas, they placed and served this well cooked meal on cold plates, causing it to relatively quickly loose temperature. Why diminish such a great main course by cutting corners?
Software corollary: No matter how good your code is, if you run it on a less than satisfactory platform, the overall performance will not be satisfactory.
When traveling with young ones, a trip to the bath room is inevitably required. No exception this time. As we exit the rest room, a sign encourages us to use a paper towel when turning the door knob. The purpose is noble; prevent spreading of germs or diseases between passengers. But the encouraged behavior is not thought through. We must pass through two doors about 8 feet apart, the first one from the Men's room to a corridor also used by the Women, and the second door from the corridor into the restaurant. If I open the first door and dispose of the paper towel in the bin by the door, I will be using my bare hands on the second door knob, defeating the purpose of the paper towel. If I bring a paper towel with me to the second door and use it there, there is no waste bin in sight as I enter the restaurant. I don't really want to bring rest room paper towels to my table.
Software corollary: Think through user stories and act them out. Be weary of programmatic initiatives that implement the same solution everywhere without adapting to specific circumstances, such as two doors in series.
Back at the table, I can't help notice the flickering candle, which is an electronic candle. A special flickering bulb inside a tube of frosted glass gives the appearance of real candle light. Fire is the greatest danger at sea, so I can certainly understand the elimination of open flames at every table. I don't mind the 'fake' candle, until the flickering goes crazy. Where most of the candles vary the light intensity say +/- 20% to give the flickering appearance, our candle started varying the light intensity +/- 100% making it look more like some kind of alarm clock alerting us to it's message, while of course alerting fellow travelers at nearby tables as well. If you're going to use faux candles, at least test that they appear realistic.
Software corollary: We might think of all the instances of our software as the same, but customer experience is always unique to their own instance and can be affected by the specifics of the local environment.
We ordered dessert. When the waiter brought it, he had more desserts than we ordered (maybe some were for another table?), and he had to ask us who had ordered what. A very small inconvenience, but it doesn't build trust when your waiter can't remember what you ordered.
Software corollary: We need to be smart enough to prevent asking our clients the same question twice. When we work in teams, whether as developers, technical sales specialists, support engineers, or in other client facing roles, our internal information sharing mechanisms must be sufficiently effective that information captured once is available to all the players servicing the client. We do this well in some areas, but there are places we can improve.
Overall, I enjoyed that the portion sizes were such that you could have three courses without feeling like a bloated goose afterward. Nice job there.
Software corollary: Don't push every product we have, design a solution that matches needs.
So, am I just a cranky customer expecting top service for a cheap dollar? Not really. I do think customer expectations were met here. This was not horrible considering the favorable price for the cruise, but it wasn't impressive either. It didn't make me favor this cruise line ahead of others for next time we go. It didn't build loyalty. Notice that none of the things I pointed out here are particularly costly to fix. That's the opportunity we have at every touch point. To impress and delight our customers, to build loyalty. You can translate the restaurant experience into our world of software development easily. The decor, the dress code, the menu, those are all Marketing. The kitchen staff, they are the developers providing the product. The waiters, they are the Services & Support teams. And the Maitre D' is of course the Quality & Customer Satisfaction Engineer, which is my role.
Later in the cruise, we went back for a second visit to the same restaurant. The pianist had more suitable music for dinner in terms of tempo and mood, but he was still on quite a world tour. We sat down to an old Jewish song, Hevenu shalom aleichem (Trsl: We brought peace onto you). He transitioned smoothly into Don't Cry for Me Argentina (Lloyd Webber, British) and then onto Autumn Leaves, which is a French song, although for me personally it evokes memories of New York City. On this World Tour, his next stop was Speak Softly Love, known as the Love Theme from the Godfather. Aha, I thought, finally something remotely related to the Italian theme here. And then it hits me how insensitive my insistence on Italian music in an Italian restaurant really is. This happened to be Holy Thursday in my calendar, but that meant it was the beginning of Passover for our Jewish friends. In that light, Hevenu shalom aleichem was indeed an appropriate tune for an eclectic audience on this day.
So the final lesson this quality engineer draws from the Venetian is this: It's not all about me. It's about all of us. We must learn to see past the tip of our own noses and understand the perspectives of our customers & partners. And that's what this blog is all about. Feel free to share your perspective in comments.
Who knew you could learn so much about software from an Italian restaurant at sea :-)