I get inspiration from a lot of sources. My latest came from my customers, and my daughter. I was relaxing last weekend, sitting around a campfire with my wife and my daughter. It was one of those times when you talk and exchange ideas with your kid. I was thinking about how nice things were, but thoughts of work crept into my head, and I was thinking about the many customer requests for “typical” administrative headcounts that I have seen in the past few weeks. Right about this time, my daughter pipes in with the final piece of her story about her skating program (she figure skates), “..and we decided that we needed to be more visual, you know, have more Jazz hands”. It seemed like the perfect title for a blog entry on administration of Jazz based technology, and specifically Rational Team Concert (RTC).
Jazz is a centrally based repository, which relies on a simple architecture to provide software development services to it’s users. The details of this architecture are not particularly important for the purposes of this discussion, what is important is how Jazz manages the way it is configured, and how it holds data. At the core of Jazz is the concept of a process template. This is an XML file which describes in detail how a process works within the Jazz framework, what roles exist, the permissions that the roles established will have, the types of objects (work items) that exist, their associated workflows, and approval processes. Modification of this XML file can be done via text editor, or by using the GUI in Rational Team Concert. It is much more than a state engine, it helps define a process, and it allows that process to be applied to individual projects in a uniform manner. The key point here is that the process is just another piece of data that lives within a Jazz based repository.
Why is this important? Most tools allow you to configure how they will work (where files are stored, how records are kept, etc.), and they also let you enforce workflows and process. The key difference is that in order to modify the process, you need to have some understanding of how the tool works, and then you need to interact with the tool to implement these process features. ClearCase used triggers, which could be implemented through the writing of scripts that were attached to the repository environment in a very tool specific manner. ClearQuest used hook code (specific implementation of Visual Basic or Perl which interacted with the API to effect specific business rules), or it’s own interface for defining records, workflows, fields and so on. Other tools all follow a similar paradigm.
With a Jazz based implementation, the process can be manipulated with a GUI, and can be done without specialized knowledge of the tool API, or the tool inner workings. I know what you are thinking, what in the world does this have to do with tool administration? The subtle difference manifests itself in some significant ways in the real world.
- Tool Administrators no longer need to know some programming or scripting language. Everything is GUI driven, and it all happens on a centrally located server, not some distributed set of resources that need to be managed and coordinated. Tool administrators can support users from around the world, without leaving the data center.
- Database Administrators no longer have to perform tool specific steps to do backup and recovery operations on the repository databases. They do not need to have ANY tool knowledge. Tool administrators do not need to have any specialized database knowledge. Each can live safely within their own area of expertise.
- Process engineers, Subject Matter Experts (SMEs), and project leaders can now modify individual project processes on their own (assuming that their roles permit them to) without having to get tool administrators involved. They can modify the processes used for a project, without impacting the processes used by the organization as a whole.
- Jazz based solution architectures are more simple and straightforward, enabling easier understanding of the architecture, easier configuration, and reduced maintenance.
While this may not seem significant, the impacts on cost of ownership, and the number of “Jazz Hands” that an organization needs to support their software development infrastructure are significant. In the past, the ratio of users to administrators usually had these types of typical values:
- ClearCase (complex deployment) – 100 : 1
- ClearCase (simple deployment) – 350 : 1
- ClearQuest (complex deployment) – 200 : 1
- ClearQuest (simple deployment) – 500 : 1
- Subversion (complex deployment) – 200 : 1
- Subversion (simple deployment) – 400 : 1
Now with Jazz, IBM is hosting an internal deployment of almost 20000 users, with a staff of 5 administrators. This is a ratio of roughly 4000 : 1. Granted, the administrators that we have internally are a pretty sharp bunch, and they do have a responsive support channel to our product development teams (grin). Even if I assumed that a “regular” Jazz administrator was only half as effective, that still leaves us with a gaudy ratio of 2000 : 1. This represents an enormous cost savings for our customers deploying Jazz technologies. In addition, these administrative resources no longer need to know and understand tools, software development processes, and scripting languages. They just need to know a little bit about Jazz, which is pretty easy to pick up, and easier to become enabled with than any of the other ALM tools out in the marketplace. The cost savings are big, and the reduced complexity is an additional benefit.
So let’s bring it back to administrative costs. If I have an organization of 200 people in software development, the only gain I will realize is that my overall environment is simpler and easier to understand. It means less complexity. If my organization is larger, say 2000 people, then I begin to realize some impressive savings. For 2000 developers, a ClearCase/ClearQuest environment may have used 3 ClearQuest administrators, and 5 ClearCase administrators worldwide. If I were to assume a relatively cheap fully burdened engineer rate of $60000 per person, this would cost me roughly $480,000 a year. With some other less functional tools, I might need 4 or 5 overall administrators, for a cost of $240,000 per year. With a Jazz based infrastructure, an RTC implementation would need a single administrator, for a cost of $50000 per year. This represents a significant cost savings, and when coupled with the reduced hardware footprint needed for Jazz based offerings, it can quickly add up.