Rule 5 is definitely king. Code acts on data, if the data is crap, you're already lost.

edit: s/data/data structure/

… if the data structures are crap.

Good software can handle crap data.

That is not what I meant. I meant crap data structures. Sorry it's late here.