« TS-3217: Transparently Clustered Spring | Main | TS-4489: Introduction to AJAX »

TS-5033: IntelliJ IDEA: Integrated Team Environment

This presentation focuses on the upcoming JetBrains product "Team Server".

Team Server seeks to make development teams more productive. It integrates with IntelliJ, web browsers, version control systems, and agents. Agents offer an extension of Team Server to provide additional build services (i.e. distributed builds, etc.).

The browser interfaces use AJAX to provide real-time status of the build. It looks a lot like CruiseControl, but with a much more polished interface, IntelliJ integration, and support for agents that can extend the Team Server capabilities.

The Agents feature is what differentiates Team Server from the competition. It introduces the concept of the Build Grid, which is already available in other build systems (i.e. Apple's XCode with GCC). Because there are usually more check-in than builds, the build grid offloads builds to separate agent nodes.

An interesting build-related feature is delayed check-in, which addresses the problem of the 5 o'clock check-in. When a developer commits their changes before learning the built results, it could negatively affect the productivity of local or remote team members. A delayed check-in states that the build system will delay check-in until it has verified that the build succeeds. No check-in will be done if the build fails.

Build notifications are often ignored by developers, not because of lack of concern, but because of their sheer volume. Suggestion is to e-mail only on failed builds, builds with my changes, or if no one is responsible for failure (i.e. scheduled weekly build).

Another neat feature is the ability to indicate ownership of a build failure by "taking responsibility." This indicates that the problem has been acknowledged and is being addressed. This capability is current missing in tools like CruiseControl.

Instant Messaging is coming to IntelliJ, too. It relies on the Jabber XMPP communication protocol, which is also used by NetBeans and other IDEs.

The speaker, Dmitry Jemerov, did an excellent job of presenting.