I have noticed around the Uni that there seems to be a hole in the design and development of things like websites and applications. (I am speaking here of small to medium projects, not large ones). Usually the design and dev process goes something like this:
1. Someone comes up with an idea for a new website or application
2. Talks to someone about building it for them
3. Gives them an idea of what they want it to do/say, which may or may not include technical specifications.
4. Developer takes these ideas and builds a system.
5. System does roughly what it is supposed to be but is hard to use or slow, etc etc
This is by no means always the case but there is definitely a problem in the development cycle that I think is related to specifications, or the lack of them.
Most people who ask for something to be built don’t really know how to write a spec that will get what they actually want. They usually have a very good idea about what they want the thing to do but this does not necessarily mean that they know the best way to make it do it. The job of the person building the thing, as I see it, is to take whatever rough ‘specifications’ that the client is providing and find the best solution, not just a solution that fits the spec. This involves build AND design. Someone generally goes to someone else to build something because they don’t know how to do it. This is generally accepted when it comes to technical things, but when it comes to design this isn’t as readily acknowledged.
The nature of the Uni means that often it will be the same person building and designing. We do not have the resources available in the private sector. Often though the design suffers at the expense of the build. The build may be technically correct, or close to, and fulfill the client’s needs, but the resulting system or site is difficult to use and frustrating. I think this is a failure to deliver the best system or site possible to the client. It’s a cop-out.
At some stage we have to realise that for small applications and websites there is often a need for someone to sit between the builder and the client. Ideally this person should be able to write a detailed spec that answers the functional needs of the client but also comes up with solutions that will make the site or application easy to use. I’m not necessarily advocating the employment of a heap of spec writers, I know in this climate that is unreasonable. What could be done though is that builders realise that the client’s spec doesn’t usually spell out the design of their request, it usually spells out the functionality, but that is all. It is up to the builder/designer to actually take that spec, and sometimes it will be a verbal spec, and design the solution before they build, not just solve the problem technically. To blame any resulting interface or design problems on the client’s spec is just lazy.
--------