Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

Design

Social Software Development Environments


Looking Forward

IBM Rational has begun to publicize a project called "Jazz." Rational's Jazz effort builds upon our early work on collaborative development environments with the aim of bringing the Eclipse IDE into a new era of social development environments. Jazz is a software lifecycle team collaboration platform designed to support the seamless integration of tasks and tools across all phases of the software lifecycle. One of the additional areas that Rational's Jazz project is exploring is the incorporation of customizable process guidance, where tools understand the development process and help team members to follow the process.

In addition to Jazz, there are many other projects based on turning IDEs into social development environments. The Eclipse Communications Framework (www.eclipse.org/ecf) provides an extensible infrastructure for incorporating various collaborative capabilities inside the Eclipse IDE. Also, a variety of third-party plug-ins that support collaboration in Eclipse can be found at EclipsePluginCentral.com. Besides Eclipse, other IDEs such as Netbeans, Microsoft Visual Studio Team System, and JetBrains' IntelliJ provide various add-ons that embed collaboration.

Our research and these emerging collaborative development environments all strongly assume that the natural habitat of the programmer is the IDE, and therefore, take the approach of embedding collaborative capabilities and "social software" tools smoothly into the context of the IDE. Looking forward, this assumption may no longer hold so strongly, and systems may explore several new directions.

One aspect to consider is the changing physical environment of programmers. Multiple monitors, voice-over-IP headsets, webcams, and work areas with projector displays have become more commonplace, thanks to the dropping prices of hardware and increases in bandwidth. Perhaps future development environments will take advantage of these physical system layouts. For example, the Lighthouse project at the University of California Irvine (www.isr.uci.edu/projects/lighthouse) is beginning to take a look at optimal layouts on multiple monitors to help developers code as well as stay informed of the emerging design of a project. Also, the BlueWall project at the University of Saskatchewan (www.cs.usask.ca/research/research_groups/selab/projects/index.html) is investigating the use of vast interactive display surfaces via multiple monitors and projectors to turn a room into a shared software development environment for a team.

Something else to consider is the next evolutionary step of the IDE. With its plug-in nature and ability to traverse code, the IDE is becoming more like a web browser. Aptana (www.aptana.com) turns the Eclipse IDE into a JavaScript-focused IDE and blends in web-like characteristics, such as synchronization of the help system with an online wiki and support for dynamically creating Eclipse user-interface contributions via JavaScript programming (instead of compiling a Java-based plug-in). EclipseMonkey (www.eclipse.org/dash) applies the ideas from GreaseMonkey (greasemonkey.mozdev.org) to script and alter the behavior of the IDE (instead of the Firefox browser).

In the future, perhaps the web browser will become the IDE, at least for some purposes. Web-based word processors such as Google's Writely (www.writely.com) are approaching the capabilities of their desktop siblings, so perhaps the IDE will not be far behind. Wheat (www.wheatfarm.org) is a language and environment specific to creating dynamic web sites and it uses a wiki as its programming environment. Workspace (www.blog.createworkspace.com) plans to become a web-based programming editor.

Another direction for exploration may involve adding other types of social software tools, besides awareness and messaging, to the software development context. For example, social bookmarking (also known as "tagging") has become popular, thanks to shared bookmark services such as del.icio.us, and shared photo services such as Flickr (www.flickr.com). New social bookmarking sites specific to code examples have begun to appear, such as Code Snippets (www.bigbold.com/snippets) and ByteMyCode (www.bytemycode.com). We are also beginning to apply the ideas from social bookmarking to software navigation within the IDE with TagSEA, which is a joint project between the University of Victoria and IBM (tagsea.sourceforge.net).

Conclusion

There is great promise and potential in exploring tool support for the social aspects of software development. The research community and software industry have begun to discuss how to collaborate and move forward (for example, the CSCW 2006 Workshop for Supporting the Social Side of Large-Scale Software Development, lizzy.iit.nrc.ca/social_se200). With distributed development, IDE extensibility, and social software now accepted and widespread, we believe the development community can discover new innovations that will make software development not only more productive, but also an enjoyable social experience.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.