Skip to content

DevOps ‐ Requirement Tracking

André Meneses edited this page May 30, 2025 · 26 revisions

Rastreabilidade de Requisitos - Stratify


1. Introdução

Este documento tem como objetivo apresentar o processo de rastreabilidade de requisitos no desenvolvimento do produto Stratify. A rastreabilidade garante que cada requisito funcional e não funcional seja acompanhado desde sua definição até a sua implementação, assegurando alinhamento entre as necessidades identificadas, o planejamento e as entregas realizadas.


2. Processo de Rastreabilidade de Requisitos

1. Levantamento e Priorização de Requisitos

O processo inicia-se pelo levantamento dos Requisitos Funcionais e Não Funcionais, que descrevem as necessidades detalhadas do sistema. Estes requisitos são validados e priorizados pelo Product Owner para garantir foco nas funcionalidades de maior valor. Com o objetivo de tornar os requisitos mais precisos e efetivos para auxiliar o Product Owner e orientar a equipe de desenvolvimento, há um documento separado detalhando melhor cada requisito discutido, os stakeholders que serão beneficiados com cada um e as justificativas para compreender de forma completa o escopo de cada requisito.

Este documento é público e pode ser visualizado neste link:
https://quantumbitbr.github.io/API_5SEM/#/

2. Conversão de Requisitos em Itens de Backlog

Com os requisitos já elaborados, realiza-se a vinculação direta entre cada Requisito e sua respectiva User Story, que por sua vez se desdobra em Tasks. Essa estrutura mantém a rastreabilidade completa, permitindo o acompanhamento do desenvolvimento desde a necessidade inicial até a implementação da funcionalidade.

3. Gestão no Jira

Para gerenciar o processo de desenvolvimento, optamos pelo Jira devido a seus recursos exclusivos como workflows visualmente customizáveis, rastreabilidade bidirecional em tempo real entre diferentes níveis de planejamento (épicos, histórias e tarefas). A ferramenta oferece relatórios dinâmicos com visualizações inteligentes que evoluem conforme o projeto avança, além de quadros de acompanhamento que se adaptam automaticamente a diferentes contextos de trabalho, proporcionando controle preciso em todas as etapas do ciclo de desenvolvimento.

No Jira, cada User Story está vinculada aos seus respectivos requisitos, e as tarefas (tasks) derivadas são relacionadas às User Stories correspondentes, garantindo rastreabilidade clara e organizada, observável a partir de cada requisito. Optamos por vincular os requisitos diretamente como Épicos no Jira para manter uma rastreabilidade mais clara e objetiva.

4. Integração com GitHub

O Jira está integrado ao GitHub para conectar o código às tarefas:

  • Branches e commits são nomeados com os IDs das tasks no Jira, garantindo rastreamento direto do código até o requisito original.

5. Garantia de Rastreabilidade e ciclicidade

Este processo assegura o acompanhamento desde o requisito até a entrega do código, facilitando a validação, auditoria e alinhamento com as expectativas do cliente e dos stakeholders, além de ser cíclico, sendo possível realizar a aplicação do processo independentemente do tempo e expansão do projeto.


3. Rastreabilidade Automatizada com Pre-commit

A rastreabilidade no Stratify é garantida pela integração entre Jira e GitHub, com commits e branches vinculados aos IDs das tarefas (ex: SCRUM-23-fix(form): fix form validation). Isso permite acompanhar cada entrega desde o requisito até o código-fonte.

Para reforçar esse controle, utilizamos o pre-commit, uma ferramenta que executa verificações automáticas antes de um commit ser realizado.

Funções do Pre-commit

  • Garante o padrão das mensagens de commit com ID do Jira.
  • Aplica formatações automáticas (ex: Prettier, Black).
  • Impede commits com erros ou fora do padrão.

Exemplo de uso

Ao tentar commitar com uma mensagem fora do padrão, como layout fix, o pre-commit bloqueia a ação e orienta o desenvolvedor a utilizar o formato correto, por exemplo:
SCRUM-17-style(button): changed button alignment.

Benefícios

  • Padronização e redução de falhas humanas.
  • Agilidade nas revisões e entregas mais alinhadas.

Com isso, unimos boas práticas de versionamento com automação, garantindo que todo o processo de desenvolvimento esteja conectado às demandas reais do projeto.

Clone this wiki locally