Blogs about Jazz

Blogs > Jazz Team Blog >

EclipseCon 2008 Report: Erich Gamma on “Developing Software like a Band Plays Jazz”

(Note – this is part of a series of posts on Jazz-related activities @ EclipseCon 2008. See this entry for background.)

Presenter: Erich Gamma (Jazz Technical Lead)
Talk: “Developing Software like a Band Plays Jazz”
Reporter: Darin Swanson

This afternoon at EclipseCon 2008, Erich gave an overview of how Rational Team Concert, built on top of Jazz, addresses common pain points of software development. These are my highlights from Erich’s presentation.

We started with a history lesson of Jazz from the presentations at previous EclipseCons:

  • 2006 – Fixing a bug
  • 2007 – Development iteration with Jazz
  • 2008 – Jazz life

Erich reviewed Eclipse and Jazz, their relationships, and that you can use all of your favorite plug-ins from the Eclipse world with Jazz.

Then Erich defined Jazz and Rational Team Concert to avoid any confusion:

  • Jazz is a technology platform
  • Rational Team Concert is the first Jazz-based product; it includes Jazz Source Control, Jazz Team Build, and Jazz Work Items

Erich drew an analogy that the Jazz Platform allows an individual to work in the context of a software team like a band member plays an instrument as part of a band; an individual making individual contributions but at the same time acting as part of a broader collaboration.

Each team needs to find the correct “balance of collaboration and solo expertise” and each member needs to have awareness of what others are doing.

Jazz technology provides tooling to reduce friction. By friction we mean “effort that doesn’t directly help in the creation of quality software”. An example of friction is a project manager polling each member of a team for a status report, wasting the project manager’s time and each team member’s time. Jazz technology removes this friction by automatically creating a report based on other artifacts like work items and change-sets and allows the project manager to see this report without bothering other team members.

Jazz technology helps people work together to be more effective through:

  • Deep integration of various tools (source control, work items, build, planning, etc.)
  • A “Team First” perspective when designing tools
  • Promoting collaboration and transparency
  • A way to make tools less visible and allow seamless completion of a task from start to finish

The structure of Rational Team Concert builds the collaborative development environment through a single repository, integrated version control, and a build system. Team Concert also has the ability to play with others with varying degrees of interop:

  • Import: one-way migration of data from another tool into the Jazz equivalent (e.g. migrating Bugzilla bugs into Jazz Work Items)
  • Connectors: two-way data sync, one team working completely in Jazz-based tools but collaborating with teams using other tools (e.g. Jazz SCM to ClearCase)
  • Bridge: light-weight linking between a Jazz-based artifact and an artifact from a non-Jazz tool (e.g. connecting a Jazz work item to a Subversion revision)

Within Jazz, teams are at the center of devlopment and each team is allowed to be different. A project configures a basic set of rules and artifacts (e.g. bugs, tasks, stories) and teams within the project are able to customize the process to suit the team’s style of working. We enable this level of configuration via process templates and process customization.

Erich then demoed joining a team within Rational Team Concert. You add a user to a team and Team Concert asks you if you want to send the new team member an invitation, which contains all of the information they need to get started including automated configuration of a Rational Team Concert client and a set of “getting started work items” for the new team member.

Erich then continued on to demo recreating a workspace from a build to fix a specific problem. He created a change set, attempted to deliver and then used the Team Advisor view to explore the team’s process towards successful completion of his task.

Jazz is built to support the organic scaling of work from a single user, to a team, to teams of teams.

  • For the user we have repository workspaces, private builds and allow customization to focus in on the key events for that user…”My events”
  • For the team we have team streams with sharing of change sets, continuous builds to establish the pulse of the team and the generation of team events for coordination and notification.
  • Teams of teams work with integration stabilization streams sharing baselines to produce consumable integration builds.

The Jazz platform infrastructure supports both an open source and enterprise stack:

  • Open source – Tomcat, Derby, Jabber
  • Enterprise – WAS, DB2/Oracle, Sametime

Erich gave some quick highlights of the components that make up Jazz leading to finish with a brief New and Noteworthy since EclipseCon 2007.

I could reiterate the text here on the changes since last year and what we think is cool within Jazz, but the most important change since last year is that you can determine all this for yourself.

As part of the community you can download, try out, and provide feedback on Jazz. Go give it a try!