Jazz est une plateforme collaborative évolutive, extensible permettant d'intégrer de manière transparente des tâches pendant le cycle de vie du logiciel.
Développer un logiciel dans une équipe peut être comparé à jouer d'un instrument dans un orchestre. Chaque musicien doit jouer sa partition tout en étant en accord avec les autres. Ils doivent tomber d'accord sur le mode de communication et surveiller les signaux qu'ils s'envoient sinon les performances peuvent se réduire. Une forte collaboration et une virtuosité individuelle sont requises. De même, les éditeurs de logiciels doivent mettre en évidence la génération de code de qualité et la coordination de leurs activités de sorte que toutes les activités puissent aller ensemble.
Les environnements de développement intégré (IDE), tels qu'Eclipse, ont réussi à améliorer la productivité individuelle. Toutefois, les développeurs de logiciel sont engagés de manière tout aussi active à travailler avec leurs équipes comme ils le sont pour l'écriture du code. C'est à ce moment que la plateforme Jazz intervient pour mettre la productivité individuelle au service de la productivité de l'équipe.
Imaginez le temps passé par une équipe pour trouver et corriger un bogue hypothétique. La tâche de correction d'un bogue se transmet au sein de l'équipe, de Mike qui a découvert et signalé l'incident à Rick qui révise les relevés de bogues entrants et affecte le travail à Susan qui est en charge de corriger le bogue pour finalement le renvoyer à Mike pour vérification. Le bogue en soi passe de Susan qui corrige l'incident dans le flux du code à Mike qui vérifie le correctif dans la génération qui le contient.
Ces flux peuvent être fragiles. Les flux au sein d'une équipe sont rompus si un correctif est restitué sans que le relevé des bogues ait été mis à jour, ou s'il n'existe aucun lien permettant de connecter le correctif à un flux de code particulier ou à une génération. Ces ruptures peuvent entraîner de la confusion au sein de l'équipe et l'empêcher de progresser. Pire encore, il peut arriver que personne de l'équipe ne se soit rendu compte de cette rupture. Il peut aussi se produire un entrelacement entre un travail lié au domaine (par ex., l'écriture du code pour leurs produits logiciels) avec un travail lié principalement à la gestion de la coordination de l'équipe (par ex., marquer les bogues comme étant résolus).
Bien que IDE intègre plusieurs outils, le développeur de logiciel réalise encore beaucoup de travail de comptabilité manuellement, tâche critique pour aider les membres d'équipe à travailler efficacement, mais un travail qui peut être oublié facilement ou effectué de manière incorrecte. Il serait préférable que Susan puisse simplement dire à l'environnement de développement intégré (IDE) qu'elle était en train de travailler à la correction de ce bogue particulier. Ainsi, une fois qu'elle aurait réalisé le correctif et les scénarios de tests, elle pourrait indiquer qu'elle a terminé. Sans aucune autre action de sa part, le système aurait validé les fichiers modifiés et les aurait associés avec le relevé des bogues, mis à jour les notes de génération et marqué le relevé des bogues comme fermé. Si les outils ont rendu automatique la comptabilité dans ce sens, ceci accroîtrait l'efficacité de l'équipe en assurant la fiabilité des connexions importantes entre les relevés des bogues et les restitutions de code. De même, cela rendrait les membres de l'équipe plus efficaces grâce à l'automatisation des tâches de comptabilité fastidieuses et source d'erreur.
Jazz est une plateforme collaborative d'équipe destinée au cycle de vie complet du logiciel conçue pour la prise en charge de l'intégration de manière transparente de tâches tout au long des phases du cycle de vie du logiciel (le scénario de l'exemple précédent s'applique à un petit nombre de tâches communes situées au milieu d'un cycle de vie). La plateforme Jazz a été conçue pour être étendue à la fois au client et au serveur, et pour s'adapter à des équipes de très petite taille aussi bien qu'à de très grandes installations d'entreprise. Elle comprend la notion de conseils de processus pris en charge par des outils, où les outils comprennent le processus de développement de l'équipe et aident les membres de l'équipe à suivre le processus sans en entraver la marche.
La plateforme Jazz n'est pas uniquement destinée à intégrer les outils de pointe existants, mais également pour fournir une plateforme sur laquelle une fonction d'outil de cycle de vie plus intégrée que cela n'était possible auparavant. Lorsque les outils de développement sont intégrés tout au long du cycle de vie de cette façon, il devient possible d'effectuer des actions inimaginables avec un ensemble de solutions. Les outils intégrés de bout en bout comme celui-ci permet aux équipes de générer des logiciels de manière plus efficace et de rendre l'activité de développement d'application plus agréable.
La plateforme Jazz est conçue pour permettre un support complet tout au long du cycle de vie de développement d'application dans sa totalité. Une unité d'exécution qui s'exécute via toutes les phases d'un projet est le processus que les membres de l'équipe ont choisi de suivre. L'organisation de la plateforme Jazz autour du processus peut aider l'équipe de différentes façons en fonction du processus. Cette prise en charge de processus peut se manifester sous plusieurs formes différentes (complètement extensibles, de la vérification de règle au fil de l'eau en passant par l'aide en ligne pour le processus (la touche F1, par exemple) à la comptabilité automatique. La plateforme Jazz pend en charge le processus comme suit :
La plateforme Jazz est conçue et construite pour effectuer les opérations suivantes :
Le rôle principal de la plateforme Jazz est de fournir des programmes d'écriture d'outil avec des mécanismes à utiliser, et des règles à suivre pour réaliser des outils de cycle de vie intégrés de façon transparente. Ces mécanismes sont exposés via des API bien définies. La plateforme Jazz fournit également des blocs de génération et des canevas facilitant le développement de nouveaux outils.