Improving Open Source Software Development: Harnessing Social and Technical Datamining

My PhD dissertation topic involved datamining Mozilla and KDE, two large Open Source communities. Through analysis of Git version control history, email mailing lists, and source code files, this parsed information was stored in the graph database Neo4j. Using Social Technical Congruence (STC) as a core starting point, three algorithms were developed to help developers better understand the social and technical structure of software development. The field of Social Technical Congruence (Cataldo et al. 2006) attempts to understand and model the synergies between technical development and communication. It is able to identify gaps in the communication structure based on shared technical dependencies of developers to help minimize future bugs and keep up with changes. Three novel algorithms were developed to help developers:

  • Impactful Commits: This algorithm shows you code commits that have had a substantial impact to the technical dependency structure of the source code.
  • Developer Knowledge: This algorithm allows you to select a source code file to determine who has knowledge or expertise in the file. This is helpful if you have a question about a particular file or section but are unsure who to contact for help.
  • Communication Suggestions: This algorithm provides suggestions about who you (or other developers) should be increasing communication with on the mailing list based on work on shared source code.

The three algorithms were implemented in a program and website called Jamii. The program provides all backend processing of data from source code version control and email mailing lists as well as visualization. The Jamii website was then tested against the same two communities. Two surveys examining Mozilla and KDE were performed that gathered qualitative and quantitative data. The first survey gathered demographic and perceptual differences in socialization between beginner and veteran members. The second survey investigated the perceived usefulness of the website as well as the potential for improving the socialization process.


Using Bimanual Haptics in Virtual Assembly Tasks

I've worked with Dr. Judy Vance and other graduate students on research using various configurations of bimanual haptic devices to examine their effectiveness in virtual assembly tasks. This research aims to improve the training of assembly tasks through the utilization of haptic devices, virtual reality, and accurate physics calculations. We've also examined how much learning transfer takes place in using this technology for virtual training.


Virtual Shopping Study

Over the summer of 2010, I coordinated and co-advised three undergraduate Research Experience for Undergraduates (REU) students in a project to create a physical mockup of a shopping cart. This hardware was then used in a virtual reality user study utilizing the C6 at ISU. We have since updated the hardware to use an Arduino and a linear encoder for user control.


Undergraduate Psychology Capstone - Examining The Linux Desktop

My undergraduate Psychology capstone involved two semesters of work. The first semester was spent creating an experiment, gathering the required materials, and making sure the design was solid. The second semester I implemented the experiment and analyzed the data. The experiment focused on differences in usability and appeal between a 2D versus 3D Linux desktop. The hypothesis was that the 3D desktop would be more appealing as well as more usable. The data collection involved participants taking surveys about their prior technology experience and desktop usage and then performing a variety of tasks while being timed. Additional surveys were used to examine their thoughts on the differences between the two desktops. No usability difference was found between the 2D and 3D desktops, however, participants thought the 3D desktop was more visually appealing. The interesting result was that participants preferred the 3D desktop over the 2D desktop but only if they experienced the 2D desktop first. I was able to explain this result using cognitive load theory from my cognitive Psychology class. I presented a poster of my results at the Midwest Psychology Association conference in May of 2008.

Paper: Usability and Appeal of a 2D versus 3D Linux Operating System (.pdf) - 2007