jeremy
warner

CodePilot

Scaffolding Online Novice Developer Collaboration CHI 2017

CodePilot is a project-wide synchronous editor to eliminate merge conflicts for programmers unfamiliar with the nuance of using version control while working collaboratively. A main goal was helping people collaborate on code more seamlessly. I presented CodePilot at CHI 2017, and worked on this project for my MS thesis from the University of Rochester. This project is open source, and can be found on GitHub.

pdf demo code

features

  • synchronous project-wide editing on any git repo
  • github API: edit, test, diff, branch, and commit
  • import, create, document, and close github issues

CHI talk

abstract

Novice programmers often have trouble installing, configuring, and managing disparate tools (e.g., version control systems, testing infrastructure, bug trackers) that are required to become productive in a modern collaborative software development environment. To lower the barriers to entry into software development, we created a prototype IDE for novices called CodePilot, which is, to our knowledge, the first attempt to integrate coding, testing, bug reporting, and version control management into a real-time system. CodePilot enables multiple users to connect to a web-based collaborative programming session and work together on several major phases of software development. An eight-subject exploratory user study found that first-time users of CodePilot spontaneously used it to assume roles such as developer/tester and developer/assistant when creating a web application together in pairs. Users felt that CodePilot could aid in scaffolding for novices, situational awareness, and lowering barriers to impromptu collaboration.

synchronous editing

editing

interactive testing

testing

controlled versioning

gitting