Engenharia de Requisitos
Atividades e Técnicas da ER e ScrumXP
Planejamento da Release
Atividades de ER | Prática | Técnica | Resultado Esperado |
---|---|---|---|
Elicitação e Descoberta | Levantamento de Requisitos | Entrevista, Análise de Dominío de Negócio | Descoberta de requisitos de alto nível e mapeamento do objetivo de entrega da release. |
Análise e Consenso | Priorização de Requisitos | Priorização MoSCoW | Garantir que as funcionalidades essenciais sejam entregues primeiro, enquanto as menos críticas podem ser trabalhadas conforme o tempo permite. |
Declaração | Registro dos Requisitos | Temas, Épicos e Histórias de Usuário | Histórias de usuário registradas e compreendidas pela equipe e pelo PO. |
Verificação e Validação | Validação de Requisitos | Checklist | Verificar se os requisitos e histórias de usuário estão bem declarados e de acordo com o objetivo de entrega da release. |
Organização e Atualização | Organização de Requisitos | Pontos por História | Organização do backlog do produto com histórias ordenadas por nível de importância. |
Elicitação e Descoberta:
- Entrevista: Reuniões realizadas com o PO para melhor entendimento do problema atual e das caracteristicas que a solução deve ter. Resultando no alinhamento da Visão de Produto do time.
- Análise de Domínio de Negócio: Entender de forma mais aprofundada o contexto do negócio a ser desenvolvido, com o objetivo de alinhar os requisitos identificados às necessidades estratégicas da organização.
Análise e Consenso:
- Priorização MoSCoW: Classifica os requisitos em quatro categorias: Must have (essenciais), Should have (importantes), Could have (desejáveis) e Won’t have (não incluir), dessa forma, é definido o que vai ser prioridades no projeto.
Declaração:
- Temas, Épicos e Histórias de Usuário: Permite descrever os requisitos com um nível mais alto de detalhes, garantindo à equipe uma compreensão precisa das características que uma funcionalidade do produto deve ter.
Verificação e Validação:
- Checklist: Checar se os requisitos estão declarados corretamente e se eles fazem sentindo com a proposta da release e do projeto.
Organização e Atualização:
- Pontos por Histórias: Estratégia que pontua as histórias de acordo com a importância delas. No caso do projeto Portal Galt, as histórias foram pontuadas de acordo com o valor de negócio e a complexidade de cada uma.
Planejamento da Sprint
Atividades de ER | Prática | Técnica | Resultado Esperado |
---|---|---|---|
Elicitação e Descoberta | Refinamento de Requisitos | Discussão em equipe | Definição dos requisitos da sprint vindoura. |
Análise e Consenso | Análise de Dependências | Discussões em equipe e Análise de tarefas | Consenso da equipe da capacidade de entrega e possibilidades para a sprint. |
Declaração | Definição dos Critérios de Aceitação | Histórias de Usuário com critérios de aceitação detalhados | Revisão e refinamento das histórias de usuário. |
Verificação e Validação | Validação de Histórias de Usuário | Definition of Ready | Verificar se as histórias de usuários estão prontas para serem trabalhadas na sprint. |
Organização e Atualização | Refinamento dos Requisitos | Pontos por História | Definição do Backlog da sprint baseado em prioridade de entrega. |
Elicitação e Descoberta:
- Discussão em equipe: Levantamento dos requisitos e histórias a serem trabalhados na sprint seguinte.
Análise e Consenso:
- Discussões em equipe: Com base nos requisitos definidos e nas histórias criadas, a equipe ponderará sobre o que pode ser entregue, considerando o conhecimento da equipe e o tempo necessário para realizar as entregas.
- Análise de tarefas: Análise e separação entre a equipe das tarefas necessárias para a execução da sprint.
Declaração:
- Histórias de Usuário: As histórias de usuário escritas passarão por um refinamento com o objetivo de esclarecer e detalhar os critérios de aceitação e as tarefas necessárias, para que, durante a execução da sprint, o time não enfrente dúvidas ou ambiguidades.
Verificação e Validação:
- Definition of Ready: Verificar se as histórias de usuário estão prontas para desenvolvimento, de acordo com os critérios definidos de DoR do projeto.
Organização e Atualização:
- Pontos por Histórias: A equipe selecionará as histórias de usuário com maior pontuação para compor o backlog da sprint. Dessa forma, as histórias que trazem mais valor de negócio para o cliente serão entregues prioritariamente.
Execução da Sprint
Atividades de ER | Prática | Técnica | Resultado Esperado |
---|---|---|---|
Representação | Criação de protótipos | Prototipagem | Obter versões preliminares do sistema para validar ideias e requisitos. |
Verificação e Validação | Reuniões entre a equipe e revisão de código | Feedback entre pares e Definition of Done | Obter feedback contínuo entre a equipe para alinhar o desenvolvimento e validar as histórias de usuário trabalhadas. |
Organização e Atualização | Organizar tarefas da sprint | Discussão em equipe | Garantir que as funcionalidades essenciais sejam entregues primeiro, enquanto as menos críticas podem ser trabalhadas conforme o tempo permite. |
Representação:
- Prototipagem: As histórias de usuário serão prototipadas para que o time tenha uma orientação clara de como desenvolver a funcionalidade descrita na história e o PO tenha uma visão de como essa funcionalidade será representada.
Verificação e Validação:
- Feedback entre pares: Haverá feedback entre os membros do time sobre o que está sendo implementado, com possibilidade de novas ideias e sugestões.
- Definition of Done: Verificar se as histórias de usuário podem ser consideradas como finalizadas de acordo com os critérios definidos no DoD.
Organização e Atualização:
- Discussão em equipe: Organização das tarefas executadas na sprint de acondo com a prioridade definida no backlog.
Revisão da Sprint
Atividades de ER | Prática | Técnica | Resultado Esperado |
---|---|---|---|
Verificação e Validação | Reunião com o cliente | Feedback | Obtenção de feedback e refinamento das User Stories com base nas sugestões e críticas do cliente. |
Organização e Atualização | Atualização de User Stories | Incorporar feedback | Atualização das User Stories conforme o feedback obtido. |
Verificação e Validação:
- Feedback: Reunião com o PO para receber feedback sobre o que foi feito na sprint e para o refinamento das histórias de usuário, caso surjam novas sugestões.
Organização e Atualização:
- Incorporar feedback: Alterações realizadas com base no feedback do PO.
Planejamento da Próxima Release
Atividades de ER | Prática | Técnica | Resultado Esperado |
---|---|---|---|
Elicitação e Descoberta | Identifição de novos requisitos | Discussão da Equipe e Análise de Tarefas | Ajuste e atualização dos requisitos considerando o feedback do PO e as novas necessidades. |
Análise e Consenso | Priorização estratégica | Análise de domínio de requisito e priorização MoSCoW | Lista dos requisitos que incluidos na proxíma release. |
Declaração | Definição de épicos e de Histórias de Usuário | Criação dos épicos e histórias de usuários | Histórias de Usuários definidas para serem trabalhadas na proxíma release. |
Verificação e Validação | Verificação do Backlog da Release | Checklist e Definition of Ready | Verificação das Histórias de Usuário que serão trabalhadas na proxíma release. |
Organização e Atualização | Revisão do backlog | Revisão do backlog da release | Atualização das entregas do backlog para a release seguinte. |
Elicitação e Descoberta:
- Discussão da Equipe e Análise de Tarefas: Discussão da equipe sobre o que deverá ser feito na próxima release e quais atividades serão necessárias para o que vai ser feito.
Análise e Consenso:
- Análise de domínio de requisitos: Verificar se os requisitos ainda estão alinhados com a visão do projeto ou se precisam ser alterados.
- Priorização MoSCoW: Revisar a priorização das histórias com base no andamento do projeto, para garantir que na próxima release o mais importante seja entregue primeiro.
Declaração:
- Criação dos épicos e histórias de usuários: Criação de novos épicos e histórias de usuário, bem como o detalhamento das já existentes, visando o desenvolvimento na próxima release.
Verificação e Validação:
- Checklist do Definition of Ready: Validar se as histórias de usuário planejadas para a próxima release estão prontas e se podem entrar no backlog de produção da release seguinte, seguindo os critérios do DoR.
Organização e Atualização:
- Revisão do backlog da release: Atualização do backlog considerando as histórias que já foram entregues, as novas histórias criadas e as próximas a serem desenvolvidas.
Adoção de um Modelo Híbrido: Scrum XP com Elementos do OpenUP
Neste projeto, adotamos uma abordagem ágil híbrida, combinando os princípios e práticas de Scrum XP com alguns métodos do OpenUP (Open Unified Process), criando uma metodologia customizada que melhor atende às necessidades do nosso time e ao perfil do nosso produto.
Principais Abordagens Ágeis: Scrum XP
O Scrum XP é um framework ágil focado na entrega contínua e incremental de valor, combinando a flexibilidade do Scrum com as boas práticas de desenvolvimento do Extreme Programming (XP).
Scrum XP | Descrição |
---|---|
Scrum | Fornece uma estrutura de trabalho para organização e gestão do time, com ciclos de desenvolvimento organizados em sprints (geralmente de 2 a 4 semanas), nos quais entregamos funcionalidades incrementais e trabalhamos de forma colaborativa. |
XP | Acrescenta práticas técnicas que garantem a qualidade do código e o desenvolvimento de funcionalidades de maneira eficiente e sustentável, como programação em pares, testes automatizados e refatoração contínua. |
Integração do OpenUP
Embora o Scrum XP tenha sido o principal framework de desenvolvimento, decidimos integrar alguns aspectos do OpenUP para ajustar a entrega do projeto às características específicas que desejamos alcançar. Em particular, a parte da entrega final será tratada de maneira diferente. Em vez de realizar entregas incrementais ao final de cada sprint, o projeto adotará uma abordagem mais estruturada inspirada no OpenUP, com uma entrega substancial no final do ciclo de desenvolvimento.
Fases de Entrega no OpenUP
O OpenUP oferece uma estrutura organizada e focada em fases distintas do desenvolvimento, desde a iniciação até a transição. Embora nossa abordagem principal seja ágil, o OpenUP foi integrado para trazer maior estrutura e previsibilidade ao processo de entrega final:
Fase | Descrição |
---|---|
Planejamento da Release e Execução | Diferente do modelo tradicional do Scrum, em que as entregas são feitas ao final de cada sprint, decidimos que as funcionalidades do nosso projeto serão entregues de uma só vez, ao final do ciclo de desenvolvimento. Este modelo é inspirado no OpenUP, que enfatiza a entrega de um produto final ou release com uma análise de risco mais profunda e um controle maior sobre a arquitetura do sistema. |
Gerenciamento de Requisitos e Arquitetura | Durante o ciclo de desenvolvimento, utilizamos práticas do OpenUP para manter uma visão clara da arquitetura do sistema e gerenciar os requisitos de forma eficiente. Embora o Scrum forneça flexibilidade na definição de histórias de usuário e backlog, o OpenUP nos ajudou a manter o alinhamento técnico e estratégico, com um foco maior no planejamento arquitetural desde o início. |
Entrega Substancial no Final | A principal mudança que o OpenUP traz para o nosso processo é o modelo de entrega. No OpenUP, a entrega final de um sistema ocorre com uma versão robusta do produto, e não ao longo de várias iterações menores. Adaptamos essa prática para nosso projeto, fazendo uma entrega grande e integrada no final do ciclo de desenvolvimento, garantindo que todas as funcionalidades do sistema sejam entregues de forma coesa, testadas e documentadas. |
Conclusão
Ao adotar um modelo híbrido, combinando o Scrum XP com elementos do OpenUP, criamos um processo de desenvolvimento ágil e robusto que oferece flexibilidade nas entregas contínuas de funcionalidades, ao mesmo tempo que garante a estrutura e previsibilidade necessárias para uma entrega final consistente e de alta qualidade. Este mix de metodologias nos permite entregar valor de forma eficaz, mantendo a flexibilidade do ágil e garantindo a excelência técnica que o OpenUP oferece.
Histórico de Revisão
Data | Versão | Descrição | Autores |
---|---|---|---|
15/12/2024 | 1.0 | Criação da página Engenharia de Requisitos | Cairo Florenço |
16/12/2024 | 1.1 | Preenchimento das tabelas de atividades da ER | João Pedro |
20/01/2025 | 2.0 | Atualização das tabelas de atividades da ER | Cairo Florenço |
10/02/2025 | 3.0 | Atualização da abordagem da ER | Bruno Oliveira |