Recently I was working on a project and after a while things started to bubble up which wasn’t innitialy discussed or covered within the project scope documents. It started me thinking about a developers’ responsibility when developing a system for a client.
• Do I design the system to the client specifications, no deviation from the scope document? • Do I design according to the specifications but suggest things that I think might be relevant to the project?
A very simple example below: A client wants a system developed where users can enter their contact information (names, surnames, telephone numbers, email addresses); this information is then stored to a database and can be viewed at a later stage.
That’s the specifications as given by the client in the scope document.
As the developer when you look at the document, you can ask yourself some of the questions below (these are questions I ask myself and the client)
• Who will use this system, will an authentication system be required? • What formats are needed for the data, formats for names, email addresses,telephone numbers? • Can information be edited, deleted?
What if the client has no idea about the things above? Do you suggest them, do you avoid them? I’ve found that sometimes suggesting ideas that the client isn’t aware of leads to more and more things that the client wants in the system because one suggestion might spark a whole lot of new ideas.
If you don’t suggest something that the client isn't aware of, it could render the system (or data) pointless at a later stage. This will in my opinion reflect badly on the developer because "the developer never thought of it" will most likely be used as explanation.
I always ask clients to be as detailed as possible about what they want but 90% of the time they still skip things that I think are relevant to the system. Do I just do what they ask and if something is not part of the the system pull up my shoulders and say “Well you didn't ask for it” ?
_________________ “Don’t worry if it doesn’t work right. If everything did, you’d be out of a job.” - Mosher’s Law of Software Engineering
|