My name is Jens Jacobsen, I'm a program manager on the team that creates the architecture tools in Visual Studio Ultimate. Welcome to my blog!
As a former usability engineer, my main focus in this blog will be on the usability of the Visual Studio Architecture tools. I wanted to start a blog with two purposes:
· To share with you and hopefully discuss with you some of the designs you see in Beta2 of the product.
· To learn from you where we went wrong, what we're missing, and what we're doing right. Thus, any comment on the user experience of the Visual Studio Architecture tools are very welcome.
Now, what do I mean by usability? One of the earliest and best definitions of the space comes from Ben Schneiderman. He divides usability into 5 areas:
· Ease of learning
· High speed of user task performance
· Subjective user satisfaction
· Low user error rate
· User retention over time
Let's look at each of them, and what they may mean for architecture tools and ours specifically:
Here I'm thinking about the ability for you or your team to take up and use our tools with a minimum of confusion and productivity loss. Things that we think drive this are:
· Consistency with the UML standard and typical modeling tool gestures. This obviously helps users transition from other modeling tools
· Consistency across designers, so that your learning transfers between them.
· Simplicity. Many users have told us that the complexity of some of the existing modeling tools make it hard for a team of inexperienced modelers to be productive with them. Are we being successful here? In some cases, it seems we are. We're getting good feedback on the Layer designer, for example, that it is very easy for a whole team to take up and use, but we're very curious to have feedback on the general learnability of our designers.
In some cases, architectural design is a contemplative process, and the time spent actively using the tool is miniscule compared to the thinking time. In those cases the efficiency of the tool is secondary. But more often, when the going is good and the ideas are flowing freely, you want to get them "on paper" as quickly as possible, and then it is important that the tool doesn't get in your way. A lot of my initial posts are going to be about small tips that makes it a bit quicker to use our tools.
Hah! Gotcha! Sometimes you make a mistake and a tool formerly snickers at you, forcing you to do large amounts of work to get it right again. This can be damaging for a design tool, where you want to stay in your flow and work creatively, knowing that you can change things later. On the other hand we don't want to be flexible to a point of confusing and overwhelming the user.
A lot of the work we've done since we had initial working bits, has been to add more flexibility to the experience, allowing you to explore different paths in your design without paying too high a price. Have we gone far enough? We'd love to hear from you.
I have recently been re-introduced to Legos, and I have to say that it is not hardship at all to join my kids in playing with them. I even find myself sneaking over to the Lego bins when they aren't around! Part of the reason is the very pleasant way that these things snap together. It just makes it that much more enjoyable. (As opposed to building IKEA furniture, maybe?)
There is definitely a parallel to that in architecture tools. Beyond the utility of the tool, there are other reasons why you might decide to draw a diagram in VS and not on your whiteboard or on paper. Is it a pleasure to grab a class shape and move it to where you want it? Does relationships snap to their shapes in a good way? Does the output look good? Let us know how you feel.
Ideally, as a user, you won't have to learn our tool from scratch every time you take a break for a week or two. Visual cues such as icons, and general consistency tend to improve this aspect, while non-standard UI and poor helper text tend to hurt it.
If you find yourself repeatedly looking for the same thing, then we've failed on this, and I'd love to hear about it!
Now, after all this talk about usability, I have to say a few words about usefulness. While I will start out talking mostly about usability, I'm also interested in how the tools fit your needs. Did we miss a key feature to complete your workflow? Do you have new ideas for how modeling tools can be helpful?
So there. Got the philosophy off my chest. Next week, I'll start a series of posts where I talk about small tips and tricks that we hope make our tools easier and more efficient to use.
In the meantime, I'd love to hear any comments about your experiences with Beta2 so far, and how the initial learning experience has been. Yelling is OK!