Saturday, February 16, 2008

Think Bigger!

Bookmark and Share

Jeff had a very nice post recently about the all too common problem of Engineers becoming inappropriately fixated with things that are important to Engineers (as opposed to things important to the business and to the users). He points out that he gets "frustrated with the depth of our obsession" over things that are very important and necessary (such as unit tests that are absolutely foundational to professional development) but are sometimes allowed to overshadow the things that are MOST important. Jeff remarks, "the ultimate unit test is whether or not users want to use your application" and continues with, "I want to run up to my fellow programmers and physically shake them: think bigger!" And I want to shout, Amen!

But then something odd happens. In response to his post, developers (apparently suffering from precisely the ailment Jeff just described) completely validate his entire premise (that sometimes we fail to see the forest for the trees). One after another weighs in with a comment such as, "unit testing has nothing to do with usability" (boldly paraphrasing).

Finally, Kyle pipes up with the voice of reason:

"While [it's true] Engineers should be concerned with whether they are building the product right (verification), their overriding concern should be whether they are building the right product (validation).

It is important for engineers to get their head above the water and see the bigger picture sometimes."
Kudos to Jeff, Kyle, and all of you who remind us to "think bigger", "get [our] head above water", and remember that our real mission is (as Jeff concludes):
"The ultimate unit test is whether or not users want to use your application. All the other tests you write are totally irrelevant until you can get that one to pass."
Building the product right is very important. Building the right product is essential!


2 comments:

Mike said...

One of the ways engineers can accomplish this is to engage the customer, or find someone who represents that voice.

One of the things I've found while working directly with clients and customers, as opposed to working directly with product designers, is you begin to sense the types of things that will work and will not work.

You do your best to send your message up the chain, but its not always heard. It's one of those times when your voice is heard, you'll hear nothing about it since the customer is happy. When it isn't...you're sitting back a year later shaking your head thinking "I told you so".

The concept is inherantly more complex than it's made out to be, but that doesn't mean it shouldn't be followed.

As more and more companies move to SAAS products, it becomes even more important for those developing those services to interface directly with those implementing the service. If that means working with an end customer, great! If that means working with the engineers who help end customers to get the service working, that's great too! It provides a dose of perspective that can only be attained by feeling any pain that the design has given the service consumer.

Brian Sondergaard said...

I'm with you Mike. Partnership between the customer and the provider is essential. The more we work together and the more we do so as partners with mutual goals (and shared perspective), the better the results.