Jazz - это масштабируемая, расширяемая платформа для коллективной работы над проектами, позволяющая охватить все задачи, возникающие в ходе цикла разработки программного обеспечения.
Коллективная разработка программного обеспечения похожа на игру в оркестре. Каждый музыкант должен исполнять свою партию согласованно с остальными оркестрантами. Они должны договориться об условных сигналах и следовать этим сигналам, для того чтобы оркестр звучал хорошо. Тесное сотрудничество необходимо так же, как и виртуозность каждого конкретного исполнителя. Точно так же разработчики программного обеспечения должны заботиться о создании качественного кода и координации своих усилий, чтобы все фрагменты сложились в общую картину.
Интегрированные среды разработки (IDE), в том числе Eclipse, способствуют повышению продуктивности работы индивидуального разработчика. Однако взаимодействие с коллективом является такой же неотъемлемой частью работы, как и написание исходного кода. Вот почему была разработана платформа Jazz, в которой акцент смещен с продуктивности отдельного разработчика на продуктивность всего коллектива.
Оценим объем работы, который необходимо проделать в коллективе для поиска и исправления ошибки. Работа по исправлению ошибки начинается Майклом, который находит ошибку и сообщает о ней, продолжается Риком, который просматривает отчет об ошибках и назначает ответственным Сюзанну, передается Сюзанне, которая исправляет ошибку, и возвращается к Майклу для проверки. Само исправление также передается внутри коллектива от Сюзанны, исправившей ошибку в коде, к Майклу, который проверяет исправление в готовом продукте.
Эти потоки очень неустойчивы. Поток внутри коллектива нарушается, если исправление вносится без обновления отчета о неполадке, либо если отсутствует связь между исправлением и отдельной компоновкой. Такие нарушения могут привести к недопониманию внутри коллектива и снижению скорости работы. Хуже того, нарушение не всегда сразу же выявляется участником коллектива. Основная работа (такая как написание кода для программного продукта) обычно перемежается с выполнением задач, связанных с координацией работы коллектива (таких как исправление ошибок).
Хотя в IDE предусмотрено много полезных инструментальных средств, разработчик по-прежнему выполняет много однотипных задач учета вручную: они необходимы для эффективной, слаженной работы коллектива, но о них можно с легкостью забыть или выполнить их неправильно. Было бы лучше, если бы Сюзанна могла просто "сказать" IDE, что она сейчас работает над исправлением ошибки. После подготовки исправления и тестового набора она могла бы сообщить о завершении работы. Затем безо всякого участия с ее стороны система сохранила бы измененные файлы, связала бы их с отчетом об ошибке, обновила бы примечания к компоновке и пометила бы отчет об ошибке как закрытый. Если бы учет велся автоматически с помощью инструментальных средств, то эффективность работы коллектива была бы выше, так как гарантировалась бы наличие правильных связей между отчетами об ошибках и изменениями кода. В то же время, продуктивность работы отдельных членов коллектива стала бы выше за счет автоматизации рутинных задач учета, при выполнении которых часто делаются ошибки.
Jazz - это платформа для коллективной работы с поддержкой всего жизненного цикла программного обеспечения. Она обеспечивает бесшовную интеграцию задач, выполняемых на протяжении всего жизненного цикла (в приведенном ранее примере описаны некоторые задачи, выполняемые в середине жизненного цикла). Платформа Jazz поддерживает расширение как на клиенте, так и на сервере, и подходит для организаций любого масштаба. Она реализует представление об инструментальном управлении процессом, при котором инструментальные средства понимают коллективный процесс разработки и облегчают работу в соответствии с этим процессом для участников коллектива.
Платформа Jazz позволяет не только интегрировать существующие автономные инструментальные средства, но и создать на ее основе максимально интегрированный комплект средств для поддержки жизненного цикла. Средства разработки, которые интегрируются на протяжении жизненного цикла, по своим возможностям существенно превосходят набор автономных решений. Такие интегрированные, комплексные решения позволяют повысить эффективность коллективной разработки программного обеспечения и сделать ее проще для всех участников.
Платформа Jazz обеспечивает всестороннюю поддержку на протяжении всего жизненного цикла разработки программного обеспечения. Цепочка задач, проходящая через все этапы проекта, называется процессом, которому должны следовать все участники коллектива. Если в платформе Jazz сохранить информацию об этом процессе, то она сможет помогать участникам коллектива действовать в соответствии с этим процессом. Формы помощи могут быть самыми разнообразными, начиная от проверки соблюдения правил "на лету" до предоставления динамической справки по процессу (по нажатию F1) или автоматизации учета. Платформа Jazz поддерживает процесс следующим образом:
Платформа Jazz предназначена для выполнения следующих действий:
Основная задача платформы Jazz заключается в том, чтобы предоставить разработчикам инструментов механизмы и правила для создания хорошо интегрируемых инструментов для поддержки жизненного цикла. Эти механизмы предоставляются с помощью хорошо продуманных API. Кроме того, платформа Jazz предоставляет полезные конструктивные элементы и среды для разработки новых инструментов.