The imperfection of design is the theme of October's Book of the Month. Did you ever think about why calculators have 1, 2, and 3 on the bottom row while phones put those keys on the top row? Why did the high beam headlight switch migrate from a floorboard pedal to a toggle on the steering shaft? Whatever you're designing, from the error handling facilities of your software to the fat handle of a toothbrush which is highly ergonomic but can't fit in anyone's toothbrush holder, you have to trade off things that can't really be balanced against each other. And no matter what you do, you'll be subject to criticism, much of it valid.
Henry Petroski, who can write a 448 page book about the common pencil and make it fascinating, has done it again, this time with an excellent book about why there is no perfect design. All design is about tradeoffs, and if you don't believe me, this book offers dozens of examples from everyday life. It even offers a candidate for the best designed object on the planet (the three-legged plastic nubbin that keeps your pizza box lid from sticking to the cheese) and shows why even that is imperfect. Small Things Considered: Why There Is No Perfect Design is another great read and it's the first Joel on Software book of the month. [Joel on Software]