Checklist for Code Design

When cooking up a new batch of code, it helps to ask these questions...

Does the code make a product useful?
Does the code help make a product understandable?
Is the code itself understandable?
Does the code have the potential to be long-lasting?
Is the code thorough? Does it cover all use-cases presently known?

Finally, if all of these points are covered...
Is the code innovative?

This final question can help answer the others, but as an end in itself, may lead to trouble.