bennettscash
bennettscash
Why should programmers care about OH&S?
Thursday, 6 November 2008
I’ve been fighting the good fight recently, trying to convince influential people within my organisation of the value of having - and applying - OH&S standards for software development. Useability has always been quite a passion of mine, and I think that this is as good a reason as any for me to rant about why this is something we, as developers, should care about.
So why should developers care about occupational health and safety?
To answer this I’m going to take a step back and ask why we write software.
We write it for people to use. As much as we hate to admit it, and as much as we might just want to write software for the sake of writing software, the reality is that if we’re going to make a living writing software then we have to write software that people will actually use.
So we write software for people. That’s a great start.
Let’s list some attributes that we know are true about the people we write software for:
-They have a short attention span
-They usually want the impossible
-If they don’t use our software very often they’ll complain a lot if it’s not really ‘intuitive’
-If they do use our software a lot they’ll complain a lot if it’s time-consuming to do common things (regardless of how intuitive it is)
-Their bodies are designed to hunt and/or gather
-Their bodies are not designed to sit at a desk using a computer
-Their bodies are definitely not designed to push a mouse around a desk a lot
-Their bodies are also not designed to carry out repetitive tasks
So, applying these facts in the context of software development, where does this leave us?
1.Frequently used things should be fast but not necessarily intuitive
2.Infrequently used things should be intuitive but not necessarily fast
3.Fast is measured in terms of
a.Processing time
b.Time to invoke
c.Amount of keystrokes and/or mouse movements required to invoke
4.Frequently used things should be available by both mouse and keyboard commands (this means letting people use either, not requiring them to use both)
5.Things are intuitive if they’re easy to find by an inexperienced person with the same characteristics as the intended user. Without training.
5a.The intended user is usually not the software engineer who developed the software.
That’s all pretty basic, isn’t it? HCI 101. So why go on about such simple things?
Put simply - most people ignore this. And as a result users are forced to do repetitive tasks, get frustrated (and hence tense their muscles), and spend prolonged periods either using a mouse or keying. And this leads to us developers indirectly injuring our users, which isn’t a good thing (despite how appealing it might be sometimes).
So next time you’re about to write some software, stop.
Think about who’s going to be using it, and how they’re going to be using it. Don’t just code it however is easiest for you, or let the user interface fall out of reckless coding, but sit down, grab a pencil and a piece of paper, and think about how you’d like to interact with the system if you were the user.
Even better, pick up copies of The Humane Interface, The Design Of Everyday Things and The Inmates Are Running The Asylum.
Then read them.
And finally, apply them.
Please.