Wednesday 26 September 2012

Software Engineers Never Get a Specification.... Deal with it!


As a software engineer, I'd love to get specifications for the software people want me to write for them.  Unfortunately in this world of mobile wizardry and the eponymous "Apps", people don't want to sit down and help specify what they want, they want to just give general ideas of what they want and they believe I'm able to discern everything else for myself.

This one-sided "just do it will you" attitude has forced me to turn the tides on people, in the last three projects I've worked on I've been left to do what I wanted from start to end and then had numerous, onerous, tiresome complaints that what I've delivered (though good) wasn't quite what they wanted... I've politely, and not so politely, pointed out that if they don't actually feedback, or even start off, with a good idea what they want.  And if they work with different goals than I work with, and both they and I see the interaction with the end customer differently, then even though we work for the same company we can't reach the same conclusions nor attain the same common goals.

All for naught however, as it always just seems to circle back around to "its your job to create this software, get it done"... my whimpers asking them to define "this" go unheeded repeatedly.

So, the worm has turned, I've today released an internal tech demo of a new software element, its just one element of a three part series, and this is only a mock up of it... The challenge is to get a "feel" for user interaction on a display.

We have a touch screen, we have graphics... But we have no idea actually how people interact with our system... We don't do time and motion studies, we don't even sit in the distribution point and watch, we just sit and assume people would interact with the machine how we would... And they don't.

There's nothing ground breaking about this piece of software, nor my releasing it... what's revolutionary and what's pissing those who should have spent some time specifying how it works to me off is that... Everything in it, EVERYTHING, is configurable through an XML file...

The margin width, the speed of the touch screen, the area of the images, the images themselves... Everything on this thing is configurable... So its really all up to them to decide if how it acts is how they want it to, they can turn up the deceleration, turn up the touch response, tone down the area a finger on the screen represents... they can mould and fold this configuration around all they want.

The upshot has been two fold.. Firstly, and brilliantly, for the first time ever I'm getting meaningful feedback on the behaviour, I'm even getting told that some metric is missing, or some feature needs representing and what range it needs to support!

The second fold is not so good... The less able members of staff, that is those whom like to criticise, are taking their analysis to a whole new, abstract, level... Instead of doing what was asked, i.e. to try the application, which is a mock up, out... They're opening task manager and monitoring how much CPU it takes and looking at aspects of it totally unrelated to the idea of "give it a try"... things which are NOTHING to do with interacting with the application... And when I say "This is a mock up, just tell me how you think it feels, I need that human feedback of how it works, how it comes together"... they reply... "It comes together as taking 20% more CPU than we can allow"... That's not human feedback, that's not how it interacts... That's in fact got sweet FA to do with the task at hand.

And I'm starting to file these latter people into the unhelpful bin within my minds eye...

No comments:

Post a Comment