My first introduction to Blend wasn’t a pleasant one, so bad that when Blend2 came out I promptly ignored it. However, while attending the Day of .Net Conference I sat in on a demo of Blend 3 with Sketchflow. It was impressive to see the improvement that has been made in the Blend, and with the addition of Sketchflow. To dive deep into the capabilities of Blend, I downloaded the trial version and set out to create a prototype for a future design of this blog (and do some R&D for how to use this on my project team). Below are some thoughts I had while cranking out this concept.
Pros:

Powerful Mapping Module - Flow maps and site maps are key to any design process. Using the SketchFlow Map module, a designer can make either of these very quickly. Blend 3 takes these models a step further by breaking them up into two types. A Screen represents a unique page in the design, allowing for a detailed set up of the overall structure of the site or application. Components are aspects of a page that can be used on many screens throughout the design. The SketchFlow Map module allows for connections to be made between the various screens and components in order to properly showcase the relationships that are involved. The various Screen and Components nodes can be customized via coloring coding in order to convey some deep meaning. In my example, blue nodes are main pages, green nodes sub-pages, red nodes navigation components, yellow nodes UI components, and orange nodes form components.
Components - Creating components that represent shared aspects of the overall user interface is a huge boon. Only having to create a form that is used on half a dozen pages only once not only saves design time, but also removes a lot of repetition in our work. Other applications have a similar concept by the use of master pages, or template, but the downside of these overall frameworks is when only certain aspects of the framework need to be used.

Low-Fi Look and Feel - The name SketchFlow really holds true with the overall style that is applied to produced prototypes. Though it is obvious that they were created with the aid of some program, the prototypes look down and dirty enough to really get the message across that this is just a concept. Though I haven’t tried it yet, during the demo of Blend3 it was stated that user defined controls can be created and the sketch style applied to them in order to maintain the low-fi look.
Behavior Set Up - A prototype isn’t really a prototype unless it has some level of interactivity. Setting up a simple click thru is as simple as can be. Through the use of the animation module, some pretty slick behavior is possible to set up without needing to get into the code. But, if you happen to have some basic skills in C# or VB.net, it’s possible to add some pretty complex behavior as well.
UI Control Library - The library of controls that comes included in the SketchFlow style covers just about any standard control you can think of. Included with all the standard controls are simple shapes that may need to be used for a variety of reasons. When prototyping is complete, and approved, a developer can simply remove the Sketch styling and all controls revert to standard Windows styling and are ready to be hooked up. (In theory)
Adobe Import - Blend has the ability to import any layered file from either Illustrator or Photoshop. Each layer gets inserted into the Blend project as a user control, which upon import is just an image. Once imported though, you can tell Blend that this image of a text box is an actual text box, and poof it’s a text box and all the styling from the image is retained. The has great benefits for the interaction designers, visual designers, and user interface developers that work closely together.
Animation - Todd Zaki Warfel has a great quote regarding prototyping, ‘If you can’t make it, fake it.’ The animation capabilities in Blend3 allow you to fake just about anything, depending on your animation skills and maybe some C# or VB.net knowledge.
Right Click - Inside the Blend3 environment, right clicking is really your best friend. The majority of the settings and commonly used functions are available via this little context menu. This is also the main method for which to set up any type of click-thru behavior you want presented in the prototype. Denny Payton, who gave the Blend3 Demo, made that comment ‘If you are not sure how to do something in Blend3, just right click.’
Annotation Feedback - Any prototype created in Blend3 can be packaged as either a Silverlight application, or a WPF application, and shared among the project team, stakeholders, or used for some user testing. The method of annotation is great, as people can grab a virtual pen or highlighter and mark directly on the prototype, these annotations are stored with the actual project for review later. A message box is also available for more detailed feedback and all is captured in the project files for reviewing later.
Test Data - Lorem Ipsum only gets you so far when adding content to a prototype. Plugging in real world sample data can be done in a variety of ways. If you happen to have a functional test database, tables from the database can be bound to any control. Something that was removed in Blend2, but added back in Blend3, is the ability to bind to an external XML file. The real gem of Blend3′s test data capabilities is creating some on the fly, and storing it locally to the project. This way drop downs and list controls don’t have to be empty and the data inside them isn’t hard coded.
Cons:
Buggy - During the course of creating my prototype the application bombed out twice. Now, some might say crashing only twice doesn’t sound that bad, but any crash is bad in my eyes. At first, when creating the sitemap, somehow two of the nodes had become linked together. Moving the most recent one would also move the last selected, the solution came during one of the crashes when the behavior went away when I reloaded Blend. Though the layout of the framework is pixel perfect between the various screens, some UI controls still jump around in the produced prototype. For someone who is a perfectionist in this regard, it drove me batty!
Interaction Design of Blend3 - For some reason, someone thought that the most common use of the scroll wheel is to zoom in and out of the both the Design module and the SketchFlow Map module. Eventually, I found the setting that allows you to rebind what the standard behavior is for the scroll wheel and my frustration eased. The only way to remove a node or connection in the map module is by right clicking and choosing remove from the menu. The delete key is completely ignored from this aspect of the UI. This caused many mental ‘WTF?’ moments.

Structuring Site Map - While the SketchFlow Map module provides great value for visualizing the structure and flow of a site, it’s easy to create a very complex and confusing map for something more than a simple site map. It becomes difficult to follow the connection lines with the crisscrossing of each other, or placing component nodes in a meaningful location when they are shared by many screens. Hopefully, in future versions this module gets a bit more flushed out.
Component Placement - Creating common aspects of the user interfaces once, but using them in many places, is a great advantage for any designer. But, the component has to be placed individually on each screen it’s linked to. This can make the prototype look clunky since the same component might jump around as the prototype is traversed if not placed exactly right. This could be easily fixed if the background size of each component was the same as the overall size of the interface. When linked to a screen, the component gets automatically placed in the proper place.
Screen vs Artboard Size - There is a huge disconnect between the size of the screen and the artboard that contains the UI controls. Now, I understand this disconnect is in place for detailed animations, but it would relieve some confusion when creating just a simple interface with no animation if the sizes were tied together. For the prototype that I created, it wasn’t until I ran the project that it became apparent that the screen size did not match the interface I had created.
Grid System - Though Blend3 has an underlying grid system you can use to place controls, it isn’t possible to create grid lines on the fly that are shared across different screens. This was the other reason why when the prototype was ran, the screen components would jump around on me. It’s possible to customize the underlying grid system, but it is application wide rather than limited to just the project.
Adobe Import Limitations - The way Blend3 imports the files from Illustrator or Photoshop put a huge burden on the designer working in those applications. The layers need to be set up so each UI control has it’s own layer and the layers are organized in a detailed manner. Now, having organized layers in either Photoshop or Illustrator is the ‘right’ thing to do, but sometimes time just doesn’t allow for it. It’s a good step in the right direction, but still needs a bit of work.
Word Export - Axure is hands down the best when it comes to turning a prototype into spec, Blend3 is taking it’s best stab at it too. The downside being that the produced document is very flat and only creates the images of the user interface. It can be argued that any spec is better than none, but there’s some good information you can attach to controls when they are being placed that don’t get exported into the document. Again, good first step and it will be interesting to see how this feature gets flushed out in the future.
Annotations Limitations - While being able to annotate directly on the prototype is great for gathering feedback, but in Blend3 it’s limited. Annotations are not store per instance of the prototype, but shared across different uses. This pretty much limits prototype review to internal teams and maybe key stakeholders. Allowing the annotations to be shared while performing user testing raising the risk for bias and invalid results. This seems like a simple enhancement to this features, and hopefully become available one day.
Media Sketch Controls - Though the control library available in the SketchFlow part of Blend3 provides almost any ui control you would need, it is missing a few. Generic placement boxes for media, like pictures or videos, are missing. Requiring the designer to use the generic shapes and text to put in placeholders. Granted, you could create a user control to fulfill this need, but it would be nice for generic media controls to be available out of the box.
Repackging Prototype – One of the promoted benefits of using Blend is to create a prototype or interface that could be used in either a WPF or Silverlight application. Sadly, it isn’t possible to just repackage a project into one of these formats when using SketchFlow. So, if you create a kickass prototype in WPF and want to host it as a Silverlight app in order to get some feedback, sorry that’s just not possible. (Like I wanted to do!)
Overall Thoughts
Seriously, kudos to the designers and developers at Microsoft for getting Blend to such a state that you can do create some kick ass prototypes. Though it has some flaws, like any piece of software will, it provides some great benefits for designers. The value could really be seen for any designer working in a Microsoft development environment, creating Silverlight apps or Desktop apps using WPF. The need for other prototyping tools like Fireworks or Axure that don’t necessary provide good output for developers in this type of environment could be replaced by using Blend3 with Sketchflow. I’m not saying one tool is better than another, but when you take into account the environment the project is being developed in, one tool may be more beneficial than another.
Images from the prototype I created









