Monday, February 6, 2012

Never Good Enough

Being creative is fun but mighty frustrating
in the world of web development
The other night I was meeting with a potential client.  We discussed his needs and how our Sully® application could help him.  It was a very positive experience.  The interesting thing was listening to the customer talk about the software. 

“That is cool,” he said, “but it would be even cooler if it did this!” 
That line has spawned millions of dollars in consulting fees and countless hours of frustration for developers.  It is the source of all feature creep in any project plan.  I felt a ball of bile welling up in my throat after hearing the client utter that phrase.  I took a deep breath and the madness subsided but it made me wonder if anything a software developer does is ever good enough.

I do not think it is a secret that developers are a quirky lot.  We are highly intelligent, have an in demand skill and often behave like professional baseball players jumping from team to team for better money and perks.  I also speak from experience that we often see ourselves like artists.  This explains why as a group we can get defensive about what we do.  Spending hours of effort to get something to work just right is emotionally exhausting.  When that effort is greeted with a shrug and the contempt of someone else it can drive a person crazy.
The feedback we often get from a business user is often inane and unhelpful.  You only have to watch a scene from the movie Amadeus to see a classic example of this criticism at work when the King of Austria tells Motzart his opera “…has too many notes in it.”

It has taken me over twenty years to learn how to deal with all kinds of customer feedback.  These lessons have been painful experiences found during bouts of unemployment and stress.  It amazes me that I did not discover them sooner. 

Business user approach software the same way many of us listen to popular music.  We don’t understand the technical details of how to play music but we know what we like.  So it doesn’t matter to most people that a song is being played in the 2/4 time or that it is in the key of G.  We just know that Credence Clearwater Revival's “Bad Moon of the Rise” is catchy.  So when we dislike a song we ofter have an emotional reaction to it rather than a rational one.  We can criticize it saying it lacks harmony and the minor key is off putting; instead we just say we don’t like it.  Often we sound like dancers on the old American Bandstand television program claiming “That song has a good beat and you can dance to it.”

Replace popular music with software and it is the same experience.  People interact with software much like they do with music.  I suppose that is why there are so many Linux and Apple fan boys.  This is why I do not get aggravated as I used to when someone suggests improvements to my software.  They know what they like and they are just having trouble describing it to me. 
I start asking questions of the customer and try to find out what they are looking for.  Eventually you will get a meaningful answer to your questions and know what to change.  I also know how serious about these improvements they are when I ask if they are willing to pay extra money for that service.  If the answer is "yes" then I know they are pretty serious. 
I have just come to accept that most software work is not good enough and that the users will always ask for something faster, better and cooler.  That is a good thing because this quest means that we are making better products which will create a virtuous cycle of innovation. 
I just wonder why it took me twenty years to figure this bit of wisdom out.
Until next time.