We had a project where things got in a bit of a mess a while ago because of inexperienced developers.
The main issue was the fact that the programmers rushed directly into writing the code after they have read the functional requirements. They did not stop for a moment before and think how they might implement the stuff, so they coded an implementation. After some time consumed on the task, they often realized that they have missed something and needed to back out and try another approach. The project got late, overtime was demanded etc.
That was version 1 of the app. For version 2, management decided to force the programmers into planning first, so before any code was written, the programmers had to write detailed technical specs first (I must mention here that the client does not care about these specs). A lot of the issues that occurred during coding were caught in writing the specs. Things went well for the second version.
We are now doing heavy maintenance on the second version and a lot of things get changed in the code. The team now knows well the project and gained a lot of experience, so there are no major issues. The problem now is that the changes are rather urgent and we have all this technical specifications that we must update at the same time with the code. The client does not care about the specs, he just wants his changes.
So the question is, when does technical documentation become a duplication bourdon? Also, should we lose the technical specs now that they have served their purpose or should we keep them updated?
What do you think?