Teaching Theorizing in Software Engineering Research

Klaas-Jan Stol
2024-11-01
Abstract:This chapter seeks to support software engineering (SE) researchers and educators in teaching the importance of theory as well as the theorizing process. Drawing on insights from other fields, the chapter presents 12 intermediate products of theorizing and what they mean in an SE context. These intermediate products serve different roles: some are theory products to frame research studies, some are theory generators, and others are components of theory. Whereas the SE domain doesn't have many theories of its own, these intermediate products of theorizing can be found widely. The chapter aims to help readers to recognize these intermediate products, their role, and how they can help in the theorizing process within SE research. To illustrate their utility, the chapter then applies the set of intermediate theorizing products to the software architecture research field. The chapter ends with a suggested structure for a 12-week course on theorizing in SE which can be readily adapted by educators.
Software Engineering
What problem does this paper attempt to address?
The problem that this paper attempts to solve is the neglect of theory and the theorizing process in software engineering (SE) research. Specifically, the paper points out: 1. **Lack of theoretical attention**: Although a large number of research papers are produced in the field of software engineering every year, many studies are not valued by practitioners, which is related to the insufficient attention to theory and conceptualization in this field. 2. **Short - term nature of research**: Many studies focus on specific technologies or trends, such as large - language models (LLM). These studies may be out of date by the time the paper is published and fail to make a lasting contribution. 3. **Importance of theory**: The paper emphasizes the importance of theory in scientific research, including connecting observations, identifying underlying principles, explaining seemingly obvious findings, and helping to understand complex phenomena. To address these problems, the paper sets the following goals: - **Introduce theorizing products**: By introducing 12 types of theorizing intermediate products, help readers recognize these products and their roles in the theorizing process. - **Enhance theorizing awareness**: Encourage researchers and educators to pay more attention to the theorizing process in software engineering research, thereby promoting the cumulative tradition and development of this field. ### Specific problems and solutions 1. **Why is theorizing necessary?** - **Distinguish science from other activities**: Theorizing distinguishes scientific research from consulting or journalism, ensuring that the research is cumulative and coherent. - **Go beyond surface phenomena**: Theory helps us extract universal principles from specific and individual phenomena, avoiding focusing only on "here and now" problems. - **Explain obvious findings**: Through theorizing, hidden assumptions and mechanisms can be revealed, explaining why certain findings are meaningful. 2. **Forms of theory** - **Variance Theory**: Describes the causal relationship between variables, such as the group participation theory shown in Figure 1. - **Process Theory**: Explains the chronological order of a series of events, such as the large - scale agile software development process theory shown in Figure 2. - **Practice Theory**: Presented in narrative form, such as Dittrich's practice theory on the use of software development methods. 3. **Challenges faced** - **Lack of knowledge and attention**: Many researchers lack understanding and attention to theorizing. - **Rapidly developing technology and research patience**: The rapid development in the SE field makes it difficult for researchers to conduct long - term theoretical research. - **Term confusion**: The terms theory, theorizing, and theory development are often misunderstood or confused. ### Conclusion By introducing 12 types of theorizing intermediate products, the paper aims to enhance the understanding and attention of software engineering researchers and educators to the theorizing process, thereby promoting the theoretical development and cumulative tradition in this field.