Everyone hates documentation. It is either boring or it doesn’t answer provide the needed answers. Many programmers agree that documentation is critical when they are taking over a project for someone else, and think it is completely unimportant when they need to create it themselves.
So as a customer: what documentation should you expect or require from your programmer?
Every situation is different, but here are some documents you may want to consider requesting:
System Design
This is the specification that was (usually) created before the programming began. It can include functional specifications, wireframes, screen mockups, user stores, UML diagrams, ...