• The developer always has a complete spec (or if they don't, they can make it up as they go along).
• All development begins with a brand new program.
• If your program doesn't core-dump in response to a test case, its behavior is correct.
• No one else (with the exception of the professor, perhaps) ever looks at your code.
• The developer never, ever has to read someone else's code.