Navigation auf uzh.ch
|
|
I'm a researcher at the Software Evolution and Architecture Lab led by Harald Gall since September 2016.
In 2013, I received my Bachelor's Degree (summa cum laude) from the University of Sannio (Italy) with the thesis "Mining of Methods' Descriptions from StackOverflow", where I developed CODES, an Eclipse plugin that automatically generates descriptions for Java methods leveraging discussions in StackOverflow. In 2014, CODES won the Best Tool Award at the 22nd IEEE International Conference on Program Comprehension (ICPC).
In 2015, I interned at ING Nederland (Amsterdam) for four months (partially supported by an ERASMUS+ grant) to study the DevOps transformation and its effects on software development. This experience was crucial to build my research topic (and to decide to do a PhD).
In 2016, I received my Master's Degree (summa cum laude) from the University of Sannio (Italy) with the thesis "Build Failures in Continuous Delivery: a Case Study at ING Nederland".
In 2020, I received my Doctoral Degree (summa cum laude) from the University of Zurich defending the thesis "Principle-Driven Continuous Integration: Simplifying Failure Discovery and Raising Anti-Pattern Awareness" (Published Version, Preprint).
Look at my CV.
Continuous Integration (CI) and Delivery (CD) enable developers to reduce the frequency and severity of merge conflicts and to build reliable software that can be immediately released. Developers integrate code changes into a shared repository and those changes get verified (they get compiled, tested, and quality checked) through an automated build infrastructure. Based on a recent survey, 62% of the organizations have a build system configured in their projects.
However, installing a build system is not sufficient to practice CI/CD well and several organizations do not achieve expected benefits such as an improved reliability, a better productivity, and faster releases. To benefit from CI/CD, organizations need to establish a new culture of developing software within their teams and follow new principles.
Living up to those principles is not easy and developers tend to deviate from them generating anti-patterns, common but ineffective solutions to a recurring problem that break the CI/CD practice. When working on a feature, for example, developers open a branch and keep working for weeks before merging it.
In my research work, I help developers with removing those bad practices through a static and dynamic analysis of their CI/CD pipelines.
Look at my presentations on Speaker Deck.
I'm always interested in working with new students on exciting projects! Drop me a line to know more about the available topics.
I had the pleasure of supervising: