
I’m about half-way through the book right now. I’m skimming through some of the more technical sections since I don’t know the programming languages they are using for their examples. (I really only know HTML/CSS with any level of mastery.) Still, I’ve found that some of the more general concepts can easily apply to design.
1. Orthogonality
Don’t have one piece of the design rely on another. Keep different modules independent so you can update or replace one without worrying about how it intertwines with another.
2. Don’t repeat yourself (DRY)
Don’t keep multiple copies of the same information floating around or they will quickly get out of sync with one another. This includes documentation that goes along with the design or development.
3. Version control
Create a system for keeping track of the different versions of your work and then use it. Even if it’s just a naming convention for your files, do it consistently. Save your design with a new name each time you make significant changes. That way you can easily go back to an older version of the design if you find out you prefer it to the newer version.
4. Use the right tool for the job
In this book, this mostly applied to selecting the most appropriate programming language for your project. I think it can also apply to design. For instance, if I quickly want to highlight something in a screenshot and email it to someone I could do that in MS Paint, but if I want to do some photo touch-ups I would use the Gimp. Selecting the right tool for the job means you’ll get it done more efficiently and with, hopefully, better success.