What problems does Xoom address?

Xoom addresses problems of configuration management. To explain what these problems are, we need to clarify the distinction between configuration authoring and configuration management.

Configuration authoring

Configuration authoring is the process whereby configuration is designed and set. Configuration authoring includes actions such as adjusting a parameter or creating a new setting.

Configuration of many software products is notoriously complex. For example, configuration for one real life ClickSoftware customer contains:
Figure 1. Schematic showing the relationships between items in a starter kit ClickSoftware configuration
Schematic showing the relationships between items in a starter kit ClickSoftware configuration

Configuration authoring therefore requires a lengthy and on-going process of development, data entry and editing, typically in the context of development, testing or problem solving. Authoring tends to be done using application's internal administration tools, although for widely used products third-party tools are sometimes available. These tools usually come with a narrowly targeted user interface that lets you adjust most parameters individually but that provides no overview or picture of configuration as a whole.

Figure 2. The Service Optimization Remote Administration Tool, showing the narrowly targeted user interface for setting configuration
The Service Optimization Remote Administration Tool

Configuration management

Like configuration authoring, configuration management is also an ongoing activity, but it only becomes relevant once configuration has been initially set. Its purpose is to maintain and improve system performance, to facilitate the development of new features, and to support changing business needs.

Configuration management consists of tasks such as transporting configuration between environments (say, from development to test to production), creating a history of configuration changes, tuning and auditing configuration, tracing defects back to their source, understanding the relationships between the various parts of configuration, establishing a baseline configuration with which to verify actual configuration, and so on.

Owing to the complexity of configuration management, vendor tools tend to shy away from it and focus instead on configuration authoring. This common avoidance of the problems adds further challenges to configuration management:

  • Configuration appears as a disjointed collection of items.
  • The means of access and modification is often restricted (as above).
  • Information on the relationships between items within configuration either does not explicitly exist or is hard to find and follow.
  • Automated configuration transportation can often only be achieved by database import, an all-or-nothing approach owing to the difficulty of implementing any meaningful type of filtering. The only universally available alternative that affords a degree of control is to transport configuration manually, but this comes with a high risk of omissions and misconfiguration.
Xoom addresses these problems directly:
  • All aspects of configuration are unified into a single entity, typically represented as a XoomXML document.
  • That document can be explored, compared, changed, split into its component parts and merged back together, versioned and deployed.
  • The document contains relational and other interpretive information that allows you to manage dependencies, analyse configuration, and generate reports and up-to-date documentation.
  • Transportation is handled by Xoom client tools and can be fully automated or automatically assisted with manual control.

In summary, Xoom is a general purpose solution that systematically addresses the challenges of configuration management.