Today I want to write more on design. In a previous post I talked about design goals, complex vs. simple design and how to recognize whether design is too complicated or not. Design is quite important in all aspects of life and so it's very important to understand what it is and how it can be improved. Personally I want to get better at it and I think one of the best ways to get better at something is to try to analyze what it is, how it's done, how it can be improved.
First, I think we should define what design is. Joel says it "is about making trade offs". He also points out that in the long run it's beneficial to spend more time to create a better design and quotes Themas C. Gale ("Good design adds value faster than it adds cost.") Dictionary.com defines design as "a drawing or a sketch; a basic scheme or pattern that affects and controls function and development". There are more definitions, but I tried to pick definitions related software development. In other words, design is a plan of how to keep the balance, how and where to make trade offs. However, when I see something really well designed, I don't really see a plan, I don't really see all the trade offs, issues that had to be balanced. I see a product that looks good, easy to use, etc. It would be more appropriate to say that design is a shape, color, features, some parameter (or combination) that is important to me (the user) and that makes my life better. The better my life (or some aspect of it) ends up the better the design is.
Design label is slapped on several related things: it's a process of creating a plan to balance trade offs that would result in an aesthetic product. And I'm barely scratching the surface. There are different types of design, from fashion and graphic to industrial and system.
Even in one field, such as software development, there are different levels and types of design. Web design (combined with graphic design and programming) is often used to talk about the external view of a web page. Class design is related to internal parts of an application. System design talks about how everything works together. Design is everywhere!
If you want to learn to create better design I think it's important to recognize what it is for you and to be able to recognize good design vs. bad design, and at some point to see how things can be improved. As an exercise I propose for you to look for design when you are using something, or just when something catches your attention. Try to see what was done well and what was done badly. What trade offs (money, time, usability, aesthetic) did the designer have to make and how did he balance the issues. Think about possible users of the item. Would everybody like it and would it be intuitive to use for everybody? This doesn't have to be an involved exercise. Just a quick thought to get into a habit of thinking about design. I will try to do the same and write more on what I notice.
In my next post on the subject I want to talk more on the meaning of design. Knowing what it is (a process and it's about trade offs) should make it easier to improve it. I'll try to explore that.