I think the design process is completly different from coding, and I don't think the right tools for effective collaboration have already been built. Sometimes I wonder if that's even possible.
Design seems to work best when it's a one two persons vision than something made with a group, since it lack the level of objectivity found in coding.
Stuff like twitter bootstrap might be pointing in the right direction... o modular base that a lot of people can agree uppon and that can be easily changed or themed.
A programmer does lots of design. She designs APIs, component architectures, network protocols, database schemas, etc. All of these have a great dose of subjectivity in them. Design by committee also has a bad image here.
You are probably talking about graphic and typographic design. What does a designer do?
In my opinion a big part of design activity is communication. As a graphic designer your job is to visualize other peoples vision. A programmer's job is implement other peoples business rules. Not to develop their own. You need to find out about the values, goals, process, and language of your client and maybe even his customers.
Then a designer goes back to his Mac and fires up his Adobe tools for the next iteration. A programmer goes back to her IDE for the next iteration. This is not in a group for either of them.