I recommend Notes on the Synthesis of Form to everyone. For one, it's a delightful read (Alexander is a master linguist), but it's also tremendously helpful for anyone thinking about building a large system, especially software. The main takeaway for me was thinking in terms of systems of constraints. When designing a vacuum, constraints might be: needs to be reasonably priced, needs to be profitable, needs to be easy to carry, needs to be durable, needs to be powerful enough, etc. Adjusting one constraint usually affects another, so it's easy to see how complicated this can get.
Alexander formalizes the process, and demonstrates mathematics to solve the constraint problem. This assumes, of course, that you can articulate and quantify the constraints in the first place.
Web developers are lucky: unlike architects or product designers they can quickly test their assumptions (A/B tests) and move the system to a better state.
I'd also recommend The Timeless Way of Building, which provides the overview of Alexander's method (of which A Pattern Language is just one piece). I once wrote a review of The Timeless Way from a programmer's perspective: http://advogato.org/person/mbrubeck/diary/106.html
(The Oregon Experiment, which I mention in that link, might also be of interest to programmers inside huge organizations.)
I second the recommendation. A Pattern Language outlined a lot of the actual patterns (which was neat), but Notes on the Synthesis of Form did a better job of illuminating a broad conceptual foundation for designing systems. I think I need to re-read it now that you mention it.
Alexander formalizes the process, and demonstrates mathematics to solve the constraint problem. This assumes, of course, that you can articulate and quantify the constraints in the first place.
Web developers are lucky: unlike architects or product designers they can quickly test their assumptions (A/B tests) and move the system to a better state.