Overview of "What Could Possibly Go Wrong: Undesirable Patterns in Collective Development" by Evtikhiev, Koshchenko, and Kovalenko
In the paper "What Could Possibly Go Wrong: Undesirable Patterns in Collective Development," Evtikhiev, Koshchenko, and Kovalenko investigate the often-overlooked social and organizational challenges that arise in collective software development. By focusing on the interplay of technical, social, and organizational factors, this paper delivers a nuanced understanding of how team dynamics influence software engineering processes and outcomes.
Methodology
The authors adopt a mixed-methods approach, initializing their paper with 38 in-depth exploratory interviews, followed by two comprehensive surveys—the "Undesirable Patterns Overview" survey with 436 participants and the "Evaluation of Tool Suggestions" survey with 968 participants. This methodology ensures a broad and diverse range of perspectives, which enhances the validity of their findings.
Key Contributions
- Identification of Undesirable Patterns: The paper identifies 42 distinct undesirable patterns in collective development. These patterns are categorized into three broad groups based on their origins: Technical, Social, and Organizational. This categorization helps in understanding the multifaceted challenges faced by development teams.
- Typology of Origins:
- Technical: Issues related to code, tools, and information resources.
- Social: Challenges arising from interpersonal interactions and differences.
- Organizational: Problems stemming from management decisions and team coordination.
- Frequency and Impact Analysis: The "Undesirable Patterns Overview" survey reveals the relative significance and frequency of these patterns. For instance, 'Insufficient documentation' emerged as the most frequent pattern, while 'Toxic company culture' was highlighted as the most impactful.
- Tool Suggestions: The paper presents 22 tool ideas to address 10 of the most practically viable undesirable patterns. These suggestions were evaluated through the "Evaluation of Tool Suggestions" survey, providing insights into their potential for real-world application. Notably, tool ideas addressing the 'Outdated Tests' pattern received the highest scores, indicating substantial interest in automated support for maintaining test coverage.
Practical Implications
The findings from this paper are instrumental for software engineering practitioners and researchers alike:
- For Practitioners: The paper offers a detailed examination of common collective development issues, accompanied by potential solutions. Practitioners could leverage these insights to preemptively address high-impact patterns, thereby enhancing overall team productivity and software quality.
- For Researchers: The comprehensive typology and identification of undesirable patterns serve as a foundational framework for future investigations into socio-technical challenges in software development. The paper also emphasizes the need for more attention towards social and organizational patterns, which are less researched yet highly significant.
Future Directions
The paper opens several avenues for future research:
- Costs and Benefits Analysis: There is a need for quantitative studies to estimate the monetary impact of various undesirable patterns, which could aid in making informed decisions regarding resource allocation.
- Reasons for Unaddressed Patterns: Investigating why certain undesirable patterns are not addressed can provide deeper insights into organizational constraints and engineer motivations.
- Exploring Co-occurrences: Understanding the co-occurrence of different undesirable patterns could reveal underlying issues and interdependencies, offering a more comprehensive approach to managing team dynamics.
- Tool Adoption Studies: Further research into why certain tools are not adopted despite their potential would be beneficial. Such studies should explore the balance between the costs of integration and the benefits provided by the tools.
Conclusion
Evtikhiev, Koshchenko, and Kovalenko's paper is a significant contribution to the understanding of collective software development dynamics. By systematically identifying and analyzing undesirable patterns, the authors provide valuable insights into how technical, social, and organizational factors intersect to affect engineering outcomes. This research lays the groundwork for more holistic approaches to improving team collaboration and software quality, emphasizing the importance of addressing both the human and technical aspects of software engineering.