Erich Gamma gave a keynote at Jazoon ’07 presenting IBM/Rational Jazz (beta 1 Version). Jazz blew me away in an instant! Erich presented a platform with all the features I ever wanted for efficient, agile development.
In short, Jazz is like Eclipse with integrated repository, task planning, build engine. The first question of course is: why did they reinvent the wheel? Why does Jazz come with its own repository, task planner, build engine when there are good tools already available for that? Seems that true seamless integration was only possible if they started from scratch. Usually I’m allergic to vendor lock-in, but Jazz will make me throw my own principles over board.
So, I signed up for an account at http://www.jazz.net, downloaded and installed Jazz, and started with the tutorial. Here’s my first impression:
- server setup is peanuts, runs out of the box, platform support for Windows XP (???) and Red Hat Enterprise Linux, very good installation instruction
- no setup needed at all for client, runs out of the box, Jabber setup seems dead easy (issue with Jazz/Jabber user mapping), very good installation instruction
- I read the technical overview which starts with a nice motivation why one would/should use Jazz i.e. what its aims are
- other IDEs (certainly Eclipse) can connect to the Jazz server and repository
- server runs its services as WS with SOAP
- there’s a client library that abstracts communication with server
- server runs separate set of services for Web UI calls (AJAX!?)
- a “Jazz Component” usually consist of two sets of plugins – one for the server and one for the client
- Figure 4 showing platform components: yeah, yeah, yeah EXACTLY what I need
- … stopped reading and went for the tutorial
- wonderful integration of (iteration/milestone) planning and work items
- integration really is terrific, more powerful than for example Jira plugin for Eclipse
- BUT planning features not (yet) as powerful as Jira, which is just perfect for task planning and bug tracking
- SCM (source control management) is totally new
- private repository workspace per user!
- if you check-in, the artifacts are only copied from the workspace to your private repository
- only if you “deliver” to the stream (trunk or branch) they are made available to other team members
- updating is called “accepting” change-sets from a stream
- you also accept change-sets from other private repositories
- this allows for light-weight collaboration of a group of developers without interfering with the rest of the team (general repository)
- indirection might proove cumbersome in daily life…no, because check-in to your own repository can be configured to automatic
- might take a while until folks will get used to all the new terms and their relationships: streams, components, workspaces; on the other hand, we’ve been dealing with that for years but in a more implict manner.
- is the success of working with Jazz dependant on the “quality” of the people working with it? The tutorial guides you through all the basic steps and shows you how to do things right. What if you don’t associate a change set with a work item before delivering it to a stream? If you forget such steps, will you have to pay the price in that your setup becomes a mess after a while since you have many loose ends?
- I see a danger of getting lost in the various views for pending changes, change-sets, work items, repository, etc. Each developer will have to find out which view he really needs, as you basically navigate from one to the other anyway.
- the web UI is wonderful! It’s not just that it holds the same information as you would see in your Jazz client (i.e. Jazz Eclipse), but the information is presented with the same layout, fonts, colors, etc.
- integrated build system
- can be run locally from within Jazz if desired
- nice wizard-based setup that generates Ant-script and properties
- instant local test engine to run a build locally before having it run on the remote/shared Jazz build engine for the team
- no predefined Maven(2) build setup provided, but hand-made templates can be used with the Jazz server
- Jazz Ant tasks for repository communication (check-out, build artifact check-in)
- it’s a big advantage when the build report can be linked with other editors in Eclipse. So, if there’s a stacktrace in build log, it is linked with the actual sources as if you’d see the stacktrace in own Eclipse console; same with JUnit tests
- didn’t find information yet where the build reports can be found through the Jazz web interface
I want Jazz – for all my Java projects!