Benjamin Hysell – Software, Projects, and People Rotating Header Image

June, 2009:

The Zappos Way

I’ve done it.

I’ve bought shoes online.

And I liked it.

First, let me be clear, I own roughly five pairs of shoes; I am not a shoe aficionado.  I have my sneakers, running shoes, brown shoes, black shoes, and my motorcycle boots…hardly a collection to make Imelda Marcos jealous.

However what I was missing was a pair of Nike Aqua Socks, (http://www.zappos.com/product/7525588/color/191561).  I haven’t been able to find them since I was ten, and I used to love them.  Sure, they never last a whole summer as the tops wear through, the soles have zero cushion, and provide almost zero traction, but I don’t care!  My memories of using them in my youth compelled me to find a new pair that would fit my now grown adult foot.

For the past few years I have searched high and low for the Aqua Socks to no avail.  That was until I was driven to try Zappos.com after reading an article about them in Inc.

http://www.inc.com/magazine/20090501/the-zappos-way-of-managing_Printer_Friendly.html

Sure enough, they had my beloved Aqua Socks and they were delivered promptly with a promise that if they didn’t fit I could return them with free shipping both ways.  I was delighted; I finally owned my long lost Aqua Socks in a size I could now use!  They arrived just in time for my recent trip to the Poconos for some whitewater rafting.

My foot needs aside, Zappos seems to be generating a lot of interesting press and buzz on the interwebs as of late.  What sets them apart from all of the other Web 2.0 companies out there?  As I, and others, have said in the past, all they do is sell shoes.

Primarily the focus of the Inc. article and other postings is the amazing customer service, the freedom phone reps have to meet your needs, and the free return shipping if something doesn’t fit.  In my mind all of the customer service policies and practices that everyone is praising Zappos for are all necessary evils of selling shoes online.  Zappos is attempting to fulfill a shoe need, a need filled by delaying actually acquiring of said shoes by a day or two since they need to be shipped.  With this delayed gratification Zappos needs to step it up in terms of customer service over traditional brick and mortar stores to survive.

Let’s face it, if Dick’s Sporting Goods carried Aqua Socks I wouldn’t have thought twice about hopping in the car and driving the ten minutes to the mall to have them that day.  I like the mailman and all, but I’d rather not be waiting by the door for him to arrive with a box full of shoes.  Call me impatient, but when prices are about the same online vs picking up in the store I choose the store nine times out of ten.

What caught my eye in the Inc. article wasn’t, in my mind, the baseline customer service I believe a company like Zappos needs to thrive, but rather how they go about interviewing new hires,

Prospective hires must pass an hour long “culture interview” before being handed off to whatever department they are applying to. Questions include, “On a scale of 1 — 10, how weird are you?” and “What was your last position called? Was that an appropriate title?” (The first question makes sure that employees are sufficiently weird; the second, in which the interviewer is trying to goad the applicant into grumbling about his or her title, tests for humility.)

Spending an hour or so interviewing for ‘culture fit’ is a very interesting angle to explore in job interviewing.

I’ve gone on at length about my interview process, (http://benjaminhysell.com/archive/2009/02/the-technical-interview/), however unlike Zappos, I’ve never placed so much emphasis directly on culture fit.  I tend to focus on passion…does the interviewee have passion for our craft and life in general?  Normally, while exploring someone’s passion we get a pretty good sense of who they are, what they are going to be like on a day-to-day basis, and we as an interview team can see if the prospective new hire is going to click with the team.

Lately I’ve been wondering if I should retool my interview to further explore ‘culture fit’ not only from a passion perspective, but by some other measure needed in our industry.  What that measure is I’m not so sure.

I can think back through college and high school where group work was key to many projects’ success.  Have you ever found yourself in a group of people where personalities just didn’t mesh?  I have worked in a few bad groups from time to time, and compared to groups where I worked with friends the experience of working in a group where we didn’t have a great ‘cultural fit’ was not as much fun.

I took a class at SUNY Binghamton in artificial intelligence my senior year of high school with a group of college seniors.  It was spring semester for both the college seniors and me, so we all had senioritis.  However, while they were heading off to real world jobs at the end of the semester, I was heading off to Cornell to start my college career in the fall.  Let’s just say being 18 years old and hanging out doing a group project with college seniors was an amazing way to spend the spring semester.  I had a lot of fun, but that was only after we cleansed the group of “Rick”.

The class was split into groups of four, and our group happened to be a group of five.  We were to implement a 100 node feed forward neural network as our final project, a task we were well prepared to code and implement.  What we were not prepared for was Rick.

Rick terrorized the group.  I’m not sure which was worse, Rick taking tasks and never completing them, or failing to show up to 95% of our group meetings.  The four of us who were not named Rick had to spend a lot of calories doing Rick’s work, trying to track Rick down, and in general dealing with ‘The Rick Issue.’

It’s physically and emotionally draining always picking up dropped tasks and trying to chase someone down who doesn’t want to be found.  Not like Rick couldn’t do the work, he was more than capable, however we didn’t share his work ethic nor he ours.

Now picture yourself today in your job and take a Rick, if you don’t have one already, and inject him into your normal daily working life.  My Rick was gone two weeks after the project started, as he was removed by the professor from our group, however a real world Rick maybe impossible to remove from your daily life.  Are you looking forward to Monday knowing Rick is going to be there now?  I wouldn’t be.

Life with a Rick is miserable, and from the article it appears Zappos makes a huge effort to ensure Rick never gets through the interview process:

If there is a disagreement between HR and the manager doing the hiring, Hsieh personally interviews the candidate and makes the final call.  His strategy is to get the applicant into a social situation to see if they can connect emotionally.  Alcohol often figures in the hiring process.  “I had three vodka shots with Tony during my interview,” says Rebecca Ratner, Zappos’s head of human resources.  “And I’m not atypical.”  I asked Hsieh if this wasn’t exposing the company to unnecessary risks.  “It’s a risk,” he says.  “But if we’re building a culture where everyone is friends with everyone else, it’s worth the risk.”

For my college project we never had a chance to conduct an interview.  Could we have figured out Rick would be a problem with a bottle of Jack and a couple of shot glasses?  Should a social situation with a few drinks and attempting to identify an ‘emotional connection’ be the tie breaker in an interview?  Can you scale this process as your company grows?  Could this be implemented at Apple or IBM?  How different would corporate America be if most job interviews started and ended in a pub?

For now I’m going to sit back and watch the Zappos story unfold.  We already know for most of the working world the non-alcoholic approach to hiring works pretty darn good.  We’ll see how Zappos fares in the long run, and what side effects hiring for culture will have as the company ages and their core culture changes.

I’m hoping for the best, I wouldn’t mind sitting down and relaxing with a nice tasty beverage the next time I conduct job interviews…a taste beverage and maybe a plate full of nachos.

Understanding the Wheel

I hate reinventing the wheel.

The phrase ‘reinventing the wheel’ is tossed around in software development, as it likely is in other professions, to signify you are probably doing something someone else has already done.  Moreover, others who have solved your problem have hopefully had a chance to iterate on the solution several times to find an optimal answer.

With all this time and effort invested by others why bother trying to duplicate all that effort?  After all, others have already solved your issue, no sense trying to out do them, is there?

Like all issues, reinventing the wheel in software development is not so black and white.

Jeff Atwood wrote about not reinventing the wheel unless you intend to learn more about it: http://www.codinghorror.com/blog/archives/001145.html

Joel Spolsky wrote a few years back that reinventing the wheel is a very good thing if that wheel happens to run your business: http://www.joelonsoftware.com/articles/fog0000000007.html

It is these two key points that will hopefully dictate when you as a software developer decide to break out the case of Mountain Dew and start coding your problem from scratch or to pull a code snippet off of http://stackoverflow.com/ and plug it into your production code.

I am a huge proponent of not reinventing the wheel.  I used to expound to my developers constantly that I am a very lazy programmer.  Why should I spend the time and effort to code something up from scratch if someone has already done all of the legwork?

What isn’t normally fully communicated to someone when I say, “be lazy and don’t reinvent the wheel,” is you have to understand the wheel to know that you are reinventing it.  This is the point Jeff makes at the very bottom of his article, http://www.codinghorror.com/blog/archives/001145.html:

If anything, “Don’t Reinvent The Wheel” should be used as a call to arms for deeply educating yourself about all the existing solutions — not as a bludgeoning tool to undermine those who legitimately want to build something better or improve on what’s already out there.  In my experience, sadly, it’s much more the latter than the former.

I get to be lazy, reuse my old code, and not reinvent the wheel because I understand the wheel I am about to not reinvent.

I have done a bit of legwork myself to understand the piece of code I am about to plug into my system before choosing to plug it in.  I have done some research on the forms to see how others are tackling the same problems I have, and I have done some testing to ensure what I am about to use is going to work.  With all of this legwork under my belt hopefully the next time I encounter a similar problem I won’t have to work so hard for a solution, in effect be a little lazy and modify or tweak an already existing solution to use in a new problem.

It is with this experience that one can become truly effective at producing robust software, learn from the past, and not treat every problem by starting with a blank sheet of paper.

However, one also needs to be smart enough to know when to break out a blank project in your IDE and start from scratch.  As Joel points out in his article, if the piece of code you are about to borrow is a key piece of your product, and this code is going to differentiate your product from your competition you might want to get to know the ins and outs of that code yourself.

What do you do in your software or business that sets you apart from everyone else?  Whatever that is, don’t outsource it or borrow it from others!  If you do you are at the mercy of others for what you are claiming is your advantage.

Joel gives several examples in his article of items not to outsource those items are the cornerstone of your business.  One more recent example Joel did not reference was Zappos.

Zappos sells shoes online.  That is their whole business, online shoes.  Not special fancy shoes you couldn’t buy a hundred different places, just normal run of the mill shoes.

Yet, they are one of the more successful companies operating today on the Internet.

http://www.inc.com/magazine/20090501/the-zappos-way-of-managing_Printer_Friendly.html

Zappos prides themselves on their customer service and quick and speedy order fulfillment.  Guess what are the two things they don’t outsource?  The one part they can’t outsource, the actual delivery of the shoes to your door, they compensate by paying out of their pocket for overnight delivery on most orders to give the end user the allusion of faster than normal service and fulfillment.  Zappos has taken to heart the idea of what sets them apart from everyone else is customer service, and they do everything in their power to ‘reinvent the wheel’ when it comes to that.  They are reinventing the wheel to make a better wheel, a wheel more and more people are starting to use.

I leave you with these thoughts:

  • Don’t reinvent the wheel.
  • Understand the wheel well enough before making a judgment call to reinvent it or not.
  • If the wheel is the corner stone of your software/application/business, you had better be reinventing the heck out of that wheel.