Designers and developers have always had a rocky relationship when it comes to building software. Oftentimes, designers are disappointed by the visual fidelity of an application. Programs rarely come out looking the same in production as they did in the Photoshop comps that were delivered to the developers. On the other side of things, developers often cite the technical impossibility of the original concept work, reacting to complaints by asking designers to stop nitpicking every pixel. As someone who has worked in both roles, I can fully understand the frustrations on both sides.
So what can be done to mend this relationship? First of all, there needs to be a shift in the typical software project workflow. Traditionally, designers complete their work early within the project lifecycle, then move on to other things, leaving the developer to translate their ideas into functional applications. Design methodologies need to embrace greater end-to-end collaboration between designers and technologists (see recent article by Sean Madden in the design mind Winter issue). But the onus isn't entirely on the design team. Software technologies need to develop the ability to incorporate a designer's original assets into the production itself, so that the developer doesn't have to recreate everything when building the UI. Luckily, Microsoft has recognized this problem and taken a huge step towards fixing it with the new Windows Vista presentation layer, Windows Presentation Foundation (WPF).
The "designer-developer workflow" tagline has been heavily promoted in Microsoft press pieces about WPF. But how does it really address the issue? Great strides have been made via a new UI markup language called XAML. XAML is an XML-based language that is very similar to HTML, a likeness that makes it much friendlier to designers. The goal is that, within a given WPF application, designers can build the user interface in this XAML layer, while the developers create the programming logic and data layer in C# or any other .NET programming language. Moreover, designers don't have to hand-code their XAML (unless they want to) thanks to a set of new visual design tools released by Microsoft.
The Microsoft Expression suite of tools is geared for visual designers who are creating interfaces for WPF applications. Expression Design is very similar to traditional graphic design tools like Photoshop and Illustrator. The major difference is that designers can choose to export their designs as XAML code, which can then be easily imported into Visual Studio for placement in the final application. Another tool, Expression Blend, allows designers to create interactive elements and animations that can greatly increase the visual strength of an application. This tool is very similar to Flash and After Effects, but - just as with Expression Design - includes the ability to translate all content to XAML code, for inclusion in the finished application. Finally, the actual pixels created by the designer end up in the finished product.
So is this the solution we've been waiting for? I'd say that it is a step in the right direction, but by no means a cure. Designers are very comfortable with their current design tools, and it is challenging to get them to work within the new environment of Expression Design or Blend. In many studios, the new capabilities are simply not utilized. Perhaps a greater problem, I have found that a basic knowledge of XAML is essential in order to successfully design for WPF. The XAML that is generated by the design tools alone is often not constructed in an optimal way. This is very much like using a WYSIWYG editor for creating HTML websites. Designers or developers must, at present, fine-tune the results.
There is more that can be done to further improve the design-developer workflow, regardless of what technology is employed. Both parties need to take the initiative to learn more about what the other does. Designers who are unwilling to learn basic programming skills will find their value in the marketplace rapidly diminishing. Likewise, developers with no desire to pay attention to aesthetics or learn basic design skills will suffer the same diminution of worth. WPF is a starting point for resolving the issue, but it is up to us to broaden our disciplines, to work together towards a more effective process of design.