I wish they taught a “Mind Reading for Web Development” course, but last I checked, they don’t offer one. It would really help, but since developers are not taught mind reading, we rely on creating what is specified to us. We don’t know what you want, unless if you tell us. Since we aren’t telepathic, the key to any successful project is a well written spec. A spec should outline everything that is required for a project to be successfully completed.
A good way to create specs is to start with basic functionality. When the user first visits this module, where is it? What does it look like? What does it say? How does the user interact with it? Specify every aspect of how the module works. If it requires user input, then what are the fields, which fields are required, and what are the limits or validation rules on these fields? Does the input need to be captured in a database? Stored in a flat file? Emailed out or sent to a third party?
A spec should be written in such a way that it anticipates any question a developer may need to ask. It may be one page or it may be 100 depending on the size of the project. Just remember that we can’t read minds, and what seems natural for you, may not be natural for us. We may have different ideas on how things should work by default, but if you specify how things should work, we won’t have to guess or use our own judgement that may conflict with what you wanted.




