Constructing a Routine


  • Have you checked that the prerequisites have been satisified?
  • Have you defined the problem that the routine will solve?
  • Is the architecture clear enough that you can give your routine a good name?
  • Have you thought about how to test the routine?
  • Have you thought about efficiency mainly in terms of good modularization or meeting a space and speed budget?
  • Have you checked reference books for helpful algorithms?
  • If it's a standard algorithm, have you compensated for language differences between your language and the language the algorithm was written in?
  • Did you document the source of the algorithm?
  • Have you designed the routine using detailed PDL?
  • Have you thought about the data, before the logic, if necessary?
  • Have you checked the PDL? Is it easy to understand?
  • Have you paid attention to warning signs that would send you back to architecture (use of global data, operations that seem better suited to another routine, and so on)?
  • Did you use the PDL-to-code process, using PDL as a basis for coding and converting the original PDL to comments?
  • Did you translate the PDL to code accurately?
  • Did you document assumptions as you made them?
  • Have you chosen the best of several design attempts, rather than merely stopping after your first attempt?
  • Do you thoroughly understand your code? Is it easy to understand?