This article explores the consequences of the uncertainty introduced into the system-development life cycle by a prototyping approach and the practical strategies employed by developers in prototyping projects. Drawing on various strands of the sociology of technology, the article discusses findings from a multidisciplinary research project, which investigated the use of prototyping in commercial information systems development in the United Kingdom during the period 1995 to 1998. Qualitative semistructured interviews with commercial practitioners were followed by a series of mini case studies. We draw on interview and participant observation material and the practitioner literature on Rapid Application Development. In the course of the project, we encountered a variety of practical strategies that attempted to extend the sphere of developers' influence beyond the technical realm to affect (but not determine) how the user and customer participate in the development process. Various techniques attempt to create a climate of joint ownership and shared approaches to change management. For example, the role of an ambassador user encompasses shaping the environment in which the system will operate via information, training, and advocacy. Rather than a cause-and-effect model from user requirements to specification to implementation, developer strategies usefully can be considered in terms of sociological work on reflexive elaboration of networks. From this perspective, prototyping is more akin to trying to stabilize a network of evolving prototypes, user expectations, requirements, and working practices than meeting a fixed specification.