It's time to take a page from the "painfully obvious but never do it" chapter. Project checklists are something that I used to do all the time when working within an agency. Half the time, I felt they were as useless as timesheets. As a freelancer, however, neither could be farther from the truth.
In the beginning
Normally, checklists are good at the beginning of a project and at the end. At the beginning of a project, the checklist is designed to elicit feedback from the client and build a foundation upon which to build. The checklist would be tailored to the type of work that you do and is essentially a list of frequently asked questions.
For example, if you provide HTML services, you'd want to ask your client whether they prefer HTML or XHTML, need files delivered via CD, or a list of target browsers. If you're a programmer, questions might include hosting information, server configuration, programming language, or anything else that facilitates the building process.
The checklist helps ensure that you get all the info you need at once. It prevents a back-and-forth between you and the client and prevents delays that might occur if you find yourself waiting for information.
In the end
At the end of a project, the checklist is normally an internal tool to make sure nothing gets missed before sending something off to the client. Did you test every page in all browsers? Do the pages validate?
Often times, a test matrix would be advantageous. For browser testing, for example, you'd list off the browsers along the top and the pages that require testing along the left. For web applications, you might include various use cases and perform each use case to ensure nothing fails.
It's important to perform the checklist in its entirety before each time you send something to a client. This ensures revisions didn't accidentally introduce an error elsewhere.
Completing the checklist is part of top-notch quality control that, while tedious, will save you time and ensure a happier client.
Checklists, however, aren't foolproof. Like any repetitive task, the human brain gets trained to go through the motions. If you constantly skip over an item because you don't do it for 95% of the projects you work on then you'll invariably miss it by not paying attention when you do need it. Likewise, if there's a block of items that you always check, you'll get in the habit of checking them all off and inadvertently check something that you didn't verify.
Revisit your checklist from time to time, removing unused elements and adding missing items. This keeps the checklist from going too stale. An electronic checklist may also be advantageous, especially those where the position of items may not always be consistent (for example, if it hides checkboxes based on type of project). If the items aren't in a predictable location, it forces you to read the items and you'll be less likely to skip over them.
If you have your own tips, please share.