Challenges for Software Quality Processes in Large Size Teams: Reflections of the Use of Agile Methodology?-?Scrum

Challenges for Software Quality Processes in Large Size Teams: Reflections of the Use of Agile Methodology?-?Scrum


1. Introduction

In the business environment characterized by increasing dynamism and competitiveness, agile methodologies have become recognized as an effective approach for software development projects. The emphasis on collaboration, adaptation, and continuous value delivery to customers has driven new work dynamics in the context of agile projects. As projects grow and teams expand, arising complex challenges that, for instance, affect the foundations of agile methodology and impact on agility and effectiveness.

Some essential principles of these methodologies are communication transparency, adaptability, and task visibility. However, maintaining these principles can be a major challenge in large size teams. For instance, planned meetings and ceremonies may last longer than necessary, compromising efficiency and productivity. The need for quick communication and continuous feedback becomes even more crucial in multi-stakeholder environments and among team members.

Keeping all stakeholders aligned with updated information and adapting to changing requirements and priorities are intricate issues to overcome. Therefore, this article presents principles related to agile methodologies and identifies challenges in the routine of large size teams, highlighting how the Quality Assurance team identifies these barriers and seeks solutions to overcome them in software projects.

In this perspective, critical areas are discussed, like communication management, task coordination, resource allocation, process scalability, and the cultural transformation for adopting agile methods, focusing on the Scrum framework. Thus, this discussion provides relevant information about how to ensure the effective execution of the agile methodology in the routine of projects with large size teams, mainly for Quality Assurance professionals.

2. What Are Agile Methodologies?

2.1.The Agile Manifesto

In the early 2000s, a group of technology professionals came together to address a recurring frustration in the software development process related to the excess time and effort that companies invested in detailed planning and documentation, often losing focus on customer satisfaction. Although some agile practices were already in use, there was a need to consolidate and formalize these approaches.

In this context, the Agile Manifesto arose, and the ideas and demands that had long hovered over development and quality teams could be discussed, driving discoveries of better paths for software development (HIGHSMITH, 2001). This brief and practical document brought a fundamental transformation in the way many companies operate.

Thus, agile methods emerged to support the software development process, guiding projects with a high level of uncertainty, and seeking the flexibility for frequent changes in requirements, resulting in shorter delivery cycles and incremental development.

2.1.1. Transformation in Software Development Companies: Adoption of Agile Methodologies

Software development companies have undergone significant transformations with the consolidation and broad acceptance of agile foundations in the global development community. The teams have adapted to the agile methodologies culture, resulting in a fundamental change in the interaction between the corporate world of software development and quality and their customers.

The adoption of agile methodologies provides the possibility of increasing customer satisfaction in projects executed through this approach. It is positive because the agile methodologies are flexible and collaborative, allowing customers greater engagement and the flexibility to adapt to requirement changes. The result is deliverables that are more aligned with customers’ expectations and priorities, contributing to the project success.

2.1.2. The Fundamentals

  • Individuals and interactions over processes and tools: The value of interactions and effective communication in an agile team outweighs the emphasis on adoption tools and processes. Prioritizing effective communication establishes shared understanding, continuous adaptation, immediate feedback, collaboration, transparency, and team motivation.
  • Working software over comprehensive documentation: Working software is more important than extensive documentation. The documentation should be practical and concise. The focus is on developing and delivering parts of the application, ensuring that value is delivered to the customer and avoiding excessive time spent on documentation.
  • Customer collaboration over contract negotiation: Prioritizing continuous collaboration with the customer, understanding their demands, and adjusting the project. This strategy is more valuable than being stuck on rigid contracts and formalities.
  • Responding to change over following a plan: The ability to adapt and respond to changes is fundamental. Rather than adopting a rigid plan, agile teams should be open to adjustments based on feedback and changing project priorities.

2.1.3. Agile Frameworks: Scrum Methodology

Scrum is an agile methodology framework that supports the management and development of software projects. It has a structure composed of roles, ceremonies, and artifacts that supports teams to plan, execute, and deliver projects in an agile way.

The Scrum methodology is characterized by the organization of the Scrum Team and the definition of the team roles as follows:

  • Product Owner (PO): Responsible for setting priorities, managing product backlog, deciding features to be developed, and representing customer interests. PO ensures creating value for the customer and product needs.
  • Scrum Master: The main responsibility of the scrum master is to remove obstacles that impact the team’s performance, ensuring tasks flow without interruptions. In addition, the Scrum Master promotes continuous learning, encouraging constant improvement of agile practices and processes.
  • Developers: Responsible for designing, programming, and delivering the software following the project’s requirements. The development team implements features defined in the product backlog, and their focus is on creating high-quality solutions. They work in a self-managed manner and have the responsibility of delivering product increments during project sprints.
  • Quality Assurance Team: This team is responsible for mapping, creating, and conducting test cases, verifying compliance with quality standards, and ensuring that the software meets established requirements. The QA team identifies defects and problems in the software and works closely with the development team to fix issues and improve the quality of the software.

Sprint is the core of Scrum routine, and it is a fixed period, usually lasting 2–4 weeks, in which development and quality teams work in a set of priority features and user stories. A sprint is a unit of work that allows the team to deliver incrementally and iteratively.

During sprint, the team focuses on executing the tasks planned in the Planning Meeting. The result of one sprint is the delivery of functional and high-quality features that add value to the product.

There are also other structures that enable the organization and management of the project in the context of the Scrum methodology, such as:

  • User Story: User stories describe features or requirements from the user’s point of view and represent the goals that the team wants to achieve.
  • Task: Tasks are smaller units of work that make up the implementation of user stories and they are planned for each project sprint.
  • Backlog: The product backlog is a dynamic list of features, user stories, and tasks that are waiting to be developed in future sprints.
  • Timeboxing: Timeboxing is the predetermined time for a task to be completed within the deadline set by the team.

Considering the understanding of the organization and structures within a Scrum Team, it’s also important to explore how this structure transforms into daily actions and ceremonies. Some ceremonies are presented below:

  • Planning Meeting: It takes place at the beginning of each sprint to define what will be developed during this period. During this meeting, there is team interaction to present priorities of features and user stories, and to plan the related tasks. The outcome is a detailed plan of the tasks for the current sprint, including time estimates and clear understanding of the goals for this period.
  • Daily Meeting: It’s a daily practice in agile methodologies, like Scrum, and lasts between 15 and 30 minutes. During this meeting, the team shares what has been done, what will be done, and what obstacles they face. The goal is to keep the project team aware of the work in progress and resolve problems efficiently.
  • Refinement: This practice involves reviewing and improving product backlog items (features or user stories) before they are included in a sprint. During this meeting, the team details the backlog items together with the Product Owner, clarifies doubts and ensures that the activities are understood by everyone.
  • Retrospective: This ceremony that takes place at the end of each sprint, where the team thinks about its performance, shares feedback, and identifies strengths and areas for improvement.
  • Sprint Review: It occurs at the end of each sprint, where the team presents the completed work. This ceremony goals to ensure that customer expectations are met by collecting feedback.

Figure 1 illustrates in a simplified way the organization and work dynamics of Scrum described.

Figure 1?

3. The Importance of the Quality Assurance Team in Agile Development

From a greater understanding of the agile philosophy and its structure, this section discusses the role and organization of the Quality Assurance (QA) team in the context of software development in agile teams.

The QA team is responsible for ensuring that all processes, flows, documents, and software are delivered with quality to the end customer, seeking to apply good practices in all development tasks since the beginning of the project. This team also often works to check for potential missing scenarios, potential vulnerabilities, validation of implemented fixes, or verification of acceptance criteria in user stories.

The activities related to the performance of the QA team in a software development project are:

  • Create and Update Test Scenarios: The QA team constantly updates and creates new test scenarios according to the new specifications and features.
  • Test Plan: Developing and maintaining a test plan, which details the strategies, approaches, and resources needed to ensure adequate coverage throughout the project’s testing cycle.
  • Ensure the Proper Use of Tools: Proper use of tools is an important role in keeping the agile team and ensuring quality throughout testing processes. These tools can include automation, flowcharts, accessibility validators, test scenario generators, document generators, and reporting, among others.
  • Preparation of Activity Status Documents: The team is responsible for documenting the progress of its activities, including records detailing the progress of the tests, the results obtained, and the actions taken to address any issues or defects identified. These documents are essential for maintaining transparency and traceability of completed activities.
  • Automated Test Execution: These are tests performed automatically, without manual execution. Automated tests are essential to reduce the repetitive effort of activities and anticipate the detection of bugs.
  • Manual Test Execution: These are tests performed manually by the tester, comparing the results with the established test cases.

Considering agile methodology, the structures adopted by the projects and the responsibilities inherent to the QA team, it becomes clear the challenge to keep these values in large size teams. It also explains why studies and experts emphasize the importance of applying such methodologies in small teams with up to ten members.

4. Identifying Challenges in Large Size Agile?Teams

From the benefits of agile methodologies for project development, it is necessary to understand the challenges of adopting this approach in projects with large-size teams. Thus, Table 1 presents some challenges that can be identified in the routine of software projects with teams larger than recommended.

Table 1

In practice, the agile methodology can be compromised according to the size of the project and teams, affecting the aspects of agility, collaboration, and communication due to the complexity of the project and its processes. Therefore, it is necessary to discuss strategies and perceptions for conducting routine of projects and their particularities.

5. Challenges in Large Agile Teams: Quality Team Perception and Strategies

Like the entire team, part of the QA team’s role is to detect and solve challenges faced by large agile teams. The team’s insight is essential to understand how these challenges affect their daily activities and to develop strategies that ensure product quality.

In this context, Table 2 presents the challenges identified previously, associating them with a discussion on how they are perceived and overcome from the perspective of the QA team.

Table 2

6. Challenge Classification Overview

This article also presents a classification that categorizes the challenges faced by large size QA teams in the agile context, representing the following levels of impact: low, medium, and high. The classification discussed here has a qualitative profile and corresponds to the author’s point of view.

This visualization allows you the understanding of the areas that require more attention, facilitating analysis and strategic decision-making to overcome critical obstacles.

Figure 2

7. Conclusion

The agile philosophy and its structures are presented in this article, focusing on large size teams that use Scrum as a framework. Based on challenges faced by teams in this context, it was possible to identify nine challenges and highlight the QA team’s perspective, describing their insights and strategic approaches to overcoming them.

From transparent and efficient communication management until the adoption of agile culture, the proposed strategies not only address specific challenges, but they encourage a proactive and adaptive approach for the QA team performance. Considering the complexity inherent to large teams, it is essential to recognize the difficulties and their impact and promote practical solutions and applicable strategies.

Recognizing obstacles in team routines and implementing innovative approaches are important to ensure that agile teams perform in complex environments, maintaining the core values of agility and continuous value delivery to customers.

Article written by:

Danilo Silva , Trainee Test Analyst at FIT, Sorocaba, S?o Paulo. He holds a bachelor’s degree in Computer Science from Universidade Paulista, Sorocaba, and a postgraduation in Data Science from Facens, Sorocaba.

Michele Lermes , Tester I at FIT, Sorocaba, S?o Paulo. Currently, pursuing a degree in FullStack Systems Analysis and Development at Mackenzie Presbyterian University, Higienópolis.

Article reviewed by:

Gabrielly Araújo Cordeiro , Researcher. She holds a BSc in Production Engineering from the Federal University of Amazonas (Brazil) and an MSc and PhD in Mechanical Engineering at the University of Campinas (Brazil).

Jadder Cruz , Researcher at FIT, Sorocaba, S?o Paulo. He holds a BSc and an MSc in Computer Science from UFSCar (Brazil). Currently, PhD candidate at Unicamp (Brazil).

Acknowledgment

This research was partially funded by Lenovo, as part of its R&D investment under Brazilian Informatics Law, and by the FIT?—?Flex Institute of Technology with all further resources needed to perform this work.

References

AGILE MODELING. Agile Modeling and eXtreme Programming (XP). Ambysoft Inc., 2022. Available at: https://agilemodeling.com/essays/agilemodelingxp.htm .

ATLASSIAN. What is the Agile methodology?. Available at: https://www.atlassian.com/agile .

BALDISSERA, O. Top 5 Agile Methods You Should Use in Projects. Business and Management, 2021. Available at: https://posdigital.pucpr.br/blog/metodos-ageis

BASTOS, A. The types of agile methodologies most used by companies. Alura, 2023. Available at: https://www.alura.com.br/empresas/artigos/metodologias-ageis .

BESSA, T.; ARTHAUD, D. D. B. Agile methodologies for the development of

Software. Science and Sustainability?—?CeS. Vol. 4, n. 2, p. 173–213, 2018. Available at: https://periodicos.ufca.edu.br/ojs/index.php/cienciasustentabilidade/article/view/314 .

DRUMOND, C. Is the Agile Manifesto still a thing?. Available at: https://www.atlassian.com/agile/manifesto .

HI?N, B. X. XP In Software Engineering: All You Need To Know. Available at: https://biplus.com.vn/xp-in-software-engineering/.

HIGHSMITH, J. History: The Agile Manifesto. 2001. Available at: https://agilemanifesto.org/history.html .

ICODDE. Most used agile methodologies. 2022. Available at: https://www.dhirubhai.net/pulse/most-used-agile-methodologies-icodde/ .

KANBAN UNIVERSITY. Available at: https://kanban.university/ .

LIN, H. Implement Kanban Principles to Improve Your Workflow and Productivity. Available at: https://medium.com/an-idea/implement-kanban-principles-to-improve-your-workflow-and-productivity-dc3a97bcd188 .

PAREDES, A. The most used agile methodologies and their advantages within the company. Business & Tech, 2019. Available at: https://www.iebschool.com/pt-br/blog/software-de-gestao/as-metodologias-ageis-mais-utilizadas-e-suas-vantagens-dentro-da-empresa/ .

PROJECT MANAGEMENT ACADEMY. The Basics of Agile Project Management. 2018. Available at: https://projectmanagementacademy.net/resources/blog/the-basics-of-agile-project-management/ .

PUCRS PORTAL. Agile methodologies: why you should seek to know more about the subject. 2020. Available at: https://www.pucrs.br/blog/metodologias-ageis-por-que-voce-deveria-procurar-saber-mais-sobre-o-assunto/ .

REHKOPF, M. Kanban v. Scrum: What Kind of Agile Are You?. Atlassian. Available at: https://www.atlassian.com/br/agile/kanban/kanban-vs-scrum .

SANTO, D. E. Top 5 main Agile methodologies: advantages and disadvantages. Expand IT, 2022. Available at: https://www.xpand-it.com/blog/top-5-agile-methodologies/ .

SCRUM.ORG . What is Scrum?. Available at: https://www.scrum.org/learning-series/what-is-scrum .

SCRUM GUIDES. Available at: https://scrumguides.org/ .

SILVA, V. I. Analysis of Agile Software Development Methodologies: The advantages and disadvantages of Scrum and Extreme Programming (XP). Final Paper (undergraduate)?—?Federal University of Santa Catarina, Socioeconomic Center, Department of Administration Sciences, Florianópolis, 2022. Available at: https://repositorio.ufsc.br/bitstream/handle/123456789/237277/TCC%20-%20Final.pdf?sequence=1&isAllowed=y .

VACANTI, D.; YERET, Y. The Kanban Guide to Scrum Teams. Scrum. org, 2021. Available at: https://www.scrum.org/resources/kanban-guide-scrum-teams .

WANLI, N. What is Scrum? Codecoda, 2021. Available at: https://codecoda.com/en/blog/entry/what-is-scrum .

WELLS, D. Extreme Programming: A gentle introduction. XP Extreme Programmming, 2013. Available at: https://www.extremeprogramming.org/

WIKI C2. Extreme Programming. Available at: https://wiki.c2.com/?ExtremeProgramming .

WIKIPEDIA. Extreme Programming. Available at: https://en.wikipedia.org/wiki/Extreme_programming


要查看或添加评论,请登录

社区洞察

其他会员也浏览了