“What is Software Design” is a classic article, so I'm not sharing anything new here, but I realized I didn't have it solidly stored in my blogki, so now ‘tis. If you're not familiar with the article, I suggest giving it a read. It's a long one; in fact, I don't think I've ever read the whole thing. Really, I just like this bit:
There is one consequence of considering code as software design that completely overwhelms all others. It is so important and so obvious that it is a total blind spot for most software organizations. This is the fact that software is cheap to build. It does not qualify as inexpensive; it is so cheap it is almost free. If source code is a software design, then actually building software is done by compilers and linkers.
If you want to get into this some more, one place to start is at c2‘s page (the original wiki).