When I wear my analyst's hat, I expect certain things from a developer. I expect that they will read the spec first. It seems obvious but you would be surprised at how often I get called to explain details around a solution design when the developer has not actually read the spec. With my analysts hat on I would suggest the following steps to programming against a spec:
- Read the spec.
- Read the spec again.
- Ask questions of the analyst/domain expert to clear up any areas where you are not entirely sure what is meant.
- Plan how you are going to implement the solution and break the spec down into a series of "programming tasks".
- Code the programming tasks. Make sure you test your work as you go.
- Read the spec again. This time you can "tick off" all of the tasks that needed to be completed. Maybe you missed something the first time around.
I also expect that if I have written a spec for something that will simply not work, or could have been done better, the developer will call me and discuss the solution. I do not think I know better than other people, I just know that without a solution design, nothing will happen.
Now I hope I can follow my own advice. So far - I am finding it hard work. The temptation to start coding at the first bit of the spec I understand is almost overwhelming. Developers just love to get coding!