Beware of this man - he is highly dangerous
Programmer/database designer:
Well qualified
Intelligent
Resourceful
Talented
Unless carefully directed he will:
Start writing code immediately.
Decide what the requirements really are.
Make decisions about navigation, processes and user paths based on the relationship between database tables or some other obscure technically derived rationale.
If working with him, follow strict guidelines:
Give him EXACT requirements with NO margin for interpretation.
Use a simple HTML prototype to brief users, and do an iteration of the design, before giving the finished design specification to him.
Focus him on programming/database design, and nothing else.
Have someone else do user testing on his work.
And the point is... Programmers are naturally pragmatic. They will simply get on with it, solving problems and filling in gaps as they go.
Given requirements that lack detail (about the user interface, navigation, terminology, or a properly designed page layout), a programmer will simply form a view of what needs doing and get on with it.
The results can be a solution which has drifted too far from the initial requirement, through no fault of the programmers, but because the specification was not sufficiently detailed.
Usability to the rescue: Before starting software development, use a usability specialist to refine design specifications including tasks, navigation, interface design, etc., and an iteration of a design tested on users.
