exploring the relationship between social science and software development methodologies: a blog by Pascal Belouin

One of the main issues in the design of most commercial software products is what is commonly called ‘domain definition’. This activity could be roughly understood as the definition of the ‘objects’ and processes that the system will have to manage or provide support for.

An interesting thing about domain definition is that it could be seen as the process where interactive system designers (a category I will use to define the various people involved in the design and the development of an interactive system: developers, information architects, usability specialists…) become in effect ‘amateur social scientists’: Their goal is to elicit the needs of potential users so as to get an idea of the functions and features of the future system, by gaining an understanding of the way they perform tasks in their ‘natural environment’. Although this activity is a crucial step of the development process, and starts to be recognised as such by a growing number of developers, it is still mostly overlooked by a quite a few of them!

Thus, drawing a parallel between domain definition in the framework of a software development project and social theory seem to make sense, and a few traditions come in mind when it comes to tackling this problem from a sociological or psychological point of view: these are shortly described below, and will form the object of a number of future posts.

Ethnography

Although the use of ethnography in the framework of requirement elicitation is well documented in the HCI literature, it is still scarcely used in the professional development world, and if so in a very quick-and-dirty manner. A few concepts borrowed from classical ethnographic literature could however could be seen as particularly useful in the context of domain definition.

Grounded theory

Grounded theory is a qualitative research methodology allowing researchers to make particular themes and categories ‘emerge’ from qualitative data through a well-defined and elaborate data collection and analysis process. Its creators, Glaser and Strauss, disagreed on theoretical issues, and now each advocate a different way of ‘doing’ grounded theory. The notions of themes and categories, as well as the central importance of ‘coding’ in grounded theory makes this methodology particularly fruitful and interesting when adapted to domain definition, as I will try to show in a future post!

Quantitative data analysis methods

Questionnaires, demographics, economics can inform interactive system design. The question however arises: To what extent the analysis of all the data that can now be gathered about people’s tastes, habits, lifestyles is influenced by the sociological and historical situation of the analyst? This problem is widely debated in the social sciences, but is still considered remote to software engineering, probably because of the very history of this discipline.

Discourse analysis

The last discipline I would like to quickly mention is discourse analysis. A relatively young discipline, discourse analysis is a rich source of methods, theories and concepts that could be applied to domain definition. Indeed, notions of identity, meaning, speech communities, roles, relationships of power and the struggle for the establishment of particular discourses as the ‘truth’ about a particular object seem all instinctively very potent if applied to requirement elicitation in the framework of a software development project. The links between this discipline and interactive system design will be further explored in these pages.

Although I tried to provide a substantive list, this is only a quick sample of the various ways social science and software design (and more particularly domain definition) could be interlinked, and I feel like I’ve only scratched the surface! I will try to explore each of these leads in more details in future posts.

Related posts:

  1. Applying Conversation Analysis Concepts to Interaction Design?
  2. Software as Discourse
  3. Social science for software developers – Using tools from social science to inform software design: should software developers also be social scientists?
  4. Research proposal : A Foucauldian analysis of the evolution of the discourse about software development methodologies
  5. The Notion of Closure in the Social Sciences: an Overview

Leave a Reply