Architecting the User Experience

No Comments »

Just came across some information on some MS ‘informational session’ on Architecting the User Experience. Sure, it may be just some blatant advertising for the latest MS product, but it’s free, and it’s three hours. What the heck.

It is targeted towards “Senior developers who are responsible for architecting the solutions they develop or who are interested in becoming an architect in their organization. Software design and creative decision makers that need to know what the next generation of user experience focused technology will enable them to create.” and mentions “we will discuss how architects can work with software design professionals in new and innovative ways to create the next generation of ‘experiences’ and products that will be demanded by consumers and the enterprise.” That is really the role I want to take on: being the liason between what the user needs/wants/expects/deserves and what the organization can/will provide.

Somehow, I anticipate I will get more out of what I interpret their discussion to be than what they will actually present. But that’s ok with me..

Like it? Share it! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • bodytext
  • del.icio.us
  • Facebook
  • E-mail this story to a friend!
  • Print this article!
  • Mixx
  • Google
  • TwitThis
  • BlogMemes
  • Furl
  • Ma.gnolia
  • NewsVine
  • Pownce
  • Reddit
  • Sk-rt
  • StumbleUpon
  • Technorati

the language of accessibility

No Comments »

I am still working on reinstating my rss feeds from the Great Reimaging Event of 2007, and today I added back 456bereastreet.com. I quickly fell into reading “adding vs. removing accessibility“, which in turn lead me to Jeremy Keith’s article on “the language of accessibility“.

I had the chance to see Keith speak at @media last June, and I was quite impressed with his ability to make topics palatable for the layperson. This article did not disappoint!

I had actually been speaking earlier today about my love for languages and linguistics and how I feel they contribute to my work in the technology field, and how that relates to my work on accessibility. It’s all about communication. These articles fell directly in line with what was on my mind.

Keith mentions the translation for the concept of “accessibility” into German - it roughly means “barrier-free”. Certainly, the concept is similar, but there is one stark difference. Something that is moderately accessible is still accessible, whereas if something has but one barrier, it is NOT barrier-free. It is a matter of a definition being positive or negative. This is something I have been trying to communicate when I’ve been talking to folks at work about assessing our products for accessibility (specifically Section 508 compliance). It can be easy to look at a site and say it is not compliant (one instance of missing alt text can do that), but it is more difficult to positively affirm its status.

The articles speak of simple sites (when coded semantically) being accessible, but how layers of complexity may render it less so. It made me think back to my work with Maxim, when we had a focus on accessible sites. At the time, we took that to mean “build sites that work on Lynx, with few graphics and little interaction”. Pretty boring stuff, but we met our goals at the time.

Now, we want to figure out how to build the latest and greatest site, but we have to ensure we are not losing anything in the process. I have seen a movement away from using standard HTML elements for the sake of visual style or ‘neat-o effects’, but in the end, I think we have to remember that we are working within the web medium, and not foresake that. The built in controls are there for a reason. This is not to say we can’t extend that, but we should leverage what the platform offers us, rather than reinventing the wheel.

A specific example I have in mind is the use of images of checkboxes rather than checkboxes themselves. The checkbox is a standard form control with specific behaviour. We should capitalize on the familiarity of the element, rather than obscuring it with site-specific behaviour that will require the user to re-learn something.

Wow, talk about a tangent….. that’s what happens when wordpress eats your post and you’re forced to start anew. The first post was succinct. In trying to recreate, I wandered… apologies, all! Basically the idea was that we need not lose site of the purpose of our field: to ensure our users can get the service they desire. While we can add to make that experience more enjoyable for some, we must not do it at the expense of others.

“One person’s preference is another person’s real need. It may be that a group of users finds it easier with Ajax, but if another group of users finds it completely impossible then you’re cutting people out, and you’re doing it for basically nothing.

“I think of it as a hierarchy, basically, where accessibility is the most important thing, and usability comes next, and preference and design and aesthetics comes next. All of those things are important, but if one affects the other then you have to think which is the most important.

“And to my mind, accessibility is always the most important, because accessibility impacts on what people really need. Everything else is just preference.” - James Edwards (co-author of “The Javascript Anthology: 101 Essential Tips, Tricks and Hacks)

Like it? Share it! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • bodytext
  • del.icio.us
  • Facebook
  • E-mail this story to a friend!
  • Print this article!
  • Mixx
  • Google
  • TwitThis
  • BlogMemes
  • Furl
  • Ma.gnolia
  • NewsVine
  • Pownce
  • Reddit
  • Sk-rt
  • StumbleUpon
  • Technorati

Access U

No Comments »

I will be taking the following at “Access U”

Enterprise Accessibility Compliance Concepts (Ferass Elrayes)

This high-level seminar introduces issues and concepts related to implementing enterprise accessibility policies and standards in a consistent and global fashion within an organization. It discusses the requirements of the various stakeholders and how these requirements can be met in the context of enterprise compliance implementation. Some of the topics include:

  • Selecting the appropriate standards for the enterprise.
  • Implementation Requirements: Content Authors, IT and Management
  • Structuring the workflow for accessibility
  • Content Verification
  • Content Remediation
  • Compliance Tracking
  • Infrastructure Issues

Accessibility Policy Development & Implementation (John Moore, Ron Lucey & Mike Moore)

Moving Large Organizations Towards Accessibility and Standards (Chris Massey)

With the current lawsuits moving forward involving the ADA many large companies and organizations are asking questions about how to change a large system and make their Internet and intranet presence accessible. This class will cover the ins and outs of policy making and strategies necessary to implement a standards based design program on a large scale. Some of the topics include…Determining your current position, where to begin, who is responsible, fighting the old guard, and advice on potential administrative problems and how to effectively handle them. Pre-requisites: This is not a technical class in that we will not be discussing code in depth. This class is more appropriate for managers and policy makers within a company.

Accessibility- What NOT to do. (Glenda Sims)

The simplest of accessibility tasks can be executed in ways that will pass the filters of software testing tools and yet leave the page virtually unusable. This course takes you beyond Bobby and other automated evaluators to gain the experience to understand the real effects of your design choices.

Accessible JavaScript Strategies & Pitfalls (Derek Featherstone)

JavaScript has long been considered off-limits for accessibility reasons. In this course we’ll look at how a modern approach to web development brings JavaScript back into the game and how it can be used to enhance interactivity without compromising interoperability or accessibility for people with disabilities. (Prerequisites: Experience with HTML and CSS are expected. Some JavaScript experience would be helpful with the code portions of the course but is not required to understand the concepts presented.)

Testing for Web Accessibility (Jim Thatcher)

How do you find out if a web page is accessible? How do you determine if your (or their) web page complies with the Section 508 Web Accessibility Standards? How about the W3C Web Content Accessibility Guidelines (WCAG)? Do automatic testing tools work? Which guidelines are testable? What about the free one page testing tools? Is there a role for testing tools in the enterprise? Which tools make your job easier? This course will talk about accessibility from atesting perspective. This is not just about testing tools, it’s about testable guidelines and tools that do the tests.

Like it? Share it! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • bodytext
  • del.icio.us
  • Facebook
  • E-mail this story to a friend!
  • Print this article!
  • Mixx
  • Google
  • TwitThis
  • BlogMemes
  • Furl
  • Ma.gnolia
  • NewsVine
  • Pownce
  • Reddit
  • Sk-rt
  • StumbleUpon
  • Technorati

Conference Update

No Comments »

I just signed up to attend Access U. I then tried to enroll in the “Real World Accessibility for Ajax and Web Apps” seminar the day prior. There was some problems in registering, so I called the info line and got on the phone with Derek Featherstone himself.

Turns out they are announcing later today that the workshop is going to be postponed due to lack of interest. Booo! He did ask if a September date worked better for me, but I said that I was in Ohio, and so I wouldn’t make it out to Texas for a one-day session. At that point, he asked me a bit more about the Midwest, if there would be some interest locally. I told him that I certainly felt so. I told him how some of us went to Chicago last year for a conference and it would be great to have it closer. He did ask which was the better location, Columbus or Cincinnati, and I hestitated between the two. Ultimately, though, I expect Columbus would be a bit better… (?) So anyhow, he said he would get in touch with me, so perhaps we can arrange something closer.

So the bad is: no workshop next month. The good is: hopefully we can bring something local!

Like it? Share it! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • bodytext
  • del.icio.us
  • Facebook
  • E-mail this story to a friend!
  • Print this article!
  • Mixx
  • Google
  • TwitThis
  • BlogMemes
  • Furl
  • Ma.gnolia
  • NewsVine
  • Pownce
  • Reddit
  • Sk-rt
  • StumbleUpon
  • Technorati

pimped out ads

No Comments »

I’ve been a google user since the last millennium. I’ve listened to “the search” on audiobook, read some old student paper by Brin and Page about some odd algorithm they referred to as “PageRank”. But I’ll admit it, the notion of a “pimped out search engine” to use “when your life depends on it” is intriguing.

The new ask.com tv ads are interesting, to be sure. I didn’t realize it was the creator of ask.com who starred in them, I thought he was just same interesting character:

In another ad, he talks about how if a bear is chasing you, you don’t have time to go to multiple engines. They’re funny, they’re just so random.

Ads are ads, they’re not going to get me to change my alliance to google. But the idea behind what ask.com offers IS intriguing. Categorizing, pictures and additional information.. wow, it’s web2.0 at its finest. Yes, the notion of folksonomies and tagging content is supposed to give the user some sense of ownership and community.. but then, doesn’t it make sense that it is the creator of ask.com that’s showing it to us? He is personalizing it. He is the connection that is gathering and organizing and sharing the information with us. It’s not some soulless “algorithm”.

Good job, ask.com. Kill a butler (excuse me, retire) and become MORE human in the process….

Like it? Share it! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • bodytext
  • del.icio.us
  • Facebook
  • E-mail this story to a friend!
  • Print this article!
  • Mixx
  • Google
  • TwitThis
  • BlogMemes
  • Furl
  • Ma.gnolia
  • NewsVine
  • Pownce
  • Reddit
  • Sk-rt
  • StumbleUpon
  • Technorati

web2.0

No Comments »

I’m not one for buzz words or hype. A few years ago, everything needed to be “AJAXified”, even if no one really knew what that entailed. Now it’s more generic, “how can we make things more web2.0-ish”. My background in languages/linguistics may be to blame for the fact that I like to define a concept before I talk about it. I believe for some, web2.0 means

  • big bold fonts
  • folksonomies - categorizations and ‘tagging’ by users
  • AJAXified sites — allowing the user to interact with a web application in a ‘free-flow’ (non-linear) manner

I recently heard talk of law firms having trouble with the latest series of law school graduates. They are not used to ‘targeted researching’ - they are the google generation, used to associative information gathering.

Many new “web2.0″ sites allow users to ‘tag’ content. This allows users to collect and categorize information in ways that meet their needs, and it also provides the user with a sense of ownership of the content. For me, this is the key piece of what makes something part of ‘web2.0′. The internet initially provided information to a user, now it is a platform for users to interact WITH information.

I want to figure out how we can leverage this new way that users are using the tools that are out there, rather than trying to force them back into an old way of thinking and doing. However, the point was raised that people often evolve quicker than society [ok, that wasn't exactly the point that was raised, but that's how I'm choosing to interpret it], which means that we will be expected to continue to work within constraints we have naturally evolved beyond. Can we bootstrap it to come along with us, or must we find ways to satisfy existing processes even if they are at a more base level than we are capable of?

Like it? Share it! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • bodytext
  • del.icio.us
  • Facebook
  • E-mail this story to a friend!
  • Print this article!
  • Mixx
  • Google
  • TwitThis
  • BlogMemes
  • Furl
  • Ma.gnolia
  • NewsVine
  • Pownce
  • Reddit
  • Sk-rt
  • StumbleUpon
  • Technorati

Critique of “The Value of a Usability-Supporting Architectural Pattern in Software Architecture Design: A Controlled Experiment”

1 Comment »

(Prepared for a Grad School Assignment, October 2006)

Patterns are commonly applied by software developers to solve re-occurring issues.
The article “The Value of a Usability-Supporting Architectural Patterns in Software Architecture Design: A Controlled Experiment” assesses the effectiveness of a USAP (Usability-Supported Architectural Pattern) in considering various usability concerns in modifying a system architecture.

Students were placed into one of three groups and evaluated on the number of usability-related issues they considered, as well as the time this task took. One group was provided with a usability scenario, one with this scenario as well as a list of general responsibilities to be taken into account during implementation, and the third group with these two elements as well as a sample solution to a similar problem.

The results of the experiment were not terribly shocking; those who were provided with more information identified more usability concerns. There were some individual variation, but there was strong evidence that “USAP for canceling a command can already be considered a valuable tool for modifying software architecture designs to address a specific usability concern.”[1]

As may be evident, the results of the experiment did not particularly capture my interest. I was far more intrigued by their closing comments:

“Perhaps the greatest surprise, however, is not that USAPs help to produce a more complete design, but that they are necessary at all. There is an implicit assumption in the world of human-computer interaction, and perhaps more generally, that software engineers simply know how to implement whatever requirements are provided to them. While this may be true in some areas which are more traditionally included in the training of either computer scientists or software engineers, it is not true in the case of software engineering for usability.”[2]

As a front-end developer in the User Experience group of a large online information provider, this is an area of personal and professional interest. Often system requirements either leave out usability considerations completely, or they are not captured in a measurable fashion. I was happy to see the article comment on how traditional software engineering practices do not implicitly meet usability needs.

Usability as a Quality Attribute

It is becoming increasingly obvious that usability has significant architectural implications. This is a departure from past perceptions, which were such that

“Since the 1980s, usability has been treated as a subset of modifiability, that is, architects commonly separate the user interface from the functionality of the system and assume that usability issues that arise during user testing can be handled with localized modifications…”[3]

This sentiment is echoed in other sources, that usability was often perceived to only be significant in “decorating a thin component sitting on top of the software or the “real system”[4] It is clear through the description of the experiment in this article how short-sighted this opinion is. Color and the physical arrangement of components do not a usable product make.

According to usability expert Jakob Nielsen,

“Usability is a quality attribute that assesses how easy user interfaces are to use. The word “usability” also refers to methods for improving ease-of-use during the design process.
Usability is defined by five quality components:

  1. Learnability: How easy is it for users to accomplish basic tasks the first time they encounter the design?
  2. Efficiency: Once users have learned the design, how quickly can they perform tasks?
  3. Memorability: When users return to the design after a period of not using it, how easily can they reestablish proficiency?
  4. Errors: How many errors do users make, how severe are these errors, and how easily can they recover from the errors?
  5. Satisfaction: How pleasant is it to use the design? ”

[5]

Initially, I sought to map these quality components to the tactics we assign to other quality attributes, but proved to be a fruitless endeavor. These were not action items but rather measurable attributes.

I was interested to note that in the same way that quality attributes may negatively impact each other, so too can these quality components. That is, learnability and efficiency are often at odds, similar to how one must strike a balance between the quality attributes of performance and availability, once the relative importance of each is determined.

Another way in which usability seems to vary from many other quality attributes is explored in the article “Designing software architectures for usability”, which points out that
“Most quality attributes focus on characteristics that are desirable from the point of view of the software development organization. Usability, on the other side, is a quality attribute perceived directly by the client/user”[6]

This has significant implications for the perception of the importance of usability concerns. The architectural business cycle as described in the textbook identifies the following major influences on the architecture: the stakeholders, the developing organization, the technical environment and the architect’s experience. The client/user is notably absent. Without representation from this unknown entity, how can we reliably ensure their needs are met (or even surmise what these needs are)?

The article did a fine job showing how usability considerations are increasingly recognized for their significance, and are in fact a legitimate quality attribute that can and should be accounted for throughout the architectural process.

Incorporating software development processes

The article introduces the notion of a Usability-Supported Architectural Pattern that may be used by software engineers to aid in meeting usability concerns through the development process. Many other articles I referred to also explored the need to provide engineers with tools or schemas that could be incorporated into their current processes.

Earlier work by two of the article’s authors explored the notion of an “Attribute-Based Architectural Style” that could “present implementation solutions for [specific usability] features..[and] include methods for performing a cost-benefit analysis for particular usability features.”[7]

Another article went on to emphatically state that “UCD will be considered more seriously at large if and only if a computer-assisted usability engineering (CAUsE) platform is available. CAUsE should support the whole process for gathering and analyzing the observational data, extracting relevant measures/feedback, and making decisions for changes. This CAUsE platform and the related usability measurement can also benefit from the long tradition in the field of software testing and measurement. The lack of UCD tools is one of the major technical obstacles that the HCI and software engineering communities should address.”[8]

It was interesting to note that while the problem of how to merge user-centered design and software development processes was widely recognized, no single best practice to do so has yet been identified. The suggestions on how to bridge the gap have consistent elements: specific details related to implementation as well as methods to analyze the data. It is good that it is increasingly being recognized that usability needs to be built into the system at its core, even if there is not yet a clear way to do so.

Measuring Usability

Much of the difficulty in perceiving usability as a quality attribute and ensuring it is incorporated into the development process at an early stage may be related to the qualitative nature of its measures. Indeed, the simple fact that usability requirements were perceived to be met simply by architecting a system of which the visual design could be changed easily following user testing belies the perception that usability principles are fluid.

Many of the articles I referred to a need to validate the extent to which a product is usable. In my experience as a web professional, I am dubious of the ability for this to provide a quality assessment.

As a web developer, I am responsible for providing code that adheres to accessibility guidelines. While an accessible site does not forcibly infer the site is usable, the two are related. One standard set of guidelines web developers often try to comply with are the Web Content Accessibility Guidelines developed by the World Wide Web Consortium. However, there has been great difficulty in being able to validate the extent to which a site is truly accessible, even when it appears to follow the guidelines. This is because so much is not testable. Checkpoint 14.1 of the WCAG 1.0 states “Use the clearest and simplest language appropriate for a site’s content.”[9] While a site developer may aim to meet this checkpoint, it is questionable if compliance can really be accessed. While there are tools currently available that can test for failures to meet certain guidelines, there cannot always be ways to measure for positive compliance.

Conclusion

While the experimental results discussed in the paper were not ground-breaking, I found many of the points raised in the article quite interesting. Current software development practices do not implicitly account for usability concerns, yet usability cannot be disregarded or minimalized through the architectural design process. There have been several proposals on how best to communicate these usability principles to developers (including the Usability-Supporting Architectural Patterns referred to in this article), yet a single best practice has not yet been established. I have my own reservations about the feasibility of a tool that can measure how usable a system is, but as the field of user-centered design develops and matures, we may find a way this can be done.

Citations

[1] Golden, John & Bass, 2005
[2] Golden, John & Bass, 2005
[3] Golden, John & Bass, 2005
[4] Seffah & Metzker, 2004
[5] Neilsen, 2003
[6] Bosch & Juristo, 2003
[7] Bass & John, 2000
[8] Seffah & Metzker, 2004
[9] World Wide Web Consortium, 1999

References

Len Bass, Paul Clements, Rick Kazman. (2003) Software Architecture in Practice - 2nd ed. Boston MA: Pearson Education, Inc.

Len Bass, Bonnie E. John, Natalia Juristo, Maria-Isabel Sanchez-Segura, “Usability-Supporting Architectural Patterns,” icse, pp. 716-717, 26th International Conference on Software Engineering (ICSE’04), 2004.

Len Bass , Bonnie E. John, Achieving usability through software architectural styles, CHI ‘00 extended abstracts on Human factors in computing systems, April 01-06, 2000, The Hague, The Netherlands

Len Bass, Bonnie E. John, Linking usability to software architecture patterns through general scenarios, Journal of Systems and Software, v.66 n.3, p.187-197, 15 June 2003

Jan Bosch , Natalia Juristo, Designing software architectures for usability, Proceedings of the 25th International Conference on Software Engineering, May 03-10, 2003, Portland, Oregon

George Casaday, Notes on a pattern language for interactive usability, CHI ‘97 extended abstracts on Human factors in computing systems: looking to the future, March 22-27, 1997, Atlanta, Georgia

Elizabeth M. Comstock , William M. Duane, Embed user values in system architecture: The Declaration of System Usability, Proceedings of the SIGCHI conference on Human factors in computing systems: common ground, p.420-427, April 13-18, 1996, Vancouver, British Columbia, Canada

Xavier Ferré , Natalia Juristo , Helmut Windl , Larry Constantine, Usability Basics for Software Developers, IEEE Software, v.18 n.1, p.22-29, January 2001

Eelke Folmer, Jilles van Gurp, Jan Bosch: Software Architecture Analysis of Usability. EHCI/DS-VIS 2004: 38-58

Elspeth Golden, Bonnie E. John, Len Bass: The value of a usability-supporting architectural pattern in software architecture design: a controlled experiment. ICSE 2005: 460-469
Jakob Nielsen. (2003, August 25) Usability 101: Introduction to Usability. Retrieved September 29, 2006 from http://www.useit.com/alertbox/20030825.html
Perzel, K. and Kane, D., “Usability Patterns for Applications on the World Wide Web,” Submitted to Pattern Languages of Programming 1999.

Ahmed Seffah, Alina Andreevskaia, “Empowering Software Engineers in Human-Centered Design,” icse, p. 653, 25th International Conference on Software Engineering (ICSE’03), 2003.

Ahmed Seffah , Eduard Metzker, The obstacles and myths of usability and software engineering, Communications of the ACM, v.47 n.12, p.71-76, December 2004

Kenia Sousa , Elizabeth Furtado , Hildeberto Mendonça, UPi: a software development process aiming at usability, productivity and integration, Proceedings of the 2005 Latin American conference on Human-computer interaction, p.76-87, October 23-26, 2005, Cuernavaca, Mexico

Web Content Accessibility Guidelines 1.0 (1999) Retrieved October 2, 2006 from http://www.w3.org/TR/WAI-WEBCONTENT/

Like it? Share it! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • bodytext
  • del.icio.us
  • Facebook
  • E-mail this story to a friend!
  • Print this article!
  • Mixx
  • Google
  • TwitThis
  • BlogMemes
  • Furl
  • Ma.gnolia
  • NewsVine
  • Pownce
  • Reddit
  • Sk-rt
  • StumbleUpon
  • Technorati