Of all the real-world disciplines that could be used as a guide to web design and development, the practice of architecture is perhaps the best comparison.
Like web developers, every architect is faced with three demands when designing a structure. These demands are often contradictory, and balancing them is part of the art of great design in any practical field. The primary considerations are:
The look of the work. How does the building appear from different aspects? Is its profile, texture, use of shadow and light pleasing to the eye?
How will the building be constructed? What materials will be used? Will it stay up? Can it easily be expanded and modified later?
Does it fulfill the basic function required? (i.e. to house people in relative comfort, keeping the elements at bay).
Everyone who builds things, from architects with fees of millions of dollars to the person living under a bridge with a plastic sheet, has the same basic concerns.
For a website these demands are expressed the same way: does the site look good? (Is it proportional, does it use colours and fonts well?). Is the site constructed in a way that makes sense? (Is the code valid and commented? Does it use semantic markup?) And can the customer / reader do what they need to do on the site quickly and easily? (Find information, add content, order a book – whatever the goal(s) of the website are).
These demands are limited by three factors: time, money, and quality: the familiar “good, fast, or cheap: pick any two” project triangle.
Finally, there are three people in the process, again with competing goals: the contractor/designer, the client, and the customer. The contractor – the architect, in this case – is the designer; the client is likely to be a property developer, and the customer buys the completed house. Both the customer and client are interested in getting the highest quality possible at the lowest cost, but long-term satisfaction and use rests with the customer, no-one else. The designer, on the other hand, wants to fulfill the needs of both the client and the customer, charge a fair amount, and create something he can take pride in.
The primary goal of both the designer and client is to produce something that the end-user wants and can use. To this end, it is very important to divorce your ego from the design process. You are designing what the customer can use, not what “looks cool” (it is possible for a design to be both “cool” and usable, but successful examples are rare).
Be aware that no-one in this relationship may be able to express their desires for what they want to website to be: customers tend to be fickle and reactionary, clients simultaneously over-ambitious and parsimonious, and designers driven by ego.