Short Research Description

I am a PhD student at the University of Chile since 2013. Prior to this, I got a master degree in software engineering at the Czech technical university in Prague. Since my master degree I worked in several companies as software engineer, software developer, software architect, and business analyst. Currently, apart from doing the PhD, I am an active contributor to Pharo.

I am interested in improving Integrated Development Environments (IDEs) and Empirical Software Engineering. In particular I have been investigating how to increase developer productivity, and how to diminish learning and navigation time when working on a software change task.

Anstract: Analyzing how software engineers use the Integrated Development Environment (IDE)
is essential to better understanding how engineers carry out their daily tasks.
SPOTTER is a code search engine for the Pharo programming language.
Since its inception, SPOTTER has been rapidly and broadly adopted within the Pharo community.
However, little is known about how practitioners employ SPOTTER to search and navigate within the Pharo code base.

This paper evaluates how software engineers use SPOTTER in practice.
To achieve this, we remotely gather user actions called events.
These events are then visually rendered using an adequate navigation tool chain.
Sequences of events are represented using a visual alphabet.

We found a number of usage patterns and identified underused SPOTTER features.
Such findings are essential for improving SPOTTER.

Asking and Answering Questions during a Programming Change Task in Pharo LanguageConference
Juraj Kubelka, Alexandre Bergel, Romain Robbes
In Proceedings in Proceedings of the Workshop on Evaluation and Usability of Programming Languages and Tools,
Portland, Oregon, USA, 2014, ACM

Abstract: Previous studies focus on the specific questions software engineers ask when evolving a codebase.
Though these studies observe developers using statically typed languages, little is known about
the developer questions using dynamically typed languages. Dynamically typed languages present new
challenges to understanding and navigating in a codebase and could affect results reported by previous
studies.

This paper replicates a previous study and presents the analysis of six programming sessions made in Pharo,
a dynamically typed language. We found a similar result when comparing sessions on an unfamiliar codebase
with the previous work. Our result on the familiar code greatly deviates from the replicated study,
likely caused by different tasks and development strategies. Both missing type information and test
driven development affected participant behavior and prudence on codebase understanding, where some
participants made changes based on assumptions.

We provide a set of questions that are useful in characterizing activity related to the use of
a dynamically typed language and test-driven development—questions not explicitly considered in
previous research. We also present a number of issues that we would like to discuss during the
PLATEAU workshop.

Abstract: Studies show that software developers spend significantly more time navigating and understanding
a codebase than actually writing code. Oddly, code navigation and comprehension are poorly supported by
current programming environments.

We present the main lines of the Pitekün programming environment to mitigate the gap between developer
information needs and the current tool support. Pitekün uses three techniques to address the gap:
(i) a spatial representation of the codebase, (ii) visual cues, and (iii) polymetric views.
We conjecture that Pitekün improves navigation in the codebase and in answering the questions
developers ask when learning the codebase.