Traditionally, we both design and program each of our websites (and quite enjoy this holistic approach). Here and there, we have also been invited to take part in projects in the role of either designer or programmer. In each of these circumstances, the more interaction between design and programming, the better.
Seth Godin sees web design a bit different:
We need to start by divorcing the two practices….Start with design. Don’t involve the programming team until you’re 90% done with the look and feel of your pages. It’s cheap to change design if it can’t by supported by programming, and cheaper and faster to have design done in Photoshop before you commit to cutting it up and coding it.
In one respect, Seth is right on: it is often cheaper to make changes in Photoshop than once programming begins. However, leaving a designer to make all of the assumptions about how technical aspects are going to work together can be both dangerous and costly. A design that looks good isn’t always going to be realistic to program. Bringing a programming perspective in early on allows designers to augment designs based on such feedback.
37Signals has a similar approach:
Thinking of designers as someone who paints the application pretty in Photoshop is a common but unfortunate misconception…Designers decide and design the flow, the copy, the structure of the page, the programmers make all of it come to life by plugging it into the backend. All along both parties trade concessions on how to get the feature done as fast possible by grabbing the easiest value. (emphasis mine)
Thinking that a client is going to gain value from divorcing programming from design is simply not realistic. In fact, the more programmers and designers communicate throughout a project, the better a client is ultimately served (and will be presented with a stronger product for their investment).