Menu

Latest news:

Jan 2008:
My ICSE paper got accepted.

More info:

cdesouza [at] ufpa [dot] br

Links:

- UFPA
- Ariadne
- Eclipse
- Gmail

Welcome to my home page!

I am an Associate Professor in the Department of Informatics at Federal University of Pará. I have a B.S. in Computer Science from this same department, a M. S. degree also in Computer Science from the State University of Campinas, and another M.S. and a Ph.D. degree in Information and Computer Sciences from the Donald Bren School of Information and Computer Sciences at the UC, Irvine. I used to be a member of the Interactive and Collaborative Technologies group, originally Computing, Organizations, Policy, and Society (CORPS).

My research interests are in the field of computer-supported cooperative work as applied to software engineering. In other words, I am interested in understanding how software engineers work together to develop software, to ‘get their work done’. This translates into a multi-faceted research approach that includes field studies, surveys, and tool development and evaluation. More generally, I am interested in computer-supported cooperative work (in issues like awareness, groupware design, ethnograpy and its relationship with design) and software engineering, more specifically, in distributed software development, event-notification servers, critics, design environments among others. If you want more details about my research interests, drop me a line and I will send you a longer research overview.

In the past, I have had fellowships from the following Brazilian research agencies CNPQ and CAPES.

Ph. D. Dissertation Abstract

As software systems provide more, and more distributed, real-time services to our society, it is possible to witness their growing complexity. One way to manage this complexity is to decompose software systems into smaller parts, called modules. The predictable consequence of dividing a system into modules is that these modules need to be put back together in some coordinated way, so that the software system can provide services. A dependency between software modules is said to exist when one module relies on another to perform its operations or when changes to the latter must be reflected on the former. Dependencies between software modules affect their development, maintenance, and reuse. More important, they affect the coordination of software development efforts. Although this relationship has been long known by researchers and practitioners, it has been largely unexplored. Most researchers focus on the technical aspects of the dependencies – identification, analysis, and maintenance – instead of focusing on their implications for understanding the collaborative work of software production. Meanwhile, empirical studies of software dependencies focus on how organizations and teams adopt strategies to manage these dependencies.

To address this issue, I have conducted two field studies to understand how software developers manage the effect of these dependencies in the coordination of their work. Using ethnographic data, I detail how management of dependencies can be understood as impact management – the work performed by software developers to minimize the impact of one’s effort on that of others, and at the same time, the impact of others’ efforts on one’s own. The main aspect underlying impact management is used to inform the design of Ariadne, a tool that aims to facilitate this same activity.

Ariadne is evaluated in two different settings, each examined to determine how software dependencies can be used to facilitate the understanding and enactment of collaborative software development activities. This dissertation concludes by using the observations from my field studies and results from my evaluations to suggest implications for empirical software engineering research, organizational work practices, and the design of collaborative technologies.

eXTReMe Tracker