A few days ago I was visiting the Infragistics headquarters. I set aside half an hour to stop by Grant Hinkson‘s office. Grant is the Visual Designer working on a new skin for Podder. I wanted to check in with him, and work through any issues or questions that might have cropped up during his work on his new Podder skin. I had a WPF revelation within those thirty minutes.
For this project, Grant is acting solely in the capacity of Visual Designer. He is a good Developer, but I don’t want him to need those skills for this project. My objective is to design Podder in such a way that he, the Visual Designer, never has to write a line of code. Naturally, this means that he is living in Expression Blend to get his work done. As we worked through little issues and gotchas, I was amazed at how fluent Grant is in Blend. I must admit, I never use Blend. He was flying through the menus, dropdowns, panels, etc. so quickly that I could not follow along!
What amazed me even more was the thought processes he went through to get his work done. As he expertly navigated through Blend, he was saying things like “We’ll need to Storyboard that…I’ll just record a Timeline for this…Now I’ll just trigger the transition off that event…We’ll group those elements together…” I never, ever say or think things like that when working with WPF.
This experience made me realize that Visual Designers think about WPF in a very different way than Developers. So different, in fact, that there is a very real potential for a communication barrier to arise between the development staff and the visual design team. Luckily for me, Grant is an accomplished WPF developer, so we were both pretty much on the same page. However, it is easy to imagine working with a Visual Designer who does not have the development experience, and having trouble finding a common ground of shared concepts to discuss. The further away from “visual design” you go, the more murky the communication can become. For example, how do you discuss the proper way to create a declarative data binding with someone devoid of development experience?
I now believe it is imperative that WPF developers are at least comfortable using Blend. Even if you have no intention of using Blend on a regular basis, it will prove beneficial as you interact with people who live in Blend. The thought processes of getting work done, the terminology/lingo, and the artificial limitations imposed by Blend are all things that we, the developers, should know about. Not only that, but it is a very interesting and powerful tool!
I’m excited to learn Blend!