I attended this workshop because I was particularly interested in learning more about interaction design and how it fits in with agile development. I was not disappointed, and found that this was probably the most interesting session of the whole conference.
According to Wikipedia, Interaction Design (IxD) is “the discipline of defining and creating the behavior of technical, biological, environmental and organizational systems.” An important clarification here is that this is not user interface (UI) design, even though UI design is greatly influenced by IxD. I found that generally in the workshop we focused on Human Computer Interaction (HCI), which encompasses both IxD and UI.
An underlying theme throughout the workshop was the relationship between HCI and agile. As Yael Dubinsky put it, on projects does HCI enhance agile or is it the other way around? Generally it was agreed that HCI practitioners and agile teams should be compatible for the following reasons:
- Work iteratively
- Are customer focused
- Do something similar to Test Driven Development (TDD) – HCI practitioners tend to set their usability goals first and then work towards a design compatible with those goals
- UI design process generally resembles the software development process
However, there were also a number of incompatibilities that were pointed out:
- HCI practitioners are comfortable with iterative design but not iterative development
- HCI practitioners tend to focus on user experience, not business value; on many projects the customer who provides context on business value does not represent the users
- For HCI practitioners the design is the deliverable. They iterate the design and deliver a complete design when it is done, as opposed to development teams which get something running ASAP and then evolve it iteratively. Which leads to the next bullet…
- HCI practitioners tend to think Big Design Up Front (BDUF)
- Developers and HCI experts have different training
- HCI experts tend to use set-based development – they investigate several options and then select one
So I think the jury is still out on how best HCI practitioners and agile teams can best interact with each other. Robert Biddle concluded that, based on the results of some studies that he has conducted, HCI practitioners should be integrated as part of agile teams. This would be most effectively accomplished by having the HCI experts working one iteration ahead of the development team evolving their design for the stories coming up in the next iteration.
During development the HCI experts could then advise the development team on UI issues. This would necessitate what was referred to as Iteration ‘0’; that is, an initial iteration where the HCI practitioners would have a chance to start working on their initial designs for the first high priority stories.
As a person who writes a lot of stories, I would tend to agree with Robert Biddle’s approach. I can see many advantages to wrapping HCI expertise into a project team and having this expertise help guide the stories and development; however, I tend to side with the ‘HCI complements agile’ camp because for us the final deliverable is a working piece of software of which an HCI design may only represent a small piece.
- Extreme Programming vs. Interaction Design debate between Alan Cooper (the father of IxD) and Kent Beck (the father of XP)
- Are Agile and Usability Methodologies Compatible? article by Alain Desilets of the National Research Council
- Adapting Usability Investigations for Agile User-Centered Design article by Disiree Sy
- Workshop Abstract
- InfoQ Article– by somebody else who attended the workshop
- How Designers Think by Bryan Lawson
- The Inmates are Running the Asylum by Bryan Cooper