Thursday, February 17, 2011

Delight Your Customers

After giving a presentation on building premium media experiences up in Seattle earlier today, I'm sitting in SeaTac airport right now on a lengthy delay due to bad weather in San Francisco. I'm flying Virgin America, and the folks at the desk let us know that our 7:00 flight will likely be delayed until 10:20 due to weather. However, since the weather could change at any moment, the flight may take off at any time, and we should check in every 15 minutes to make sure we don't miss the flight. So, that means that not only is my flight delayed for 3 hours, but I'm stuck in the boarding area.

The agent (who I later learned is named Angie), also announced "Please check in every 15 minutes – we'll do everything we can to notify you if the departure time changes." I rolled my eyes at this statement – how many times have I heard airlines promise to do "everything they can" for me, when they actually mean they'll do absolutely nothing for me? Feeling a bit snarky, I walked up to Angie and told her that I'd like to go get some dinner at a restaurant in the airport. I asked her whether she would send me a text message if the departure time changed. She replied, "I can't text you, but I'd be happy to call your cell phone!"

I was floored. Perhaps I'm too jaded an air traveler, but it's so rare to hear a high-level promise like that from an airline and actually see people on the ground follow through on it with such personalized service. I happily went on my way to a nice relaxed dinner, and despite the nasty delay that will get me into SFO after the BART stops running, I feel like a very happy customer right now.

One of the greatest advantages that small companies in insurgent positions in the market have over their larger competitors is the ability to discard far-reaching policies and bureaucratic edicts. Instead, these smaller, more agile organizations can empower their employees on the ground to adapt to the situation at hand, and just do whatever it takes to delight each customer they encounter. These type of organizations understand that the best marketing mechanism they posses are the daily interactions they have with each of their customers. To quote Cake, these organizations "use a machete to cut through red tape".

I like to think that when we at Vertigo interact with our customers, we take a very similar attitude towards the way we work. Not being bound by the restrictive rules typical of a larger organization gives us the freedom to experiment with new approaches that make sense for each client, whether that be a new architecture, unusual support hours, or a design process that eschews the usual conventions. As an organization constantly on the leading/bleeding edge of new technologies, we're always trying to strike a good balance between breaking new ground and finding an efficient way to put our best practices into place on a larger scale. To me, the key is to preserve the ability of each project team to adapt to the circumstances of their particular client's needs, while still making use of established patterns wherever possible to save time and add polish to existing features.

Hats off to Angie and to Virgin America for continuing to serve as an example for nimble, small organizations who win by delighting their customers!

Tuesday, February 1, 2011

Put Your Face on It

My wife is a big fan of Lush soaps, and I've noticed that the cans of lush products in our shower had stickers with people's faces on them.

This is what Lush's website has to say about these stickers:
"What has held us together for over 30 years is the pleasure we take from our work. Pouring a soap, mixing a cream, creating a fragrance, or rhythmically pressing 1,000 shampoo bars by hand give our lives meaning. This makes us proud of what we produce and so we like to put our own individual 'mark' on each product before we sell it. The face sticker smiling out at you from every LUSH product tells you when it was made, the 'best before' date, and who was proud to make the product, by hand."

This is a great way to personalize a product and engage with customers. I wasn't surprised to read that this attitude extends to Lush's social media strategy, which uses tools such as Facebook and Twitter to engage on a personal level with their customers. The linked article describes how this approach is handily beating the "Post corporate messaging on Facebook" approach being used by Lush's closest competitor, The Body Shop.
This got me thinking about software, and how we organize teams of people to build it. One of the most important factors in producing high quality software is to ensure that each member of team building it is intrinsically motivated and takes personal pride in the entire product they're producing. In other words, that each member of the team is willing to put their face on a sticker and proudly slap it on their work.

When building complex software systems with large teams, potentially across several different partner companies, one of the keys to bringing together a successful project on time and on budget is the cohesion of all the team members. The biggest pitfall in these large projects is often that each team member or partner company concentrates strictly on the piece of the system they are building, and disconnected silos of functionality end up forming. The left hand doesn't know what the right is doing, and when it's time for all the pieces to come together, they don't!

The way Lush operates ensures that a specific person is responsible for (and proud of) an entire product that they're delivering. This is in contrast to other companies that may see each employee as a siloed station along an assembly line.

Similarly, successful software projects have team members who take ownership of the project as a whole, and not just their silo. People in the mindset of putting a sticker with their face on a product will keep track of dependencies between the different silos, perform testing across multiple partner companies to ensure that the bridge between each component is reliable and proven, and ensure that they're proud of the entire product their team is building, rather than just their specific functional area.

This is one reason that I believe in assigning vertical areas of ownership to each member on a team. If a single person is responsible for an entire feature, from the UI to the middle tier logic to the database, they will know exactly how it is supposed to work, which design makes sense, and will drive the feature to completion and testing. Most importantly, it guarantees that the feature works end-to-end, and drives features to become real and working as fast as possible. Of course, even in the vertical approach, designers will still work primarily on the UI, and a SQL expert may do the bulk of the DB work. The key is that each vertical feature has an owner looking after it, regardless of the owner's particular skill set.

In horizontal areas of ownership, where one person owns the DB, another owns the cloud services, and another owns the UI, a siloed attitude of "that's not in my purview" can arise. There's also no driving force to making a feature work end-to-end, as people can see their part as "complete" even when it isn't wired up and working.

As a project lead, I want to see Jim's face on a sticker slapped on to the "Login" feature, and Mary's face on a sticker slapped on the "Post to Facebook" feature. That lets me know that those features have dedicated owners who take pride in the entire user experience of each part of the application, and who focus on delivering a real, working feature, rather than a disconnected component.

What does your team do to put your faces on the products that you build by hand every day?