As I read this title, I realize that this could be the start of a book, not a short article. Ultimately, every bit of software written is for somebody (even just for the programmer who wrote it). So this means that end user (or customer) has the final say as to whether the program is useful – often, voting with their wallet.
It’s odd that software companies rarely give customers the focus they deserve. Perhaps the problem lays with the type of people that develop programs (broad generalization follows): Programmers tend not to be ‘people persons’, so it’s reasonable that making the software user-friendly, versus, say, an interesting technical challenge, is not a priority.
However involving customers early in development can make software radically different – and sometimes different is good. This happened with our latest software release, Rocket Retriever 3. Originally designed as a software tool to make managing my own files easy, it has since evolved, based on feature requests from customers, as well as what I felt was needed.
For instance, when originally developing it, I went to great lengths to keep the database up to date, scanning constantly. However, many customers complained that the scanning was unnecessary, so later versions had a throttle to control speed. In version 3, scanning can even be turned completely off on startup – this was because some customers wanted the flexibility of scanning once, and ‘freezing’ that scan (for instance, for files that rarely change, like a music database).
Another example is ‘skins’. While it originally appeared an unimportant request, more than one customers wanted a new look for the program. The retro 30s look was uninteresting for some, and perhaps detracted from using it in a work environment. With skins incorporated, Rocket Retriever can appeal to a wider audience, and even opens up the possibility of custom designs for specific clients, allowing them to brand the product for their company or site. Again, a customer request or two becomes a valuable feature.
The list can go on and on. But in distilling it, the main points are:
Working at communication is good advice for any programmer – listen to your customers, and you’ll be surprised at what they have to say – and the results will be well worth it when you release your next product!