Búsqueda avanzada

El autor Oscar Dieste ha publicado 5 artículo(s):

1 - Empirical Evaluation of the Effects of Experience on Code Quality and Programmer Productivity: An Exploratory Study (Artículo Relevante)

Context. There is a widespread belief in both SE and other branches of science that experience helps professionals to improve their performance. However, cases have been reported where experience not only does not have a positive influence but sometimes even degrades the performance of professionals. Aim. Determinewhether years of experience influence programmer performance. Method. We have analysed 10 quasi-experiments executed both in academia with graduate and postgraduate students and in industry with professionals. The experimental task was to apply ITLD on two experimental problems and then measure external code quality and programmer productivity. Results. Programming experience gained in industry does not appear to have any effect whatsoever on quality and productivity. Overall programming experience gained in academia does tend to have a positive influence on programmer performance. These two findings may be related to the fact that, as opposed to deliberate practice, routine practice does not appear to lead to improved performance. Experience in the use of productivity tools, such as testing frameworks and IDE also has positive effects. Conclusion. Years of experience are a poor predictor of programmer performance. Academic background and specialized knowledge of task-relatedaspects appear to be rather good predictors.

Autores: Oscar Dieste / 
Palabras Clave: academy - experience - external quality - industry - iterative test-last development - Performance - productivity - programming

3 - Diferencias entre las Actividades de Mantenimiento en los Procesos de Desarrollo Tradicional y Open Source

Antecedentes. La creciente importancia del Open Source Software (OSS) ha llevado a los investigadores a estudiar cómo los procesos OSS difieren de los procesos de la ingeniería del software tradicional. Objetivo. Determinar las diferencias y similitudes entre las actividades del proceso de mantenimiento seguido por la comunidad OSS y el establecido por el estándar IEEE 1074:2006. Método. Para conocer las actividades que conforman el proceso de desarrollo OSS realizamos un Systematic Mapping Study. Posteriormente, realizamos un emparejamiento entre las actividades del estándar IEEE 1074:2006 con las actividades del proceso OSS. Resultados. Encontramos un total de 22 estudios primarios. De estos estudios, el 73% contaban con actividades relacionadas con el proceso de mantenimiento. Conclusiones. El proceso de mantenimiento tradicional del software no encaja con lo que ocurre en la comunidad OSS. En su lugar, puede ser mejor caracterizar la dinámica general de la evolución OSS como reinvención. Esta reinvención emerge continuamente de la adaptación, aprendizaje, y mejora de las funcionalidades y calidad del OSS. Los proyectos OSS evolucionan a través de mejoras menores donde participan tanto usuarios como desarrolladores.

Autores: John W. Castro / Silvia T. Acuña / Oscar Dieste / 
Palabras Clave: Open Source Software - Proceso de Mantenimiento - Systematic Mapping Study

4 - Investigating the Impact of Development Task on External Quality in Test-Driven Development: An Industry Experiment

Reviews on test-driven development (TDD) studies suggest that the conflicting results reported in the literature are due to unobserved factors, such as the tasks used in the experiments, and highlight that there are very few industry experiments conducted with professionals. The goal of this study is to investigate the impact of a new factor, the chosen task, and the development approach on external quality in an industrial experimental setting with 17 professionals. The participants are junior to senior developers in programming with Java, beginner to novice in unit testing, JUnit, and they have no prior experience in TDD. The experimental design is a 2 x 2 cross-over, i.e., we use two tasks for each of the two approaches, namely TDD and incremental test-last development (ITLD). Our results reveal that both development approach and task are significant factors with regards to the external quality achieved by the participants. More specifically, the participants produce higher quality code during ITLD in which splitting user stories into subtasks, coding, and testing activities are followed, compared to TDD. The results also indicate that the participants produce higher quality code during the implementation of Bowling Score Keeper, compared to that of Mars Rover API, although they perceived both tasks as of similar complexity. An interaction between the development approach and task could not be observed in this experiment. We conclude that variables that have not been explored so often, such as the extent to which the task is specified in terms of smaller subtasks, and developers+IBk unit testing experience might be critical factors in TDD experiments. The real-world appliance of TDD and its implications on external quality still remain to be challenging unless these uncontrolled and unconsidered factors are further investigated by researchers in both academic and industrial settings.

Autores: Ayse Tosun / Oscar Dieste / Sira Vegas / Dietmar Pfahl / Kerli Rungi / Natalia Juristo / 
Palabras Clave: Experimental task - external quality - Incremental test-last development - Industry experiment - Test-driven development

5 - Impact of usability mechanisms: An experiment on efficiency, effectiveness and user satisfaction

Context: As a software quality characteristic, usability includes the attributes of efficiency, effectiveness and user satisfaction. There are several recommendations in the literature on how to build usable software systems, but there are not very many empirical studies that provide evidence about their impact.Objective: We report an experiment carried out with users to understand the effect of three usability mechanisms +IBQ-Abort Operation, Progress Feedback and Preferences+IBQ on efficiency, effectiveness and user satisfaction. Usability mechanisms are functionalities that should, according to the HCI community, be implemented within a software system to increase its usability.Method: The experiment was conducted with 168 users divided into 24 experimental groups. Each group performs three online shopping tasks. We measure efficiency variables (number of clicks and time taken), effectiveness (percentage of task completion) and user satisfaction gathered from a questionnaire.Results: The adoption of Abort Operation has a signi++wE-cantly positive effect on efficiency (time taken), effectiveness and user satisfaction. The adoption of Progress Feedback does not appear to have any impact on any of the variables. The adoption of Preferences has a signi++wE-cantly positive effect on effectiveness and user satisfaction but no in++wI-uence on efficiency.Conclusions: We provide relevant evidence of the impact of the three usability mechanisms on efficiency, effectiveness and user satisfaction. In no case do the usability mechanisms degrade user performance. The effort to adopt Abort Operation and Preferences appears to be justi++wE-ed by the bene++wE-ts in terms of effectiveness and user satisfaction. Also Abort Operation enables the user to be more productive. We believe that the effects on efficiency, effectiveness and satisfaction depend not only on mechanism functionality but also on the problem domain. The impact of a mechanism in other contexts could differ. Therefore, we need to conduct further experiments to gather more evidence and con++wE-rm these results.

Autores: Juan M. Ferreira / Silvia T. Acuña / Oscar Dieste / Sira Vegas / Adrián Santos / Francy Rodríguez / Natalia Juristo / 
Palabras Clave: Effectiveness - Efficiency - Empirical study - Experimental design - Satisfaction - software engineering - Usability - Usability mechanism