Jazz é uma plataforma de colaboração de equipe escalável e extensível para integração transparente de tarefas em todo o ciclo de vida do software.
Desenvolver software em uma equipe é como tocar um instrumento em uma banda. Cada músico deve tocar sua parte, ao mesmo tempo que está em sintonia e em sincronismo com os outros. Eles devem concordar em como se comunicar e devem prestar atenção aos sinais que enviam uns aos outros ou à redução de desempenho. A virtuosidade individual e a forte colaboração são requeridas. De maneira similar, os desenvolvedores de software devem se concentrar na criação do código de qualidade e na coordenação de suas atividades, de forma que todas as partes fiquem bem presas.
Os Integrated Development Environments (IDEs), como o Eclipse, tiveram êxito no aumento da produtividade individual. Entretanto, os desenvolvedores estão tão ativamente envolvidos no trabalho com suas equipes quanto estão com a gravação de seus códigos. É neste ponto que o Jazz Platform entra, deslocando o foco da produtividade do indivíduo para a produtividade da equipe.
Considere o trabalho que uma equipe tem para rastrear e corrigir um erro hipotético. O trabalho de corrigir um erro flui para dentro da equipe, do Mike que descobriu e relatou o problema para o Rick que examina os relatórios de erros de entrada e designou o trabalho para Susan, para Susan que corrigiu o erro e, finalmente, de volta para Mike para verificação. A correção do erro em si também flui dentro da equipe, de Susan que corrige o problema no fluxo de código para Mike que verifica a correção na construção que a contém.
Estes fluxos podem ser frágeis. Os fluxos na equipe serão interrompidos se uma correção for registrada sem atualizar o relatório de erro, ou se não houver um link para conectar a correção a uma construção e um fluxo de código específico. Essas interrupções podem levar a uma confusão dentro da equipe e impedir o progresso. Para tornar os problemas piores, uma interrupção poderá não ser imediatamente aparente para qualquer um na equipe. Há também uma intercalação de trabalho relacionado ao domínio (por exemplo, código de gravação para o produto de software) com trabalho relacionado principalmente à manutenção da coordenação com sua equipe (por exemplo, marcar erros como corrigidos).
Embora o IDE se integre a diversas ferramentas, o desenvolvedor ainda está realizando uma grande quantidade de trabalho de escrituração manualmente, trabalho que é crítico para manter a equipe trabalhando junto com eficácia, mas também um trabalho que é muito fácil de esquecer ou de se fazer incorretamente. O ideal seria se Susan pudesse informar o IDE que ela estava agora trabalhando na correção de um erro específico. Em seguida, quando ela concluir a correção e as etapas de teste, poderá indicar que terminou. Sem nenhuma ação adicional de sua parte, o sistema confirmará os arquivos alterados e os associará ao relatório de erros, atualizará as notas de construção e marcará o relatório de erros como fechado. Se as ferramentas automatizaram a escrituração dessa forma, a equipe poderá se tornar mais eficiente, garantindo que as conexões importantes entre os relatórios de erro e os registros de entrada dos códigos sejam confiáveis. Ao mesmo tempo, ela tornará os membros individuais da equipe mais eficazes, automatizando as obrigações de escrituração tediosas e propensas a erros.
O Jazz é uma plataforma de colaboração de equipe para o ciclo de vida de software completo, projetada para suportar a integração contínua de tarefas em todas as fases do ciclo de vida do software (o cenário do exemplo anterior toca em algumas poucas tarefas comuns no meio do ciclo de vida). O Jazz Platform foi projetado para ser extensível no cliente e no servidor e para ser dimensionado de equipes muito pequenas para grandes instalações corporativas. Ele incorpora a noção de orientação de processo suportado pela ferramenta, em que as ferramentas entendem o processo de desenvolvimento da equipe e ajudam os membros da equipe a seguir esse processo sem interferir neles.
O Jazz Platform não foi projetado apenas para integrar ferramentas pontuais existentes, mas também para fornecer uma plataforma na qual é possível construir uma função de ferramenta de ciclo de vida muito mais integrada do que era possível anteriormente. Quando as ferramentas de desenvolvimento são integradas no ciclo de vida dessa forma, ela torna possível fazer coisas inimagináveis com um conjunto de soluções de ponto parafusado junto. As ferramentas de ponta a ponta integradas como esta podem ajudar as equipes a construir o software de forma mais eficiente, e tornar a atividade de desenvolvimento de software mais agradável.
O Jazz Platform foi projetado para permitir suporte completo no ciclo de vida completo de desenvolvimento de software. Um encadeamento que é executado em todas as fases de um projeto é o processo que os membros da equipe concordaram em seguir. Ao ensinar o Jazz Platform sobre o processo, ele poderá ajudar a equipe de maneiras específicas do processo. O suporte deste processo pode vir de várias formas (e ser completamente ilimitado), variando da verificação de regra on-the-fly até a oferta de ajuda de processo on-line (por exemplo, a tecla F1), para automatizar a escrituração. O Jazz Platform suporta o processo das seguintes maneiras:
O Jazz Platform foi projetado e construído para fazer o seguinte:
A principal função do Jazz Platform é fornecer aos gravadores de ferramentas os mecanismos a serem usados e as regras a serem seguidas, que levam a ferramentas de ciclo de vida continuamente integrados. Esses mecanismos são expostos via APIs bem definidas. O Jazz Platform também fornece blocos de construções e estruturas úteis que facilitam o desenvolvimento de novas ferramentas.