David McKillen WebStrategies Inc.
Here at WSI-WebStrategies, we work with a plethora of really talented programmers both inside the company and outside as contractors. We try not to reinvent the wheel when delivering a Web based product as it keep costs down for our clients. From time to time however, clients will come to us with requests for slightly more advanced functionality that isn't readily available "Off The Shelf" and this requires customization.
On one of our earlier projects, we had to do that very thing, and turned to an outside developer to customize his website module. In terms of functionality, the end result was nothing short of genius. With a very tight time frame looming over us, we wrapped up the code, put it in place and passed our solution to the client, only to find out he was not at all happy. We were a little confused by the response we received upon delivery, as we had expected happy smiley faces, only to be confronted by a frustrated and mildly irritated client. What was the issue? The code was perfect, the functionality matched client requirements down to a tee - it just didn't add up. Upon review with the client however, we had overlooked one very important aspect that is the foundation (or should be :) ) of every development project.
What was the missing piece? - Usability.
In our efforts to deliver the project on time, we had ensured the solution looked good and functioned correctly. What we had neglected to review was whether or not the client was able to actually interact easily with the new product. We had neglected to do any kind of (even basic) usability review. There were multiple aspects of the functionality that we had just taken for granted. Being Web developers we forgot to try to perceive user interaction from the client/lay person's perspective. It's easy to forget that not everyone has been working in the Web industry for a (combined) considerable length of time. The user had tried to use their new product and fallen almost at the first hurdle - from there everything was an uphill battle.
The moral of the story here is that no matter how amazing your code functions, it is rendered fairly useless unless you ensure that Usability has been optimized. What good is a shiny new sports car if the steering wheel is hidden or the peddles are not in the obvious place? It's one thing to argue the fact (as many hard core programmers do) that ultimately it's the back-end code that forms the guts of any given solution and that "prettiness" isn't super important; but it's another thing to ignore Usability, ultimately rendering your super code useless.
David McKillen WebStrategies Inc.
Agree, disagree, or just have something to add?
Leave a comment below.