The topic of the research reported here is direct user participation in
the task-based development of interactive software systems. Building
usable software demands understanding and supporting users and their
tasks. Users are a primary source of usability requirements and
knowledge, since users can be expected to have intimate and extensive
knowledge of themselves, their tasks and their working environment. Task
analysis approaches to software development encourage a focus on
supporting users and their tasks while participatory design approaches
encourage users' direct, active contributions to software development
work. However, participatory design approaches often concentrate their
efforts on design activities rather than on wider system development
activities, while task analysis approaches generally lack active user
participation beyond initial data gathering. This research attempts an
integration of the strengths of task analysis and user participation
within an overall software development process. This work also presents
detailed empirical and theoretical analyses of what it is for users and
developers to cooperate, of the nature of user-developer interaction in
participatory settings. Furthermore, it makes operational and assesses
the effectiveness of user participation in development and the impact of
user-developer cooperation on the resulting software product. The
research addressed these issues through the development and application
of an approach to task based participatory development in two real world
development projects. In this integrated approach, the respective
strengths of task analysis and participatory design methods complemented
each other's weaker aspects.