https://socketsite.com/archives/2007/06/a_new_development_design_manifesto_or_at_least_checklis.html