Jazz platform
Software is best developed by a team of people, reacting and responding to each other in order to achieve the best outcome. – Jazz
Jazz is an open, extensible, and scalable platform by IBM that is built to keep team, collaboration and productivity at the forefront of software development. The Jazz platform integrates the various phases in the software development life cycle and helps the team to increase productivity and reduce human errors. Tool vendors can build powerful tools on the Jazz platform by using the frameworks and APIs.
Introduction
With conventional software development, you spend a lot of effort setting up the development environment, setting up source code repository, getting the role-based access rights, and other infrastructure-related tasks. You typically connect to a requirements and/or issue management tool so that you can view assigned tasks and requirements to fulfill. In the worst case scenario, teams maintain a shared spreadsheet where they could see the assigned tasks on a weekly or monthly basis. Collaboration is typically done through casual discussions or e-mails. Source code management and requirements are often disconnected and it's difficult to connect or trace the requirements, source code, versions, and builds. Continuous integration builds are achieved with disparate systems, which might prove difficult to integrate into the development environment.
With Eclipse's success using the best practices tailored and adapted from various agile methodologies, the focus moved from individual productivity to team productivity. The central idea, "Build process into the tools and make tools aware of the team", gave the team the power to collectively collaborate and focus on the real job.
Vision
The Jazz platform got its name from the inspiration of a team of artists playing Jazz on a brightly lit platform. The Jazz orchestra team is visible to everyone and the audience knows who is doing what. Each member of the team has a complete understanding of one's own responsibility and that of the other team members. They work in a co-ordinated way to generate great music.
The Jazz platform has team collaboration, process awareness, transparency, and customization as its fundamental building blocks. Traditionally, software development tools were designed in a way that the focus is on development process or on coding productivity. In either case, focusing more on one aspect and ignoring another is not desirable. Instead, Jazz takes the approach to integrate the process into the tools and make the tools aware of the team. By embedding the collaboration tools of the choice, you have the integrated experience where each feature knows the context of the other tool.
Instead of considering the process as monolithic documentation and a set of training slides, the team process is truly integrated into the tools. This helps us concentrate on true innovation and focus on the tasks rather than worrying about the process implementation. It is not uncommon to imagine that the process implementation takes a considerable amount of time to learn and implement in traditional methods.
The amount of time spent by managers to pull the data from numerous sources to put together the status reports and project health charts can be huge. Each time, a report is needed for the higher management, and the manual data collection and report generation can become tricky and erroneous. The Jazz platform tries to solve these problems by unifying and automating the data collection and report process. This enables every one on the team to look at the same data and report at any time. Managers can also leverage the role-based access system so that they can hide the confidential data from certain team members.
Note
Jazz is not a product. It is an application life cycle integration platform that provides APIs and open services to be used by the other participating tools.
To summarize, the Jazz platform takes the integrated approach to focus on collaboration, transparency, and automation. The Jazz initiative is composed of the following key components:
Jazz Integration Architecture: Customers can develop their own delivery environment from their preferred tools and practices. Jazz follows an evolutionary process so that companies can adapt the tools as the need arises using the open APIs. It also incorporates the specification provided by the open services for life cycle collaboration project.
Product Portfolio: Jazz stands as an open, extensible platform whereas several tools are developed on it. Tools such as Rational Team Concert, Rational Quality Manager, and Rational Requirements Composer are some examples for the tools built on the Jazz platform.
Community: This is one of the crucial aspects of Eclipse's success. A community is an eco system in which the members help each other and improve with the help of a constant feedback. Members have an interest to improve and care for the eco-system so that they collectively grow with it. The Jazz community and stakeholders can drive the product features and provide a constant feedback to improve the product.
Architecture
The Jazz platform follows some key aspects of architecture to differentiate itself from the others. The noticeable aspects of the architecture are as follows:
Separates the tool implementation with the data representation and definition. That means, tools does not have to care about the closed data representation, which helps the other tools to participate easily.
Jazz consolidates the data from different databases over the internet protocol and does not assume data at a single location. This makes it possible for a large organization to scale up as it grows in an evolutionary manner.
Any language that understands the Internet can be used to program a tool for Jazz. No language restriction was made on the tool implementation. This helps when organizations have a varied skill set and tools need to be developed on the available skill set without forcing them to use a specific technology.
Finally, Jazz has the single point of access to all data. This reduces the unnecessary time consuming data manipulation and data cleansing processes among various tools.
Jazz Team Server (JTS) provides the foundation services or APIs that provide the access to the team, dashboards, security, event notification, search, and collaboration aspects. The JTS is built on the Open Life cycle Service Collaboration (OLSC) platform so that any tool that conform to the OSLC can be easily plugged in. For this, one needs to develop the server integrations on the OLSC layer and all the client integrations are done on the JTS, as shown in the following figure.
Jazz allows the community to develop different tools on the JTS by providing the language-specific libraries for accessing the Jazz APIs with Eclipse, Visual Studio, and Web 2.0 client integrations. This has the advantage that an organization can build the tools of their choice in their choice of technology.
JTS provides open APIs, helping groups of tools to work together. The foundation APIs enable the tools to access the work items, issues, build plans, release plans, and other project artifacts. The beauty of the JTS is to have the multiple physical JTS servers, but still consider it as one logical server, as shown in the next figure:
The Jazz technology platform is developed at jazz.net, where you can register to participate. You can open enhancement requests, projects reports, track schedules, participate in discussion forums, download and play with the Rational Team Concert, and other Jazz-based products.
Note
Openness and transparency is the vision of Jazz team and is put into practice at jazz.net.