Collaborative programming

“Collaborative programming is an emerging methodology for team software development, which allows a group of programmers to work together on the same source coed for design, implementation, and integration.” [Shen]

One known method in XP is pair programming, in which two developers sit side-by-side in front of one PC.

One technical core component is collaborative editing: in real-time collaborative editing the entered code by one developer simultaneously changes the code all other developers work with.

Shen describes the challenges as group awareness, access control, and currency control.

In a Copy-modify-merge approach the developer can work independently, however there is additional effort and complexity caused by the required merge. Merging tools can be classified as textual merging, syntactic merging and semantic merging. (Shen explains the algorithms for merging techniques)

A quite interesting emergent approach is a Programmable Website:

Adam Cheyer and Joshua Levy created a prototype of a Wiki like environment inspired by WubHub:

The environment’s main elements are

  • Shared storage for pages holding pieces of content or code
  • An execution environment, with a programming language and type system
  • A user interface, with support for invoking commands and wiki-like editing of pages

A page in the environment is like a function in a programming language.

Developers can work simultaneously on the different pages of the application.

External resources:

Advertisements
Collaborative programming

2 thoughts on “Collaborative programming

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s