Bernardo José da Silva Estácio
Pontifícia Universidade Católica do Rio Grande do Sul
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Bernardo José da Silva Estácio.
Information & Software Technology | 2015
Bernardo José da Silva Estácio; Rafael Prikladnicki
ContextGeographically distributed teams have adopted agile practices as a work strategy. One of these practices is Distributed Pair Programming (DPP). DPP consists in two developers working remotely on the same design, algorithm or code. ObjectiveIn this paper we sought to identify and synthesize papers that describe and analyze DPP both from teaching and practice perspectives. MethodWe conducted a Systematic Literature Review to search for empirical evidence in eight digital libraries. ResultsMost of the 34 DPP primary studies identified explore DPP from a teaching perspective. We found that DPP requires a specific infrastructure, but the existing studies do not explore the impact of the distribution in the details. There are many tools proposed that support DPP practice, but few of them are evaluated within a software development team. ConclusionWe need more studies that explore the effects of Pair Programming in the context of Distributed Software Development, such as coordination and communication. Most of the studies do not empirically evaluate DPP in industry. There is also a need to propose guidelines to use DPP in industry and as a teaching strategy.
brazilian symposium on software engineering | 2015
Bernardo José da Silva Estácio; Roberto Felicio Oliveira; Sabrina Marczak; Marcos Kalinowski; Alessandro Garcia; Rafael Prikladnicki; Carlos José Pereira de Lucena
[Context] Collaborative programming is achieved when two or more programmers develop software together. Pair Programming and Coding Dojo Randori are two increasingly adopted practices for collaborative programming. While the former encourages the collaboration in pairs, the latter promotes collaboration in groups. However, there is no broad understanding about the impact of these practices on the acquisition of programming skills. [Goal] In this study, we empirically compare the influence of both collaborative practices on two essential aspects of skill acquisition: motivation and learning. [Method] We conducted a controlled experiment with novice programmers applying solo programming and both collaborative practices to three different programming exercises using a crossed design. [Results] Our results showed that, while both practices outperformed solo programming, they also presented complementary benefits on acquiring programming skills. For instance, the programmers inserted less code anomalies in Coding Dojo Randori sessions than in Pair Programming sessions. On the other hand, the motivation was often considered to be stronger in the latter than in the former. [Conclusions] Our results suggest that the use of collaborative practices is particularly promising for acquiring programming skills, when programmers have little or no practical experience with software development.
agile conference | 2014
Bernardo José da Silva Estácio; Rafael Prikladnicki; Michael da Costa Móra; Gabriel Notari; Paulo Caroli; Alejandro Olchik
The process of teaching Software Engineering has undergone questions about the methods that have been used in training activities. Recent studies show that these methods involve traditional teaching strategies, such as presentation of theory and lectures. For this reason, students usually find in industry a different scenario than what is taught in the classroom. In parallel, other studies indicate that the emergence of agile methods in the 90s led to the formation of high performance teams with great level of knowledge in technical, business and behavioral domains. For this reason, we have proposed a training method called Software Kaizen, which provides temporary immersion of a team in a high-performance environment, based on agile methodologies. This paper presents the method and the results obtained from its application. We report on four replications of the method, with good results in learning, posture change and teamwork, some of the expected characteristics of high-performance teams.
hawaii international conference on system sciences | 2015
Bernardo José da Silva Estácio; Natasha M. Costa Valentim; Luis Rivero; Tayana Conte; Rafael Prikladnicki
Collaborative programming is an important pedagogical tool in computer science higher education. In this context, Pair Programming has been established as an effective practice for teaching programming. In addition, Coding Dojo has recently emerged as a collaborative group practice that uses Pair Programming as a mechanism to allow everyone to participate. However, both Pair Programming and Coding Dojo are rarely used in different types of programming tasks such as front-end programming tasks. In this paper, we present an empirical study comparing Pair Programming and Coding Dojo in the teaching of mock-ups development. Our goal was to evaluate both practices regarding three dimensions: motivation, user experience and learning perceived by students. The results showed that Pair Programming was well accepted by the students with positive results in all three dimensions. Moreover, although Coding Dojo has presented positive results in the leaning process, students reported several challenges related to motivation and user experience.
2016 X Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS) | 2016
Roberto Felicio Oliveira; Bernardo José da Silva Estácio; Alessandro Garcia; Sabrina Marczak; Rafael Prikladnicki; Marcos Kalinowski; Carlos José Pereira de Lucena
Code smells are often considered as key indicators of software quality degradation. If code smells are not systematically removed from a program, its continuous degradation may lead to either major maintenance effort or the complete redesign of the system. For several reasons, software developers introduce smells in their code as soon as they start to learn programming. If novice developers are ought to become either proficient programmers or skilled code reviewers, they should be early prepared to effectively identify code smells in existing programs. However, effective identification of code smells is often not a non-trivial task in particular to a novice developer working in isolation. Thus, the use of collaborative practices may have the potential to support developers in improving their effectiveness on this task at their early stages of their careers. These practices offer the opportunity for two or more developers analyzing the source code together and collaboratively reason about potential smells prevailing on it. Pair Programming (PP) and Coding Dojo Randori (CDR) are two increasingly adopted practices for improving the effectiveness of developers with limited or no knowledge in software engineering tasks, including code review tasks. However, there is no broad understanding about the impact of these collaborative practices on the effectiveness of code smell identification. This paper presents a controlled experiment involving 28 novice developers, aimed at assessing the effectiveness of collaborative practices in the identification of code smells. We compared PP and CDR with solo programming in order to better distinguish their impact on the effective identification of code smells. Our study is also the first in the literature to observe how novice developers work individually and together to identify smells. Our results suggest that collaborative practices contribute to the effectiveness on the identification of a wide range of code smells. Our findings can also be used in practice to guide educators, researchers or teams on improving detection and training on code smell identification.
Information & Software Technology | 2017
Raoul Vallon; Bernardo José da Silva Estácio; Rafael Prikladnicki; Thomas Grechenig
Abstract Context Developing software in distributed development environments exhibits coordination, control and communication challenges. Agile practices, which demand frequent communication and self-organization between remote sites, are increasingly found in global software development (GSD) to mitigate said challenges. Objective We aim to provide detailed insight into what is reported on the successful application of agile practices in GSD from 1999 to 2016 and also identify the most frequently applied agile practices and reported distribution scenarios. We further strive to uncover research opportunities and gaps in the field of agile GSD. Method We build our systematic literature review on top of a previous review, which investigated studies published between 1999 and 2009, and extend the review by years 2010–2016, for which we conduct both a quantitative and a qualitative analysis. Results Our results show that the majority of the cases studied is global and involves complex distribution scenarios with Scrum or combined Scrum/Extreme Programming being the most used agile methods. Key results include that in contrast to 1999–2009, where four Extreme Programming practices were among the ten most frequently used agile practices, in 2010–2016 Scrum is in the center of agile GSD implementations with eight Scrum-based practices in the top ten agile practices used in GSD. Conclusion Agile GSD is a maturing research field with higher quality contributions and a greater variety of publication types and methods from 2010 to 2016 than before from 1999 to 2009. However, researchers need to report full empirical contextual details of their studied cases in order to improve the generalizability of results and allow the future creation of stronger frameworks to drive the implementation of agile practices in GSD.
international conference on software engineering | 2016
Bernardo José da Silva Estácio; Franz Zieris; Lutz Prechelt; Rafael Prikladnicki
Background: Coding Dojo Randori is a collaborative practice of joint training (with discussion). Objective: Evaluate Randori training behaviors. Method: Qualitative data analysis of recordings of Randori sessions. Results: (1) The training may involve different levels of collaboration, from a task level to a concept level. (2) Randori can help novices via the interaction with more experienced developers. Conclusion: Suitable behavior and interactions of the developers in a Randori session can help to create an environment with valuable discussion on a specific software topic.
european conference on software architecture | 2018
Awdren de Lima Fontão; Bernardo José da Silva Estácio; Juliana Fernandes; Rodrigo Pereira dos Santos; Arilo Claudio Dias-Neto
In Mobile Software Ecosystems (MSECO), keystone organizations provide mobile platforms and perform training sessions to educate and motivate developers to achieve goals, such as increasing the number of mobile apps as well as reusing and integrating information. Dedicated official staff known as evangelists performs official training sessions. However, there is little discussion about the factors that affect training sessions in MSECO. It can support evangelist in planning and performing effective training sessions. In this paper, we share results from two experimental studies to evaluate factors that may affect training sessions: (1) Case study: we identified seven impact factors in the context of a real MSECO; and (2) Survey: these factors were evaluated by 25 evangelists with respect to impact level. Those seven factors ordered by impact level are: Commitment of the partner institution; Infrastructure; Evangelists approach; Focus on goals; Synergy; Subjectivity of the training planning; and Risk mitigation.
software engineering and knowledge engineering | 2015
Natasha M. Costa Valentim; Tayana Conte; Bernardo José da Silva Estácio; Rafael Prikladnicki
Usability inspections can be employed in early phases of the software development process. They improve usability through artifacts that are built during the develop ment of the software. These artifacts will influence the usabil ity of the developed software. Usability inspection techniques have been proposed and considered as an effective alternative for addressing usability issues in early phases. Howeve r, these techniques are often avoided by software engineers due to their lack of experience and knowledge in the field. Ther efore, there is an opportunity to investigate how industry practiti oners have employed an early usability inspection technique in practice. This paper describes an observational study in the indus try aimed at eliciting the process used by software engineers wh en applying an early usability inspection technique. We analyzed t he qualitative data, discussing their impact in the improvement of the technique. The results indicated which steps the so ftware engineers adopted in the techniques application.
international conference on global software engineering | 2014
Josiane Kroll; Bernardo José da Silva Estácio; Jorge Luis Nicolas Audy; Rafael Prikladnicki
Global software companies are restructuring their IT area by extending operations to offshore software development centers. Thus, follow-the-sun (FTS) development is seen as a potential software development strategy for these companies. But so far, FTS is relatively understudied (only nine empirical studies published). Moreover, the success cases of FTS usage in the software industry are still small. The lack of studies to close the gap between theory and practice is observed as the main barrier to the FTS evolution. In this study, we present a framework to support research on FTS software development. The proposed framework aims to support empirical studies and meta-analysis on FTS. Based on a comprehensive literature review, we propose an initial framework for researching FTS software development, including independent, dependent and context variables. Additionally, we discuss research challenges, and directions for future research. Our paper aims to provide both a guide and motivation for researchers to better understand how to research FTS and to develop new theories in the area.