Good software has users

If you build software, manage a project or direct an IT division take a moment to answer the following question: Who are your users? If an answer eludes you, read on.

Good software has users. Understanding this simple statement may make the difference between solving imaginary and real problems. Information Technology, at its core, is an effort to pair technology solutions with domain problems, where a problem may range from generating reports to architecting massive systems. No matter the scope, technology solutions should be informed by the needs of users.

How do you do this, especially when developer time is valuable and deadlines loom? One approach is to keep developers out of meetings, but allot time for them to observe and interact with users. Many development shops erect a wall of separation between users and developers, on the grounds that such interactions take time, yet they draw programmers into all manner of administrative and policy meetings. Reverse this trend and make time for programmers to meet with and empathize with the people who use the software.

While this makes sense with an established user base, projects in early development may serve hypothetical users. It is especially important to define and become acquainted with the user in this scenario. I recommend reading over the business plan for information pertaining to the target customer and establishing a focus group to see what they really want.

Sometimes the user doesn't pay the bill, but their satisfaction (or dissatisfaction) will register with the bill payers. You must convince the bill-paying client that it is in everyone's interest for developers to empathize with the user's needs. Humane interfaces emerge when the software producers and consumers, for lack of a better word, understand one another.

It isn't sufficient to build software for the generic user and let them adapt. The more data gathered on the archetypical user, which should always account for computer proficiency in addition to demographic factors, the better tuned the application will perform.

We have all been there before; using the tool that was clearly designed and built with little regard for our time and talents. If you produce software, knowing your users is the first step to building usable and proficient information technology solutions.

making user interfaces count

You bring up a good point. The user interface is often treated as window dressing for the data, but nobody likes to use things that are just "good enough" or "expose all data points." In my experience, most managers who sign off on bad user interfaces haven't really used them. They may have looked over someone's shoulder or watched a demonstration, but rarely do they take an active role.

The problem here, that I didn't mention in the article, is that not everyone has their heart set on building good software, which means that the user gets shorted. My advice is best for organizations that have the will to produce good software and are willing to invest a little development time to make it happen. In my experience managing software teams, the time penalty more than pays for itself. The most expensive thing in software development is to build the wrong product, which is all too easy if the user isn't involved in development.