Jeremy Keith has compiled a list of many design principles that cover a whole lot of perspectives ranging from software people like Bruce Tognazzini to hardware people like Danny Hillis to classic design people like Dieter Rams. Reading this list makes me think that the principles that underlie design may encompass everything under the sun. And you may need to throw in everything else in the universe too.
It's a terrific list that speaks to how design is about what is optimal in a variety of dimensions and situations. Perhaps the only factor in common, that truly matters in the end, is that every category of design principles addresses a specific audience: human (people), or non-human (machines).
When designing for people, you have to take into consideration how some like their porridge cold. And some like it hot. Some like their browsing experienes to be insanely great. Others like theirs as sweetly boring as watching grass grow. Someone who may like it spicy the last time they came, may want it sweet this time. And just this time. Designing for people is a lot harder than designing for machines.
Designing for machines is what engineers do extremely well. Mechanical design is a field of true elegance that is not dissimilar to software design. The design principles we might use for engineering machines (physical or virtual) are closer to facts than the design principles we would use for people. The ones we use for people would be more akin to what my favorite human resources professional, Candace Baer, often refers to as the principle of, "It depends ...."
I want to come back to this list in the future, so I bookmark it here as I wonder, "What is Design?" -JM