I'm reading Joel Spolsky 's User Interface Design for Programmers . A thought that's struck me is about architecture. It's easy to get fooled into thinking building software is a bit like being the architect for a building. I'm not even going to go into the differences between engineering practices à la building design and good practice software design. I'm going to start from the easy point, the stuff you can see. There's often a pressure from your designers, from your steering committee, even from your CEO, to make your software look "pretty". I, too, with my DTP background, occasionally fall into that camp. You know, slicker fonts, curvy edges, funky this, fancy that. And you can look at buildings like the Woolworth Building , and think, "I want my software to be the equivalent of the Cathedral of Commerce". But for all its Gothic detailing, its flying buttresses and gargoyles, you can still find the entrance. You can still find...