Thursday, 31 July, 2003

A new old idea

I was perusing the July/August edition of Software Business Magazine this morning while I was toasting my breakfast bagel.  The quality of writing and editing in this magazine is surprisingly bad—something I'd expect for a controlled-circulation (i.e. free) periodical, but not something that people are expected to pay up to $36 per year for.  Every once in a while, though, you find a jewel in the trash.  In this issue's Executive Strategy column, Brian Turchin describes the success of Mercury Interactive. Mercury Interactive is in the business of selling testing software, and is one of very few software companies that has sustained growth and profitability over the last seven years.  The article describes four of the success strategies revealed by the current (since January 1997) CEO.  Number two on the list of success strategies is "Have R&D personnel discover customer needs first-hand."

This has two primary benefits:

Rather than sitting back in their dark offices coding what they think is cool, developers meet with customers, see how customers use their products, and learn why customers find certain features important, hard to use, or superfluous.  Programmers working on development tools don't necessarily need to do this because they're typically using the tools that they're creating.  But a programmer working on a financial package or survey tool must understand first-hand what the customer is doing and how the customer is applying the solution that the developer is creating.

In many (most?) software companies, developers often have an adversarial relationship with Sales and Marketing.  Sales complains that the developers aren't delivering what the customer wants, and Development complains that Sales wants stupid features that are too hard to implement and useless to customers.  By putting developers on the front lines, they see what customers want and as a result are speaking the same language as the Sales and Marketing folks.  This puts the developers in the enviable position of being treated like heroes by the Sales team because they've delivered exactly what the customers are asking for rather than a cool new useless feature.

Wouldn't it be nice if all software was developed that way?