Joel's review of Dreaming in Code
Joel Spolsky's post The Big Picture has some great UI design points to make:
First, that you need to DESIGN first, and that many projects fail because people jump right into coding without a design:
"This is a particularly dangerous trap when it comes to software development. You get some big picture idea in your head for what you want to do, and it all seems so crystal clear that it doesn’t even seem like you need to design anything. You can just dive in and start implementing your vision."
Second, that a risk of abstract thinking (often done by architects) is that you can quickly leave real-world concepts, and users, behind.
"'No Silos' was supposed to mean that instead of having your email in one silo, and your calendar in another silo, and your reminder notes in a third, there would just be a single unified silo holding everything."
...I think the idea of “No Silos” is most appealing to architecture astronauts, the people who look at subclasses and see abstract base classes, and who love to move functionality from the subclass into the base class for no good reason other than architectural aesthetics. This is usually a terrible user interface design technique.