| Software practice is everywhere: software development, design, and use as well as related management are shaping today’s technology and changing the way we engage in social relations at work and at home, in small groups and in the larger society. Scientific reflection on software practice aims at understanding and improvement; at the same time the motives for understanding and the direction of improvement are also subjects for reflection and discourse. Whereas the discipline of software engineering is mainly concerned with the formal principles, technical basis, and methodological support for software development, reflection on software practice as social activity needs to go beyond a traditional engineering framework.
Social thinking is used here to refer to scientific reflection guided, informed, and/or inspired by social science approaches. Theories and methods developed with no specific concern for computing (e.g., ethnomethodology, activity theory) provide a starting point for inquiry into a variety of issues in software practice. In the last two decades, interdisciplinarycooperation between social scientists and computer professionals in areas such as human-computer interaction or computer-supported cooperative work has already produced a rich body of knowledge. But research in this field is still impeded by segregation according to different schools of thought and by the difficulties of relating engineering and social science research traditions. Therefore, efforts to understand and improve software practice need to go beyond simply applying traditional social science precepts and methods. |