Simple Science

Cutting edge science explained simply

# Computer Science# Software Engineering

Improving Software Development through Action Research

Learn how action research enhances software engineering practices with collaboration and reflection.

― 6 min read


Action Research inAction Research inSoftware Engineeringsolutions.collaborative research and real-worldEnhancing practices through
Table of Contents

Action research is a method that helps researchers work closely with people in organizations to improve practices. It combines learning and action, allowing participants to reflect on their work and make changes guided by research. This process is valuable in software engineering, where teams develop programs and systems.

The goal of action research is not just to observe but also to get involved and find ways to make software development more effective. This means that researchers and practitioners work together, sharing knowledge and insights that can lead to better practices.

Why Use Action Research?

Action research is beneficial because it focuses on real-world challenges. Software development is complex, and different teams often face different problems. By using action research, teams can identify what works, test new ideas, and adjust as needed. This hands-on approach helps ensure that changes are practical and relevant.

Moreover, the process allows for continuous learning. As teams implement changes, they can gather feedback and assess the impact of those changes, creating a cycle of improvement.

Key Features of Action Research

  1. Collaboration: Researchers work with practitioners, involving them in every step of the process. This collaboration ensures that the research is grounded in the realities of the work environment.

  2. Iterative Cycles: The research takes place in cycles, allowing for adjustments based on what is learned during each round. This means that solutions can evolve as more information is gathered.

  3. Reflection: Participants are encouraged to think about their actions and outcomes. This reflection helps identify successes and areas for improvement.

  4. Focus on Change: The primary aim is to make meaningful changes that enhance practices, which is particularly important in software development.

Challenges in Action Research

While action research offers many benefits, it also comes with challenges:

  • Resistance to Change: Sometimes, team members may resist new methods or tools, especially if they are comfortable with current practices.

  • Complex Environments: Organizations have varying structures, cultures, and practices, making it difficult to implement a one-size-fits-all solution.

  • Time Constraints: Researchers and practitioners may have limited time to dedicate to the research process, impacting the depth of the findings.

  • Balancing Roles: Researchers must balance their role as an observer and a participant, ensuring they do not influence outcomes unduly.

Using Toolkit Strategies

To address challenges and enhance action research efforts, teams can use a variety of strategies, often referred to as toolkits. These include:

1. Steering Committees

Establishing a steering committee can help keep all stakeholders involved and informed. This group should include management, software developers, and researchers. Regular meetings allow the committee to discuss progress and address any concerns.

2. Ethnographic Fieldwork

Conducting ethnographic fieldwork involves immersing oneself in the team’s work environment to better understand their practices and challenges. Observing how work is done helps identify areas for improvement.

3. Stakeholder Analysis

Understanding who is involved and their interests is critical. Stakeholder analysis helps identify different groups’ needs, ensuring that all relevant perspectives are considered.

4. Informed Consent

Ensuring that team members understand the research process and agree to participate is crucial. Informed consent respects individuals' rights and encourages openness in collaboration.

5. Workshops

Workshops are effective for fostering discussions about changes. These sessions enable teams to brainstorm solutions and agree on the best ways to proceed. Preparing a clear agenda helps keep discussions focused and productive.

6. Visualizations

Using visual tools, such as diagrams and flowcharts, can help clarify complex information. Visualizations make it easier to communicate ideas and facilitate discussions among diverse participants.

Case Studies in Action Research

Case Study 1: SIM - Software for Hydraulic Simulation

In this project, the goal was to adapt software for hydraulic simulations to be more flexible and easier to evolve. The researchers worked closely with developers to introduce new architecture and design practices.

The project emphasized collaboration and communication among team members, allowing for adjustments based on feedback from users. The changes made were well-received, and the team reported improved efficiency in their work. This case highlights the importance of involving all levels of staff and ensuring that new practices fit within existing workflows.

Case Study 2: IU - Designing Data with Domain Experts

In this project, the focus was on enabling non-IT professionals to co-design systems that they use daily. By bringing together various stakeholders, including domain experts and IT professionals, the research aimed to create better data design practices.

Workshops allowed team members to express their needs and ideas. The outcome was an increased understanding of how to use data effectively within the organization, highlighting the value of participatory design in creating solutions that meet actual user needs.

Case Study 3: WMU - Supporting Collaborative Development

The World Maritime University project aimed to improve IT management practices by involving staff in the design of new systems. This ongoing collaboration allowed for valuable insights into user needs and preferences, leading to adjustments that benefitted the entire organization.

The iterative nature of the action research resulted in a better understanding of the infrastructure needed to support users effectively. By engaging in continuous dialogue, participants developed a more robust IT management strategy.

Reflections on Action Research

Through these case studies, it becomes clear that action research is a powerful tool for improving software development practices. By emphasizing collaboration, reflection, and iterative learning, teams can develop effective solutions that not only enhance their work but also support sustainable change within the organization.

Each cycle of action research provides an opportunity to evaluate what works and what doesn't, ensuring that changes are relevant and beneficial to all stakeholders involved. The flexibility of the approach allows researchers and practitioners to adapt to the ever-evolving landscape of software engineering effectively.

Conclusion

In conclusion, action research presents a unique and effective approach to improving software engineering practices. The close collaboration between researchers and practitioners fosters a rich environment for learning and growth. By addressing real-world challenges and focusing on actionable outcomes, teams can drive meaningful improvements in their work.

Embracing the iterative cycles of action research, along with the strategies outlined, can help organizations effectively navigate the complexities of software development. As the field continues to evolve, action research will remain a vital method for promoting innovation and excellence within the software engineering community.

Original Source

Title: Action Research with Industrial Software Engineering -- An Educational Perspective

Abstract: Action research provides the opportunity to explore the usefulness and usability of software engineering methods in industrial settings, and makes it possible to develop methods, tools and techniques with software engineering practitioners. However, as the research moves beyond the observational approach, it requires a different kind of interaction with the software development organisation. This makes action research a challenging endeavour, and it makes it difficult to teach action research through a course that goes beyond explaining the principles. This chapter is intended to support learning and teaching action research, by providing a rich set of examples, and identifying tools that we found helpful in our action research projects. The core of this chapter focusses on our interaction with the participating developers and domain experts, and the organisational setting. This chapter is structured around a set of challenges that reoccurred in the action research projects in which the authors participated. Each section is accompanied by a toolkit that presents related techniques and tools. The exercises are designed to explore the topics, and practise using the tools and techniques presented. We hope the material in this chapter encourages researchers who are new to action research to further explore this promising opportunity.

Authors: Yvonne Dittrich, Johan Bolmsten, Catherine Seidelin

Last Update: 2024-07-05 00:00:00

Language: English

Source URL: https://arxiv.org/abs/2407.04650

Source PDF: https://arxiv.org/pdf/2407.04650

Licence: https://creativecommons.org/licenses/by/4.0/

Changes: This summary was created with assistance from AI and may have inaccuracies. For accurate information, please refer to the original source documents linked here.

Thank you to arxiv for use of its open access interoperability.

More from authors

Similar Articles