What do a condom and a technical specification (TS) have in common? In fact, much more than it may seem at first sight. To answer this tricky question, let's analyze what TS is and what is it for.
A technical specification is a document that describes details of a project (in our case, web application development), its objectives, technical characteristics, quality requirements, stages of realization and other related information. TS is a legal document, and it is included as a supplement to the contract between a client and a developer. Quite often, clients hold a lengthy discussion on the terms and conditions of the contract and try to enhance the responsibility of the parties for any possible violations of the conditions. In my opinion, it's a waste of time. The only document which needs to be carefully prepared, discussed and agreed is the technical specification. It's quite simple – the less time spent on preparing the TS, the more ambiguous the project is and consequently, the more conflicts it may cause.
The main rule every project manager has to remember: The more detailed the TS is, the more soundly you'll sleep at night. Even if your client doesn't actively participate in the TS preparation and shows no particular interest in it, it's not a reason to relax. All information that has even the lowest value to the project can and must be mentioned in the TS. If you think that some details are clear and can be omitted, slap yourself in the face and carry on writing.
Let's get back to our question: what do a condom and a TS have in common? A condom, like a TS, does not guarantee the 100% protection against unwanted consequences (in our case, conflicts with clients). However, there's one thing for sure: the absence of the TS (or lack of details in it) at the moment of need may cause you so many problems that a few extra hours spent on its preparation will seem a piece of cake.
We're for safe development!