Being a Silverlight developer in the trenches, I think about this workflow issue that designers and developers have. Almost every day at work. A good interview with Mike Wolf from Cynergy explaining some best practices can be found here: Designer / developer misconceptions podcast. I'm sure that the workflow he describes works well at Cynergy. However, I'm not so convinced that designers can work in Blend successfully. At least not on their own. They need a lot of help from developers. I work with several "designers" who do prefer tools that allow them maximum creativity. The reason I just put the word "designers" in quotes is very simply that to be called a designer at some software companies, it would require the type of knowledge like designers at Cynergy have. One perception that works against the typical designer is that Adobe software like PhotoShop, and hardware like Mac laptops are the best toolset for them. If they are going to use Blend, they either need to run it in Parallels Desktop for Mac or have another separate Windows machine. So the demands on designers with the new capabilities in Expression Blend are pretty high. On the other hand, when technology changes and languages for software change, as a developer I'm constantly having to stay current with the tools and techniques. Why don't designers think they have to keep up to date?
I listened to the podcast and wrote down what I interpreted (not a transcript). It will probably come in useful when I'm working on improving the workflow at my current employer.
My Notes:
Mike Wolf - Principle Developer for Silverlight and WPF Practice at Cynergy
interviewer - Erik Mork of Spakling Client
Misconceptions of the Designer Developer Workflow
Designers think in different ways than developers. Designers think in layers instead of controls and functionality. At Cynergy designers work with developers by assisting designers using Blend with direction on control development. Developers need to constantly think about performance. Complications during the design of Silverlight applications need to be re-worked to create better performing solutions. The single hand off doesn't work. There has to be communication back and forth throughout the entire process.
The physical proximity of the designer to the developer is ideally in the same or near same time zone and can be made easier with use of instant messaging.
Fireworks is a popular design tool to use for exporting design into Blend. Designers currently do not live in Blend. They live in PhotoShop, Illustrator, Fireworks, or other tools like those. It is an unrealistic expectation to have designers work entirely in Blend. A migration step from the favored design tool to Expression Blend is the normal process.
A designer will go into Blend and make small changes, but will go back to their favorite tools to make larger changes. The migration step using Blend can happen more than once.
Photoshop drop shadows turn into drop shadows into Blend. Inner glow, on the other hand does not convert via an import to Blend. Designers need to understand the limitations of Silverlight enough to know what to avoid but focus on not loosing creativity. There is no inner glow for html, but there are hacks for it. The same kind of hacks made for html need to be made for Silverlight. Knowing your toolset but demanding your experience in design comes first.
It is often thought that the designer is only working with one workflow. The developer has to wait for design assets or changes, or vice versa. There are actually ways to better structure sharing of resources. Merged resources and merged dictionaries in Silverlight. The Visual State Manager is also a powerful tool to be able to do states. The designer can work with those states within Blend working hand in hand with the developer.
There has been a big switch in the evolution of rich technologies. The old way was based on developers trying something to see if it would work first. Once it was working, a designer would attempt to cover the developer's idea of the user experience. Now it is driven by a front to back approach where the experience drives the development requirements. Specific requirements can be made into wireframes, then comps, then the developer works with final comps. Xaml is handed over by the designer based on the comps so the developer can begin working on implementation details. The designer does more work up front to determine the actual user experience details before handing comps with those details to the developer in the form of comp documentation as well as Xaml in a Blend project.
1ec9c8ad-6dc6-4ceb-b4d1-13de6e1b54d8|0|.0
Code, Silverlight