Thursday, January 14, 2010

Alan Cooper - Insurgency of Quality

Alan Cooper's presentation at Code Freeze 2010 was on the intersection of Agile and interaction design (IxD, the study of devices with which a user can interact - A big theme of Cooper's presentation was that a certain amount of design underpins even Agile

projects [e.g. up front, as opposed to within the iterations], although it's not always acknowledged and is overshadowed by the Agile practice that a project iterates toward a mutable goal and design, development, and testing often go hand in hand.

As a point of argument, Cooper noted that even Agile projects don't begin at scrum/iteration 0 (though perhaps they should, and he'd heard of groups who have). Yet, there's always some sort of dig or prep, and the length of that bricklaying, as Cooper called it, varies from project to project, even in the Agile space. While small, greenfield, uncomplicated projects might be capable of iterating from day one, larger projects are circumscribed by:

  • The size of the code base
  • Team inertia
  • The history of the product

These factors, in turn, are constraints on the ability of the product owner or product team to give their full attention to the project. The problem then becomes that, without an appropriate amount of design up front, the product owner can be constrained in their ability to make or evaluate "battlefield decisions." These decisions, which increasingly become the mandate of the developer and not the Project Manager or Product Owner, who is otherwise engaged, can have an impact in the board room as they roll upward.

There is an interplay between Agile and design that is at odds with its

elf. Tactical decisions fit with design and can be timeboxed. Strategic and analytical decisions do not fit within Agile timeboxes. Yet the latter underpins the former, and without a solid foundation, tactical decisions can take the project further and further off course, beyond what's expected from the natural realignment with each iteration.

What does Cooper recommend to counteract unwanted drift and unhealthy battlefield decisions in Agile?

  1. Get the product design out of the hands of the PM, BA, Code Librarian, C** and, in many cases, product owner/product team. They often do not have the big picture in mind, and their other responsibilities and job limitations can interfere with understanding the strategic design.
  2. In the tradition of Peter Drucker, place decision making in the hands of craftspeople or practitioners. As Cooper calls them, "no collar" knowledge workers. Those closest to the design and those focused on interactive, agile, craft-based design, and not focused on process for the sake of process. Foster a "selfless insurgency" in skilled, trained interaction between craftspeople of equivalent level, targeting the quality of the product and the satisfaction of the customer.
  3. Keep conceptual decisions frontloaded where they're cheapest and customer feedback has the most impact. As time increases, move from the leadership-heavy interaction design to development where everyone understands the impact of the early design decisions.
  4. Ensure designers focus on funneling (as a metaphor), not seesawing. Make sure they align on a clarity of vision.
In the end, Cooper gave a metaphor for a successful project that embraced design and Agile. Think of a nursery full of children. All of them are yelling, "We want candy! We want ice cream!" If you truly understand the design leading into the project, you'll listen and decide, "They're hungry." Then you'll do the right thing, the responsible thing, and give them broccoli and liver.

No comments: