Larry Constantine explains that when experience design is married with agile development, the results can be a crisis of faith on either or both sides. Unfortunately, it is usually experience design that is modified or mangled to fit into the particular agile method being performed. Can this marriage be saved?



Like a quarrelsome family of competitive siblings who are always ganging up two-against-one, the classic trio of project objectivescheap, fast, and goodare locked in perpetual opposition. The old saying is that you can have any two out of three; the other is inevitably sacrificed or severely compromised. Agile methods make a valiant effort to bring domestic tranquility to the software project triplets through a clever mix of philosophy, techniques, and strategies that are aimed at delivering reliable code, on time, for less. Depending on to whom you listen and to what statistics you are prepared to grant credence, agile projectsat least up to some still-debated scalehave been generally successful in serving up some of each of the cheap-fast-good buffet.

By at least one metric, agile software development methods and techniques have been a virtually unqualified success. A steadily growing fraction of the industry is adoptingor at least claiming to adoptsome agile practices, in the process generating heated debate over what is truly agile and what is mere lip service. Teams risk criticism from peers if they fail to fully embrace the underlying tenets or are too selective in their observance of practices. Agility is, of course, more than just a tub of techniques. It is a philosophy, a movement supported by its own manifesto, and while stories abound and research on the effectiveness of its sundry components is beginning to accrue, for many practitioners, adherence to the true path is still mostly based on personal experience and conviction.

The same can be said of the user experience community. Papers challenging the canon of received wisdom and established techniques are vociferously attacked, even when written by such venerable elders of the field as Don Norman (“Human-Centered Design Considered Harmful”), who has been criticized for recanting the articles of faith of user-centered design, an amusing accusation considering that Norman is generally credited with having invented the term. My own similar heresy (“Beyond User-Centered Design and User Experience,” Cutter IT Journal, 17 (2), February, 2004) drew less flak, but then I’m not Don Norman.

When these two meet, when experience design is married with agile development, the results can be a crisis of faith on either or both sides.

Troubled Engagement

Unfortunately, agile approaches did not at the outset incorporate practices explicitly concerned with users and user interaction, or usability and user interfaces. Although Extreme Programming makes the so-called customer role central, customers are not, in most cases, the same as users, and the customer role is more focused on functionality than on usability. In their slight of users, the agile methods resemble most other software development methods, which have a long history of treating users, user interfaces, and usability as afterthoughts at best or at worst as irrelevant. I myself am guilty in this regard, having pretty much left users out of the equation in the now ancient techniques of structured design, a sin that I repented and for which I did penance by developing, with Lucy Lockwood, the body of techniques that came to be known as usage-centered design. (See the somewhat dated but still very usable Software for Use.)

At the same time as the agile methods were gaining market share, the marketplace in software applications and web sites and services was becoming more tuned in to the voice of users and to the issue of user experience. Customers were demanding applications and services that were easier to use, easier to learn to use, and more satisfying. And smart executives were moving from a superficial flag-waving allegiance to customer-centered business models and adopting a deeper commitment to design culture in which experience design and service design are at the core. Apple’s success story with iTunes and the iPod is a most visible example, but on a smaller scale, many companies have been embracing a whole-systems approach to service and product design built on a user experience foundation.

Many professionals on both sides of the aisleJeff Patton, Scott Ambler, Ron Jeffries, Thomas Memmel, Don Norman, and Jakob Nielsen, among othersjumped into the role of matchmakers, promoting a relationship or rapprochement between experience design and agile development. This has been a long engagement. I’ve been writing about user interaction design and agile methods since the turn of the century (are we allowed to say that now that we are in the second decade of the millennium?), and Jeff Patton’s agile-usability forum (agile-usability at Yahoo Groups) dates from 2004. But what really happens when the adherents of these disparate disciplines are pushed into a marriage of convenience in the name of better, cheaper, faster software development? Let the newlywed games begin!

Accommodation

The dialogue and spats have been rather public, not only in online forums but also at the various agile conferences and even at academic conferences like the ACM’s SIGCHI, as well as in a variety of print media. An interesting aspect of this speed-dating dialogue has been that, for the most part, nearly all of the narrative so far has been about experience designers accommodating to the dictates of agile methods and schedules. Hardly a word is printed or spoken about what developers might do to accommodate the agenda and practices of designers. Short stand-up meetings, test-first development, 2-3 week sprints, emergent requirements, avoidance of upfront analysis or design, pair-programming, rapid incremental development with re-architecting, the customer role with user storiesall the practices and paraphernalia of agile development tend to be assumed as fixed and given, while the practices and processes of experience design are modified or mangled to fit into the particular agile method being performed.

I have sat through panels, most recently at SIGCHI 2008 in Italy, in which not a word was said about what might be wrong with agile methods and what needed to be changed if they are to produce end products that are more usable and more useful. Even the mere suggestion that agile methods might be changed to better accommodate experience design has been the excuse for attacks, both online and off.

Compatible Coupling?

As a consulting interaction designer, I have worked on a number of agile development projects employing various methods under a variety of management models. Unfortunately, user experience and usability as key drivers for development are not a simple plug-and-play fit with most agile development processes. Many of the first groups that tried a force-fit learned that the partners in the shotgun marriage were often at odds. I have concluded that a number of things are needed if this marriage of agile development with experience design is to work well and last over the long haul.

There are many core incompatibilities in this couple. Agile methods employ rapid, iterative refinement, with short, incremental development cycles. The imperative is to produce executable code and deliver added functionality at each iteration right from the get-go. BDUF, for Big Design Up-Front, is a curse to be avoided at all cost. The single most important criteria, embodied in the test-first development approach, is that each increment of expanded code run to completion, executing correctly to produce the right output. Little or nothing is said about the usability of the results or of the means for the end-user to reach them. Test-first development does not include or address user testing, and it is arguable whether it should or even could.

User experience design, on the other hand, tends to front-load activities, often beginning with a fairly long lead-up devoted to field study and observation of users, analysis of user requirements, user modeling, prototyping, and visual and interaction design. User testing is often a fairly time- and labor-intensive activity that may sometimes be integrated with prototyping but is almost always heaviest late in a project when a beta or later version becomes available. In general, experience design assumes that a design will be completed in substantial detail before anything beyond a prototype is built, because user experience is usually shaped as much by subtle details and their precise interconnection as by overall structure and organization.

The agile approaches tend to favor a functionality-first, inside-out process, beginning with early and easy successes that deliver workingif limitedcode. Experience design at its best and purest is an outside-in process that favors full, overall understanding before detail design or implementation even begins.

For a simple example that embodies some of the difference between a functionality-first approach and a user-experience perspective, consider the issue of establishing login credentials for new users of a website. The worse design from the standpoint of user experience is the classic and all-too-common one that forces the new user to pick an ID and password before they can do anything. To users, this experience is a barrier that gets in the way of merely getting on with what they want to accomplish. An outside-in interaction design approach considers, first and foremost, the whole of the user experience. That leads to a very different design in which, for example, the user who has already completed a purchase is offered, at the last moment, the chance to save already entered details with a user ID and password. This entails an incremental action that is experienced as an easy bonus, rather than an annoying barrier.

Given these deep philosophical differences and variance in practices, can this marriage be saved? Tune in to Part 2 for a counselor’s suggestions for a better marriage of methods.

Larry Constantine is an award-winning interaction designer, a pioneer in software engineering, and a novelist. Under his pen name, Lior Samson, his first novel, Bashert, has already been published and a second, The Dome, is slated for October release. Both are fast-paced political thrillers with technology twistsstories “to feed the inner nerd,” as one reviewer phrased it. They are available from Amazon and http://www.liorsamson.com. Constantine’s day job is as Institute Fellow at the Madeira Interactive Technologies Institute and as professor at the University of Madeira.