
Requirements Engineering (RE) is one of the prime areas in software development. Since agile software development englobes several emerging techniques and advocates for continuous improvement, it urges the question of which agile RE practices are currently most used, their characteristics, and the challenges in their employment. The aim of this work is to investigate and categorize the collection and specification of agile requirements practices based on how professionals perceive their importance for a software project that applies agile methodologies. Thus, a survey was carried out with forty-six (46) Brazilian software development professionals, inquiring which methods are used for the collection and specification of agile requirements, as well as the features, benefits, and difficulties when employing the methods. The responses allowed us to perform data analysis and identify the relationships between the respondents' experience and the viewpoints on the collection methods and the agile requirements specification. In addition, it was noted that the adoption of these methods is still very recent. They have mainly been used for less than five years. Moreover, it was noted that, for most respondents, there are yet significant challenges and advances to be made for better efficiency in applying the informed methods.
The social distancing practices adopted to contain the spread of the COVID-19 pandemic led many companies to migrate to remote work in a compulsory and unplanned way. This sudden transition to working from home has caused profound changes in personal and professional relationships. In this paper, we present the results of a qualitative observational study about the adaptations made in the software process activities of a software development coordinator of a Brazilian university. These adaptations aimed to support the transition to remote work during the pandemic, without letting the organization lose its essence in adopting agile practices. These adaptations were analyzed based on the technical aspects (hard skills) and behavioral aspects (soft skills) of the employees of the researched organization.
Due to concerns with agile testing scenario in Brazil, this paper presents the mapping (2010–2019) and analysis of the research on software testing published on Agile Methodology Brazilian Workshop (WBMA), Agile Brazil throughout these years. Such work aims to verify the development, the diversity of papers related to software testing and arising from the concerns with the studies of the testing scenario in agile methods in Brazil; this paper presents the mapping (2010–2019) and analysis on the development of research in software testing in papers published in the Brazilian Workshop on Agile Methods (WBMA), Agile Brazil. The paper used systematic literature review practices, enabling qualitative and quantitative analysis of the collected evidence. This effort aims to verify the growth, the diversity of approaches linked to the use of testing in the broader context of agile methodologies and to make notes on the profile of the papers, given the strengthening of studies in the area in the last decade, in spaces of academic discussion and applications in industry. We conclude that the number of publications has been growing over the years. However, the absolute number of papers published in all event editions is still not so expressive, especially considering the large number of software testing topics that exist or need improvement. As a result of this work, some points emerge about the relationship of authors and institutions with software testing research.
The work in communities has been expanding since the ascensus of technology-based companies, today called startups. Whether created informally or having a supporting company behind, it's hard to find any company that does not have at least a internal discussion group on the topic or support external initiatives related to topics and practices of interest. Today, events, formal and exclusive groups and meetups exist within this collaborative environment. This work aims to understand the motivations that these communities have to adopt Agile Methods in their management and how beneficial this can become for the management of knowledge transfer. 68 respondents stated that safe learning environments make the best positioned companies in their ecosystems and allow that new products are developed in a more collaborative way, even if unofficially, it can generate financial savings and learnings journeys.
Agile Software Development (ASD) has become the most chosen development method. The core fundamentals of ASD are based on Teamwork factors and how valuable it considers individuals and their interactions over processes and tools. Researchers have shown the positive impact of teamwork quality in ASD and the importance of assessing it to increase the chances of succeeding projects in this context. Based on this, some researchers have proposed instruments that can assess ASD teamwork quality. One of these instruments is a bayesian network-based model (TWQ-BN), with its practical utility assessed in a case study presented in previous work. However, there is a lack of practical use cases documented using TWQ-BN to identify process improvement opportunities. This paper addresses this gap by presenting two industry-based use cases to help potential users understand how to use TWQ-BN to define action items to improve the team’s effectiveness. This paper provides better guidance toward adopting TWQ-BN and shows how it can be used as a tool on iteration retrospectives to diagnose the teamwork quality.
This article presents the experience of implementing the Scrum framework in incubated companies in the Information Technology field. The main goal of this study was to demystify the idea that a senior team is required for the application and good performance of Scrum. Another goal was to verify the time needed for companies to start using the framework and to identify the time it takes for teams to achieve stability in the project. In addition, we observed the velocity rates, if there was an increase in velocity during the project execution, and we also inspected the differences between what was planned and what was performed. In terms of methodology, this is a case study performed by market professionals.
DevOps has changed the software industry to enable continuous delivery. While many studies have investigated on how to introduce DevOps into a software product from the organizational perspective, less is known about the technical challenges developers and practitioners face when transforming legacy codes into DevOps, despite the undisputed importance of this topic. In this paper, throughout the context of web applications, we report the results of a study case with the adoption of four legacy open-source projects into DevOps to understand which refactoring techniques and strategies influence developers’ decisions. We analyze two dependent variables: the technique used and how they are applied to the project. After every implementation, there was an overview of the process that just occurred and later a written report on how the strategies have been applied, their respective order, which strategy has been more fruitful, and such. Those reports have been the foundation of this study. The main findings of such study are that some strategies are more efficient when viewed from the evolution aspect and the sequence these techniques are employed matter.
This work aims to present a literature review of the application of Scrum in highly hierarchical organizations. The author initially defined three main bibliographic bases in Computer Science in the search strategy applied to this research, which resulted in 369 articles found. The application of exclusion criteria specified in the study resulted in twelve articles described in this paper. In addition to the twelve articles identified and analyzed through the literature review, this paper also presented other relevant articles about the topic and three previous articles from the author. Despite the apparent contradiction between agile teams with horizontal interaction between their members and organizations based on command and control structures, it is clear that compatibility in the application of agile methods in these strongly hierarchical organizations is possible.
It is generally difficult in agile teams, specially those geographically distributed, to keep up with the user experience (UX) issues that emerge on each product increment. UX designers need the help of developers to set up user testing environments and to code improvements to the user interface, while developers are too busy with functionality issues. This paper describes a tool called UX-Painter and shows through a case study, how it may help in the above setting to synchronize UX practices and allow for continuous UX improvement during an agile development. UX-Painter allows designers to set up A/B testing environments, exploring interface design alternatives without the need of programming skills, through predefined transformations called client-side web refactorings. Once a design alternative is selected to be implemented in the application's codebase, UX-Painter may also facilitate this step, exporting the applied refactorings to different frontend frameworks. Thus, we foster a method where UX backlog items can be systematically tackled and resolved in an agile setting.
The Agile Manifesto describes that the most efficient and effective method of conveying information to and within a development team is through face-to-face conversation. However that is not always possible when teams are working in a Global Software Development (GSD) environment. Based on this scenario, this study presents an exploratory data analysis using survey results to explore agile practices and challenges of a global software development team that uses Scaled Agile Framework (SAFe), which is designed for the need of larger organizations. The goal of this study is to understand the team’s level of knowledge in some agile practices and which types of communication are usually prioritized. As in GSD environments team members are geographically spread across multiple regions and time zones, we aim to identify challenges this environment can present. As a result of this exploratory analysis, it has been identified that communication is one of main challenges in GSD environment and that phone calls are considered to be the most efficient type of communication. Additionally, we have also identified that professionals have different levels of confidence in Agile practices and concluded that knowledge transfers among the professionals could help those team members that are not confident in some agile practices to increase their overall confidence and knowledge.
Agile is the most popular approach for software development nowadays, present in many companies and also in academia. Many universities have included agile in their curricula but there are no formal studies focused in the Argentinean Universities. In this study we aim to make an initial assessment of the state of Agile Education in the context of the Information Technology and Computer Science programs in Argentina. With this goal we conducted a survey in a national conference of Systems Engineering. Our results confirm that Agile is present in the curricula but in most cases it is only covered from a theoretical point of view. We also identified some situations that suggest a lack of depth in the way some practices are taught.
This position paper aims at building a short narrative on what has been the need for agility, its evolution, and a possible re-purpose based on our global sustainable development challenges. Agile implies that a software development team (or now entire organizations) should be resilient, adaptable, and quickly learn, which is also a great capability featured by nature. However, the justification for becoming agile is being a chorus of voices repeating the same mantra: competitive advantage. The evolution of agility could be shaped by forces of cooperation, instead of only of competition, with a purpose to enable a better and more sustainable future for society. There is a strong case for inter- and trans-disciplinarity in agile, technology and sustainable development research, where agility has definitely a role.
The aim of this paper is to share the main lessons learned in more than one year of work in the Agile Transformation of the Brazilian Aeronautics Computing Center of São José dos Campos. At the beginning of works, the intention was to support the implementation of Scrum as a framework for software development. The first faced challenge was the paradox between Scrum, for its horizontality in the interaction between individuals and the military hierarchy. An update in the Internal Regulations of this Computing Center included in its organizational structure a Project Management Office focused on advising Scrum Teams. The Scrum Teams were also included in the organizational structure, with no hierarchical link to any sector of the Organization. Over time, there has been an increase in people’s engagement to this work. The year 2019 began with the reorganization of the teams, following the Scrum Guide, and with two success stories: the construction of a Flight Simulator and the development of a system that controls the overflight of foreign aircraft in brazilian airspace.
Due to its multidisciplinary and dynamic nature, it is challenging to design Software Engineering (SE) educational material. To do so, universities must consider the complex working environments; recent technologies; and tools and skills, in order to prepare students to fulfill the expectations of the software industry. This study was carried out in a Brazilian private university, specifically in courses called Interdisciplinary Software Project (ISP) of the SE major. These courses are project-based, conducted by two professors at the same time in classroom, following a Scrum-like process. The objective of this study was to characterize how students work and collaborate in a group environment where agile development is used as well as how their behavior reflect on the use of Software Configuration Management (SCM) practices. In order to achieve this objective, the study analyzed 38 students’ code repositories. This study has found out that students procrastinate sprint work, since 51% of the commits are performed when less than 20% of the sprint time is left. We have also observed that in 87% of the groups just one member is a top contributor and would harm the projects’ outcomes if he/she left the project. In terms of SCM practices, we have identified that most commits comprised changes in up to three files. Moreover, most commit messages are less than 10 words long. This could mean that students do not commit many alterations at the same time but could make better use of messages in order to facilitate the comprehension of alterations by other members.
The agile development of software requires new approaches to serve users and end customers. The combination of Lean and User-Centered Design with Agile gives software development a competitive advantage. Given the novelty and scarcity of studies on such combined use in software development, as part of our long-term research that aims to develop a maturity model to accelerate the transformation from agile to the use of the combined approaches, we posed as our first step to identify what are the underlying concepts involved on the use of agile, lean, and user-centered design. We first conducted multiple literature reviews to identify the concepts for each of the individual approaches to then conduct an empirical study in order to identify what is considered useful by two software teams of a multinational IT company that are going through such a transformation for about 6 months. Our study revealed that there are concepts from literature not yet considered in practice and the other way around, there are practiced concepts not found in literature. For now, we hypothesize that this is due to the early maturing process of the studied teams. We believe that this is an initial contribution that can be of help for other teams enduring this challenging transformation process. Our research will next investigate how the three approaches relate to one another in order to provide a unique and consolidated combined model of concepts that will further be used as the skeleton of our maturity model.
It is essential for the success of a project to put together teams that meet the project requirements with lower cost and higher quality. Given this context, the present study developed a tool called ATIMO that uses the optimization algorithms NSGAII, SPEA2, and MOCell, to put agile teams together. The algorithms implemented in ATIMO were tested by being applied to four real projects in an experiment performed by a software development company. This approach took into account the project features, the developers’ profile, and both the project and the organization constraints. As a result, the algorithms returned solutions with the number of resources needed to carry out the project as well as the best qualified resources for the project with productivity and lower cost to meet the established deadline. The algorithms NSGAII, and SPEA2 presented similar results and behavior, as the MOCell algorithm presented a better performance in computational effort and required a larger population for its saturation.
This paper is an Action Research about adopting Mob Programming and Simultaneous Style Pair Programming to develop a battle royale game called Pirate Ship Battles. Mob Programming helps the developers to learn an open-source framework for games called Phaser and another one called Jest to automatization of the tests. The following are two examples of insights that occurred respectively in the first and third cycles of action research. The team collaboratively agreed to start by learning in a Mob Programming doing the infra-structure to the tests and also to deepen the knowledge about Phaser should help in the next parts of the project. Another example of insight occurred in the third cycle of this action research is about testing activity, fixing the bugs, was observed funnier comparing with testing alone. The team reported it was funnier testing altogether, when a mistake happens to run new code, everybody paying attention to the projector on the fault, a ready joke. Perhaps, because they are friends and the project is a game. Another possible explanation about our experience of funnier testing activity in a Mob Programming compared to testing alone is that we humans are social beings. Concluding, the source code of the game is of excellent quality as evaluated by CodeClimate by classifying it with grade A, the developers enjoyed, and both approaches increased the learnings.
This paper presents the results found in the application and adaptation of an agile approach to software development in a course called “Interdisciplinary Software Project IV” at the bachelor’s degree in Software Engineering from the Pontifical Catholic University of Minas Gerais over two years with twenty projects already done. In the fourth semester of the course, students have to develop a software with a social focus. They are introduced to real customers from the communities with real problems and need to incorporate useful knowledge of the current semester subjects into their system, with artifacts and documentation. Through the use of the Scrum framework, it was possible to observe several adaptations made to suit the academic context, although the practical reality of the course, and the nature of the clients for which the projects are developed. Throughout the paper are presented the results obtained and which can serve as an example for similar approaches.
Test-Driven Development (TDD) is an iterative software development technique in which unit tests are defined before production code, while Test-Last Development (TLD) is a more traditional development technique in which unit tests are written after the features are implemented. There have been a number of empirical studies investigating the effects of TDD compared to other approaches in terms of software quality and productivity. However, there are few investigations in which the TDD effects are explored from the viewpoint of the developers’ experience. This paper presents an eye-tracking study carried out in order to measure visual attention during the coding and test tasks when developers are using TDD compared to TLD. Our preliminary findings pointed out a similar visual effort proportion in both techniques, but a difference regarding eye gaze behavior between them which needs to be confirmed.