Hiring a newly graduated software engineer represents a challenge for any organization due to the existing gap between industry and academia. Internship programs are a proven strategy to help address this issue. However, although there are documented cases, they are not abundant, and each organization has its own particularities. This article presents the internship program implemented by a Mexican company five years ago and recently redesigned. The described experience spans the entire process, from participant recruitment to their integration as regular employees within the organization. Program results are shared along with the lessons learned.
Test-Driven Development is one of the foundational Agile techniques with well known benefits. But it has not reached mainstream adoption. One possible reason is the way it is taught. This article presents a thematic analysis study on challenges and recommendations for those trying to teach Test-Driven Development. It is based on 15 interviews with educators and practitioners from different countries with experience teaching TDD. Our study identified six challenges and 21 recommendations grouped in four themes that can help educators and trainers to design and deliver effective Test-Driven Development training.
Desde febrero de 2020 la pandemia de COVID-19 se extendió por todo el planeta, impactando en todos los ámbitos de nuestra vida incluida la educación. Nos vimos forzados a renunciar a nuestras aulas físicas para dictar nuestras clases por videoconferencia. Este cambio tuvo distinto impacto dependiendo la forma en que cada docente venía dictando su materia. Luego de dos años la pandemia pasó y volvimos al aula pero de una forma distinta. El presente trabajo relata la experiencia de atravesar la pandemia y volver al aula en una materia de Ingeniería de Software dictada en la Universidad Nacional de Tres de Febrero. Junto con la experiencia se resumen una serie de aprendizajes obtenidos y un conjunto de reflexiones de cara al futuro.
Abstract Software processes and practices have a leading role in software development and in the last few decades a wide variety of processes and practices have emerged to face the challenges arising in the software industry. The success of process and practice adoption initiatives depends at least partially on the experience and satisfaction of the people who use them, thus making usability an interesting process quality attribute. This paper describes the inter-rater reliability evaluations performed on the UMP to assess consistency among metric values produced by different evaluators. It presents two inter-rater reliability assessment studies, the Scrum study and the TDD-BDD study. The paper presents four inter-rater reliability statistics for the process and practices under study, a comparative analysis of their strengths and weaknesses, and an analysis of the study results and their interpretation. The results show varying reliability results among the different UMP metrics, which seem to depend mostly on object of evaluation (Scrum, TDD, BDD), metric subjectivity and context sensitivity. The UMP was refined from the data gathered in the studies and a metric categorization is proposed to facilitate metric usage.
DevOps has reached the mainstream, in part, because it proposed a way to solve the last mile of the software delivery process. It brought to the industry concrete solutions to some concerns that software engineering and academia have traditionally ignored. The popularity and success of DevOps got the attention of the academia and some universities have started to include DevOps related content in their programs. After doing our own experience, we found out that introducing DevOps is not as simple as adding a new course. In fact, it requires a major redesign of the Software Engineering curriculum. In this article we share some key ideas and recommendations to include DevOps in Software Engineering programs.
Together with many success stories, promises such as the increase in production speed and the improvement in stakeholders’ collaboration have contributed to making agile a transformation in the software industry in which many companies want to take part. However, driven either by a natural and expected evolution or by contextual factors that challenge the adoption of agile methods as prescribed by their creator(s), software processes in practice mutate into hybrids over time. Are these still agile? In this article, we investigate the question: what makes a software development method agile? We present an empirical study grounded in a large-scale international survey that aims to identify software development methods and practices that improve or tame agility. Based on 556 data points, we analyze the perceived degree of agility in the implementation of standard project disciplines and its relation to used development methods and practices. Our findings suggest that only a small number of participants operate their projects in a purely traditional or agile manner (under 15 percent). That said, most project disciplines and most practices show a clear trend towards increasing degrees of agility. Compared to the methods used to develop software, the selection of practices has a stronger effect on the degree of agility of a given discipline. Finally, there are no methods or practices that explicitly guarantee or prevent agility. We conclude that agility cannot be defined solely at the process level. Additional factors need to be taken into account when trying to implement or improve agility in a software company. Finally, we discuss the field of software process-related research in the light of our findings and present a roadmap for future research.
DevOps is one of the mainstream topics in the software industry nowadays. Because of this, in recent years, some universities have started to include DevOps related content in their programs. In some cases, specific DevOps courses were created while in other cases DevOps topics were included in existing ones. This article describes an experience of including DevOps topics in a Software Engineering advanced course. Details of the practices and tools covered are provided along with explanations of the teaching approach and the cloud services used to deliver the course.
Background: Agile Software Development has been around for almost 20 years and it is now mainstream. Many companies claim to be agile but what that really means is not clear. There is a wide scope of software engineering practices in use nowadays, some are technical and some organizational, and some are agile and some are not agile at all. Objective: In this study we aim to understand the influence o f A gile in the set of practices that are currently in use in the software industry. Method: The data from HELENA Survey, a large-scale international initiative, was analyzed. Results: The practices with higher usage rate are strongly related to Agile, some of them were introduced by agile methods while others are pre-agile. Those that were introduced by agile methods are mainly organizational practices, while those that are pre-agile are mainly technical practices. Conclusion: The main usage of agile nowadays in software development is related to people and work organization; and the most popular technical practices are those pre-agile practices that were included in the agile methods.
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.
DevOps is currently one of the most popular topics in the software industry. All the important software vendors have some kind of DevOps offering today. This popularity brings some confusion and for many people it is not completely clear yet what DevOps is. This article presents a summary of a DevOps tutorial that covers DevOps foundations and its core practices. The tutorial offers a mix of theory and practice with a hands-on approach. DevOps core practices like Infrastructure as Code and Continuous Delivery are presented using tools like Ansible, Docker, Kubernetes, FlywayDB and Jenkins.
Processes and practices are tools that organizations use to improve their capabilities. Agile transformations are very popular, as are process and practice improvement and adoption initiatives, but they face many challenges, including low adoption rates. Improving process and practice usability might increase adoption rates and effective use. This idea led us to define a Usability Model for Software development Process and Practice (UMP), consisting of characteristics and metrics, in the quest to improve the work experience of software development practitioners and the effectiveness of process and practice adoption initiatives. The goal of this paper is two-fold: (1) to present the refined version of the UMP and (2) to describe a study on the application of the UMP to the Visual Milestone Planning (VMP) method in order to evaluate UMP's utility, specifically its ability to produce useful feedback in a real-life scenario. The study produced preliminary confirmation that the UMP is applicable to the VMP, along with specific feedback on improvement opportunities for the VMP. An interview with the VMP creator confirmed that the UMP model and the evaluation feedback were valuable for enhancing VMP adoption. In summary, we can conclude that the empirical results obtained show that UMP can be useful. Nonetheless, more studies are needed to provide further confirmation in different scenarios.
DevOps is one of the most popular approaches for software delivery nowadays. Even though there is no unified definition of DevOps, there is wide consensus about the set of practices that are part of it. Two of those practices are Infrastructure as Code and Continuous Delivery, which bring new artifacts into the Software Development lifecycle. These new artifacts have direct impact on Software Configuration Management, which is a well-known practice that has been around for decades in the Software Engineering discipline. In particular, these new practices have a direct impact on Version Control. This article describes a Version Control Strategy to manage these new artifacts introduced by DevOps initiatives. The proposed strategy covers the identification of artifacts, versioning tools, version naming conventions and traceability between different artifacts versions. The strategy was validated in three cases of real world projects where it was successfully applied. Each case corresponds to a different kind of organization and in each case a different set of tools where used. Based on these cases, benefits and possible improvements are identified.
Background: Agile Software Development is widely used nowadays and to measure its real usage we need to analyze how its practices are used. These practices have been categorized by several authors and some practitioners have suggested that technical practices have a lower usage level than organizational practices. Objective: In this study we aim to understand the actual usage of technical and organizational agile practices in the Latin-American Agile community. Method: We conducted a three-stage survey in conferences of the Latin-American Agile Community. Results: Organizational practices are much more used than technical ones. The number of practices used is a direct function of organization experience using agile. The difference between technical and organizational practices reduces with the experience of the organization using agile. Team size and project duration seem to have no effect in the number of practices used.
New teaching approaches like the flipped classroom are an interesting alternative to educate new generations but they represent new challenges for teachers. This paper describes our experience re-designing our classes and study materials in order to adopt a flipped classroom approach combined with some other non-traditional teaching techniques. This experience is focused on the Software Engineering course at Universidad Nacional de Tres de Febrero. In this paper we share details of our strategy, the positive results we obtained and the concerns we still need to address.
HELENA Survey is a worldwide initiative that aims to investigate the use of hybrid software development approaches ranging from agile to traditional and how they combine. This article presents the initial results and observations on software development practice in Argentina, and briefly discusses two patterns of interest related to software development practice usage.
Marcela Genero合作论文数Departamento de Tecnologias y Sistemas de Informacion
Escuela Superior de Informatica.
Universidad de Castilla-La Mancha3
David M. Raffo合作论文数Professor of Supply & Logistics Management and Information Systems1
Kurt Schneider合作论文数Software Engineering Group, Leibniz Universitat Hannover, Hannover, Germany1
Stefan Biffl合作论文数Department of Software Engineering, Institute of Information Systems Engineering, Technische Universitat Wien1