Wednesday, June 25, 2008

Designer & Developer Collaboration -hmm, yeah, maybe

Stop, stop, stop. Just stop. Step back. Breathe. Deeply. Again. Now let's talk. Designers are not developers. We are not and do not want to be. Yes, designers should know the material they are working with an in the case of interaction designers the material is in some way and to some extent code. So as a Designer you should understand some code and it helps even more to understand how it comes about. It always helps to appreciate the work of the people you work with.

But it cuts two ways.

And I am sick and tiered of the oversimplification of the designer job that reduces it to implementation and production. This is the simplification that runs through articles such as Google Enters Designer, Developer Fray, Designers who also develop have more power, and to a certain extent The New Iteration. In Bill Buxton's words, all of those articles focus on the part of the project where you get the design right, none of them pays any attention to the time spent getting the right design.

My beef with WPF

In my understanding WPF has two promises:

  1. A better UI platform with higher engineering efficiency and capabilities of a richer UI
  2. That developers and Designers can work together on the same artifact.

Let's get #1 out of the way. WPF has delivered on number one to an B+. With some of the improvements in 3.5 and planned for later we are nearing an A, and once we have real time bitmap effects I will gladly hand out the A+. Great job all around and just looking brighter and brighter.

For number two however, I am less impressed. To be fair, I think WPF and Blend has set themselves an impossible goal. How do you make something that is a real development platform easy to use for people who by-and-large cannot code. My most mundane example of where the platform sticks it head up in blend is the difference between items controls and normal controls. Some can contain one element, others can contain many. And well, just the whole concept of controls is not that hard to understand, but still is slightly foreign. And then there is the difference between "content" and "text" properties that you just have to know something about the platform to understand why those are different. Not so different form HTML + CSS just much larger and more complex. Try for instance to compare writing CSS with XAML templates and Styles and yell when you get to RelativeSource RelativeParent And remember how long HTML has been around and that you still have many designers working with web who work in Photoshop and Illustrator and never touch HTML. Yes, I know, developers don't like that, but this is al part of not trivializing design. Not even the 'get the design right' part.

Blend is a good application. It is far from complete but i strongly support any team that finishes an area before they move on to the next and I think the Blend team does that very well. It is however still an application for implementation. At least it is for now. I hear they are thinking about making it better for prototyping. When asked when I use Blend for my design work I usually respond that "I don't". Which is only a half lie. I do, but only for the implementation oriented last part of the design process. People are usually surprised because they have heard WPF should be a great designer's platform and so they assume that the deliverables at the end of the project = the design work. Which would be the same as saying the code = the developer's work which would leave out all credit for any kind of architectural thinking.

What grade should we give WPF for the designer + developer collaboration?  I am tempted at a very low score, but maybe that is unfair. Maybe what should get called out instead is that they grossly oversold it and yes, under delivered. And I think more people should read Karsten Januszewski & Jaime Rodriguez white paper and use their categorizations for the roles designers and developers play in a project. A lot of misunderstandings between developers and designers and between management and ICs could be avoided if people were real clear about the roles they expect in the project, and if people would understand that all this talk about WPF is about the last stage of the design process. It is what you start working with once you are done with the hard part; getting to the right design.