Speaker: Stanislav Levin

Title: Synchronous Software Development

Abstract:
Effective collaboration is a key factor in the success of a software project developed
by a team. In this work, we suggest the approach of Synchronized Software
Development (SSD), which promotes a new paradigm for software development
and suggests a novel framework for collaborative real time coding. In SSD, we
perceive programs’ code as a series of fine grained semantic changes. When such
a change is made by a particular developer, it can be automatically propagated to
all participating developers as long as it keeps the code free of compilation errors.
Changes that introduce compilation errors are not propagated until the errors
are fixed. Moreover, other developers are restricted from concurrently editing the
entities involved in changes being carried out by fellow developers. While in this
restricted state, developers are, however, free to modify the rest of the entities (i.e.,
the rest of the code).

The novelty of our approach is that it actively monitors developers’ editing
operations on a semantical level, and prevents semantic code elements from being
concurrently changed. This technique assists in preventing code conflicts, and
consequently, the merges caused by these conflicts. To perform a preliminary
evaluation we built CSI (Code Synchronizing Intelligence), a prototype demonstrating
key features of SSD.