Whenever we run a WPF or Silverlight training event or lab, the one question that is guaranteed to come up relates to the designer / developer workflow on a project team.
In the old days of Win32 or Windows Forms, the workflow was straightforward (albeit extremely limiting). A lot of desktop application development teams I've seen, particularly in the enterprise, don't even include a formal role for a user interface designer. Although the development team might include a business analyst or someone in a interface development role who would be doing some basic interaction design and application flow work, the actual interface would be mostly designed and implemented by the same programmer who was writing the underlying logic. On the other hand, for the projects where design was taken more seriously as a core element to the success of the application, the design and development teams were separated into different silos. The design team would often present their output in the form of a color printout of a screen designed with Photoshop in complete isolation from the actual tools or platform available, and the developer would then have to jump through hoops to painstakingly reproduce the design with tools that were never built for that purpose. The end-result was typically a disappointing compromise between the ideal that the designer had envisioned and what was practical with limited and stretched development resources.
WPF and Silverlight revolutionize that process by bringing the designer into the heart of the process. XAML becomes the shared substrate that can be used by both designers and developers to communicate their intent. Finally, the designer is not divorced from the development process: using a tool like Expression Blend to produce XAML, their artistry is no longer the inspiration for the final interface design, it is the final design. For the developer, they no longer have to waste time recreating controls that already exist in the toolbox simply because the designer has implemented a different visual representation; they can concentrate on the engineering challenges that will create the rich engine that powers the interface.
Such a transformation isn't without challenges, however: it requires new forms of collaboration, different project team structures, and an updated cookbook of best practices. We're keen to help you retool your workforce to take advantage of WPF and Silverlight, of course, and so Jaime Rodriguez and Karsten Januszewski have spent the last couple of months distilling their own experiences and interviewing early adopters into a new whitepaper that addresses many of these issues and opportunities in great depth. This is the first of a series of content on this and related topics; we hope to produce several more in the run-up to MIX08.
Read the whitepaper online or download a copy for offline reading or printing. What best practices would you suggest to a software house or enterprise embarking on a new WPF project? What else should we be covering with this series of whitepapers? Let us know what you think.
I think Microsoft's push on the 'designer front' is misguided, primarily because it greatly overestimates the presence of graphical designers within most software development organizations. In my experience of many years, there are most often too few good software developers on each team and no corporate interest in funding adequate QA resources, let alone a graphical designer as an added team member.
So, the reality is different than Microsoft would have us believe. The importance of XAML, WPF and Silverlight is undeniably that the best of software developers will themselves have to expand their horizons to include much-improved graphical design skills - those that continue to rise to the top will take on the dual role of graphical designer and software developer. The issue was never that the best of the best can not do both, but that the technology base did not make the dual role as possible as it needed to be - and anachronisms like Flash only furthered misconceptions regarding a dichotomy between designers and developers.
Microsoft's focus on this currently unnecessary division of labor and efforts to ease collaboration between what was previously two groups is unfortunate. I trust the future will prove out that there were far more developers capable of excellent graphical design than there were designers capable of being excellent software developers - and pure economics will, as always, mean that one contributor be hired where two were previously required...
Bob, you make some excellent points here. Building the business case for good design (whether graphical, functional or interactional) is a challenge in many organizations today. In many cases, as you suggest, developers will wind up having to broaden their skill base to incorporate a greater focus on UI. I think the whitepaper makes it clear that there are indeed some folk who can straddle these roles with some success; we've started to use the term "devigner" internally as one form of shorthand for this hybrid role. Our experience is that WPF "devigners" are in extremely short demand, are highly prized by the organizations that have them and can command a very high market rate for their skills. So if you have the capacity to grow in this role, go for it - you'll do very well!
Nevertheless, as Chad Brown's interesting commentary on this blog post indicates , this isn't enough in many cases. While it's a dangerous stereotype to presume that no developers have an eye for design, the reality is that if an organization doesn't value design, they won't prize having a developer who can do it any more than they prize a specialist designer. And we should give the design industry credit for the expertise they have - just because other people can do this work, doesn't mean that they are the best at doing it. I've got a digital SLR camera that I know how to use quite effectively, but that doesn't put me on an equal footing with a professional photographer.
I'm intrigued to see whether your final prediction holds true. I think we're agnostic as an organization on this front - we simply want folk to be able to build great software. There's no vested interest for us as a company in forcing others to divide this into two roles. Every MSDN Premium subscriber has a copy of both Expression Blend and Visual Studio 2008, and they function very well together as tools.
Thanks for your thoughtful contributions, Bob - it's an interesting discussion that will no doubt continue.
Hi, I work for a gold cert partner and we are in the lucky position to have a skilled designers but we still have a missing link! You mentioned that "Every MSDN Premium subscriber has a copy of both Expression Blend and Visual Studio 2008" but our designers are asking for Expression Design so they can create some content. Apparently it isn't classed as a development tool and therefore isn't included in MSDN. We don't want all the media stuff that Expression Studio gives but it doesn't like there is an alternative.
I believe that typical Windows development shops will have a hard time seeing the benefit of having a full time designer. It was simply drag some buttons on a form and be done with it. I was in that environment for a few years.
I then moved to ASP.NET around 2000 (still called ASP+ - even before Beta 1) and have been working on ecommerce applications since then. In the web world, it is ALL about the design. Silverlight will shine through here and then the WPF shops will catch on. It is so aggrevating for both the designer and the developer to see a great piece of artwork that could work so great as a design and be limited by the technology (or knowledge on how to utilize that technology) to the point that the end result is no where near what was wanted.
Having the designers work in the same tools that the developers do is absolutely wonderful. I think the future is going to be excellent because of this move to have the designers and developers working from the same assets.
No one can be an excellent developer and an excellent designer. One will be stronger in one field or the other. Today, trying to find that mix is very hard. Because of this technology, it will become easier to find that person because the tools are easier (and more accessable) to use from a developer's stand point. Plus it makes it easier for the designers to understand where the hooks go and why naming things a certain way may be beneficial. This will cause some designers to learn some code and some developers to learn some design skills. Regardless, for projects that require outstanding design work and outstanding architecture and development work, there will be two (groups of) people doing the work - designers and developers.
Rob, the full Expression Studio is included as part of Visual Studio Team Suite / MSDN Premium; see here for details:
It's also available as a separate product. However, you're correct that Expression Design can only currently be purchased as part of the full Expression Studio suite.
I don't disagree with the majority of what Chad indicated, with the exception of his claim that no one can be an excellent developer and and excellent designer. Absolutely untrue.
I am reminded of the days prior to the dot-com debacle, when times were good and no one was talking about software development and desgin moving overseas. In those days, every company seemingly had a CTO, one or more architects, UI developers, infrastructure developers, database specialists and so on and so on. Then things went bust. Fewer and fewer companies maintained CTO positions, architect positions became much harder to come by and most developers who were still employed found themselves pushed to do everything from database design, infrastructure development, UI design and development, testing and deployment. The economic realities forced upon us the need to diversify and be excellent in areas we might not have previously imagined possible.
While times are somewhat better, expectations to we be diverse remain and the good times have done little to erase the ever-lurking spectre of development being shipped overseas.
The economic realities are unchanging - will Chad's company maintain the luxury of a design staff once our economy begins, inevitably, to shift in the other direction? Perhaps not. The push to do more with fewer people will continue to move relentlessly forward. Wise developers will embrace the emergence of exceptional design/development technologies from Microsoft and themselves demonstrate the ability to function both as excellent designers and developers, proving Chad incorrect.
Where one can do the job of two, only one will remain...
I'm sure there's some truth to that. But I wonder how many developers could design a user interface as rich as Windows Vista or Yahoo Messenger? It takes more than versatility - it takes artistry. Some companies don't care about that, but in an increasing number of software projects (particularly in the consumer space), good design is what sells the application. It lends an air of quality and polish to the application, it makes it more likely someone will make an impulse buy in a store, it increases customer satisfaction. That's what I meant earlier when I talked about building the business case for good design.
Best wishes, Tim
Lo sviluppo di applicazioni della nuova generazione passa anche per nuovi paradigmi di interazione uomo-macchina,
The New Iteration when working with WPF
Very nice whitepaper from Karsten Januszewski and Jaime Rodriguez . This is the type of communication