Basic Design Principles for Software Developers

In my previous post, I urged developers to learn a mainstream graphics editing program. This is purely a mechanical skill, so it seemed reasonable for developers to give it a shot. If we can absorb extremely complex development environments, compilers, and databases, why not a graphics editor? But as a few commenters pointed out, competence in a graphics editor isn't enough; you also have to learn some basic design principles to use the tool effectively. Turn the tables for a moment: would it be reasonable to expect designers to learn our favorite development IDE, purely as a tool, without any guidance on how to write code, too?


This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2007/05/basic-design-principles-for-software-developers.html

I’m a designer and I picked up that book for my programmer workmates, they were thrilled with it. Just remember these are guidelines that are good to stick by, if your design expertise takes you to furthers levels you should be comfortable bending the rules, but only bend them if you have good reason for doing so (you will know when the moment comes). I’m sure there’s a developer’s equivalent of this principle, I just don’t have enough expertise at programming to point out a good example :wink:

Jeff, I’m absolutely agree with you. By a coincidence, I’ve started reading Robin’s book this morning, before had seen your post. I’ve read 3 chapters by far and can say that I’m very pleased with author’s approach to explain things by example – how to improve desing by applying simple principles.

After NDDB book, I’ll proceed to Robin’s “Design Workshop”. It looks useful too, but is intended for more advanced reader.

Thanks for the tip. As a programmer I’ve always felt that I could do with something like this. Just ordered a copy and can’t wait to get started…

Finally a book I don’t need. My girlfriend is a graphic designer :wink:

The “odd font” from the cover is designed by Charles Rennie Mackintosh, the celebrated 20th Century Scottish designer and architect.

Why no trackback link Jeff? Or could I just not find it?

Anyways: http://www.dynamicorange.com/blog/archives/design_horror.html

Robin Williams writes some of the best design books for beginners ever. I would highly recommend that book to anyone and everyone.

This is a great book. I also liked “The PC is Not a Typewriter” (there’s a Mac version also, though I don’t know that they’re very different)

The only problem is once you have even a passing idea of what constitutes good design, the bad stuff becomes that much more obvious. It’s exactly like Dan’s “Knowledge is weakness” article: http://www.dansdata.com/gz068.htm

I was helping someone with a web page (well, watching mostly, I just wanted them to get it over with) and true enough, everything was centered, and seemingly random things were colored “to make it pretty” and to “give it a splash of color.” I just smiled and nodded until it was over.

Hi. I lurk around your columns a lot … I knew this reference to design would come one day. I am a practicing architect and also a programmer to boot (hmmm…) I have been quite amazed the lack of design knowledge that is present in software design. And I am not talking about visual stuff, but deep down design concepts, etc. I teach the software techies in my office a bit of architecture, and the architects a bit of software processes (in the end probably confusing both of them enough to get interested)

I wonder if any of you noticed the connection between XML and buildings. I have started a tutorial (of sorts) on my site but not really got down to finishing it. Will do so, now that I can see some activity on the net.

This is actually quite a good book - well written and very understandable. I remember reading it back when I was in my early teens, not long after it was released and some of the principles I still consciously apply today. One chapter I particularly remember was the one where a business card was taken though the various stages of improvement by adding alignment, emphasis through font size, etc. One of my university lecturers lifted the entire chapter for a lecture and presented it as her own work virtually word for word, even using the same examples from the book. I think that says a lot for both my lecturer and the quality of this book. A very good read.

Just a thought on seeing things:

Once a friend bought an Acura and showed it off. Suddenly I was noting Acuras everywhere. They were in my mental landscape, since 50,000 Acuras didn’t materialize over the weekend.

Hi Jeff, thanks for picking up my tip.

By applying the simple principles of “C.R.A.P.” outlined in this book I have improved the quality of my user interfaces and of my documentation.

Yes, a professional visual designer would do a much better job. No doubt.
But there isn’t always one to hand on a project, so knowing a few basic design principles can really help.

“Yes, a professional visual designer would do a much better job. No doubt.
But there isn’t always one to hand on a project, so knowing a few basic design principles can really help.”

And sometimes, you do really just need “good enough” (mockups, demos, etc).

And knowing enough to know what you don’t know makes dealing with experts immeasurably easier. I did desktop publishing back in high school, and my friend is an editor of a local newspaper. His skill set makes me look like a rank amateur (and I am in that area), but if he does a project for me, we can intelligently discuss what needs to happen.

On the flip side, we can’t discuss programming, because he doesn’t know enough of it to know what’s possible.

Awe eyes, why fetch is fur Anguish ass rake-in-lead. fang-kiss fur reaming meal audit.

I ‘m a graphic designer and use Ms. Williams’ “Design Workshop” book on a regular basis whenever I need a kick start on certain projects.

I did wanted to follow up on Mark’s previous comment. In yesterday’s post you said that programmers should know some design and designers show know some programming. Do you know of an equivalent to Ms. Williams’ book for non-programmers, like “C# for Dummies?” I’m OK with designing website pages in asp.net but as soon as I need to create a control or a form I’m lost.

BTW, great blog, even if I don’t understand everything.

This is a great book. I’ve been able to apply its principles to papers, user interfaces, and my kids’ projects. I have many other UI design books, but this is one of the more broadly applicable ones.

I wish everyone read enough of it so that they’d stop centering everything. My eyes!!

I always suspected that you were one of those reprobate Intelligent Design theorists! :wink:

This reminds me of when you buy a new car and suddenly half the people on the road seem to be driving the same model. Just like when you learn a new programming language and suddenly every programmer seems to be using it. (And every problem you see can be solved perfectly with your new language too!)

Aaiieee! Anguish Languish makes my eyes bleed :wink:

Another good post Jeff, I’m currently designing a site for a friend after an absence from web design and development, and this is just the type of spark I need. I used to be a serious graphics and design nut, but Real life caught up with me and I’ve had to leave those aspects alone for a bit to pay bills - I have some artistic talent, but certainly not enough to make a living out of it.

I’ll check out my local library for the book - I’m quite cheap :wink: