While I was doing my Ph.D., my research focused on developer documentation: I used qualitative methods to better understand how this kind of documentation is created, maintained, and used, and I developed tools to support open source contributors in improving the documentation of their project.
During my “research career”, I also studied how to analyze partial programs, how to automatically adapt client programs when frameworks evolve, and how to better support developers in efficiently creating framework documentation.
Two topics were particularly influential in my career:
Developer documentation helps developers learn frameworks and libraries. To better understand how documentation in open source projects is created and maintained, we performed a qualitative study in which we interviewed core contributors who wrote developer documentation and developers who read documentation. In addition, we studied the evolution of 19 documents by analyzing more than 1500 document revisions. We identiﬁed the decisions that contributors make, the factors inﬂuencing these decisions and the consequences for the project. Among many ﬁndings, we observed how working on the documentation could improve the code quality and how constant interaction with the projects’ community positively impacted the documentation.
The paper presenting the results of our study will be available soon.
When developers join a software development project, they ﬁnd themselves in a project landscape, and they must become familiar with the various landscape features. To better understand the nature of project landscapes and the integration process, with a view to improving the experience of both newcomers and the people responsible for orienting them, we performed a grounded theory study with 18 newcomers across 18 projects. We identiﬁed the main features that characterize a project landscape, together with key orientation aids and obstacles, and we theorize that there are three primary factors that impact the integration experience of newcomers: early experimentation, internalizing structures and cultures, and progress validation.
Learn more about project integration and the project landscape metaphor by reading our ICSE 2010 technical paper.