I just finished reading an article from Hacknot that describes the predicament that developers are in while attempting to define a software product’s requirements as specified by the user. Here is a quote from the article that I find quite telling:
In their efforts to be “user focused”, guided by simplistic notions of “usability”, many managers and programmers uncritically accept whatever users tell them as a mandate. “The customer is always right” makes a nice slogan but a poor substitute for critical thought. If you want to deliver a product that is genuinely useful, it is important to moderate the user feedback you receive with your own knowledge of usability principles, and to seek independent confirmation of the information they relate. For it is a fact seldom acknowledged in the text books that users are frequently uninformed, mistaken or deliberately deceptive.
I work in an organization which is highly user focused, as opposed to product focused. Essentially, whatever the customer says goes.
Here is a little background: My employer has been relatively slow in adopting new technologies. A large portion of the software that runs is what might be called “legacy” code (i.e. COBOL, JCL, and even Assembly); however, there is still new development being written in that environment. Thankfully, much of the front-end has been moved to an intranet base. Quite recently, there has even been a push to Windows Forms development with .NET.
The problems that the users have is that they do their business work in three different environments at a bare minimum: green screens, intranet webpages, and Windows applications. When my company first began the move to intranet pages, the user requirements would basically be, “make it look like what we have.” They had no idea of what the capabilities were with webpages. The first few webpages all looked just like their green screen counterparts, except that they were black text on a white background, instead of green text on a black background.
Today, with some of our new development in .NET, we’re running into the same problem again. The users know webpages and their capabilities, but not those of Windows applications. There is a fundamental misunderstanding about what these new applications are. They want a button for everything, when a toolbar or menustrip might be more appropriate. I’ve really been encouraging my users to look at examples like Office applications for ideas while thinking about what they want the new software to do. Some might argue that Office applications aren’t the best example, but the truth is that Office is one application that the users really know.
As software developers, I really think that, to be user focused, you can’t always give the user exactly what they asked for. Alternatives can, and often are, much better in the end. The difficult part is communicating that. Is this a common scenario for others? (I know it is!)