Skip to main content

Visão geral do projeto

Ciclo de vida do projeto de desenvolvimento de software

  • Metodologia

    Nosso ciclo de vida adota uma abordagem iterativa e incremental, estruturada em níveis conceituais que orientam o desenvolvimento do projeto, conforme apresentado na Figura 2. Esses níveis se desdobram da filosofia metodológica adotada até as ferramentas utilizadas para operacionalizar as atividades. A base da nossa estrutura está na metodologia ágil SCRUM, que guia o processo de desenvolvimento em ciclos curtos e adaptativos, incentivando a entrega contínua de valor e a colaboração entre os membros do time. Com base nessa metodologia, definimos um processo composto pelas etapas de levantamento e análise de requisitos, implementação e testes, garantindo que o produto seja construído de forma incremental e validado continuamente. Cada uma dessas etapas é operacionalizada por procedimentos padronizados, que descrevem como cada fase deve ser conduzida. Esses procedimentos, por sua vez, são apoiados por métodos (como Sprint Planning, reuniões, revisões e retrospectivas) e ferramentas específicas (como Figma, GitHub, GitHub Projects e Docusaurus), que possibilitam a execução prática e o monitoramento das atividades. Essa integração de elementos assegura consistência, qualidade e rastreabilidade no desenvolvimento do produto.
    A seguir, a Figura 2 ilustra essa estrutura de forma esquemática, evidenciando a relação entre metodologia, processo, procedimentos, métodos e ferramentas adotadas no projeto.

    Figura 2: Diagrama de métodos. Diagrama de métodos Fonte: De autoria própria.

  • Processos

    Processo (Conjunto de Atividades): Com base na metodologia SCRUM, estruturamos um processo que abrange todas as fases essenciais do desenvolvimento do software. No nosso caso, o processo é composto pelas seguintes etapas:

    • Levantamento e Análise de Requisitos: Identificação das necessidades dos usuários e definição das funcionalidades do website.
    • Projeto e Design do Sistema: Criação da arquitetura do sistema, elaboração de wireframes, definição das tecnologias (HTML, CSS, Tailwind, JavaScript e MySQL).
    • Implementação: Codificação das funcionalidades tanto no front-end quanto no back-end, com integração contínua.
    • Testes e Validação: Execução de testes unitários, de integração e usabilidade para garantir a qualidade do sistema.
    • Procedimentos (Guia o Modo de Fazer): Para cada atividade do processo, desenvolvemos procedimentos que padronizam a execução. Por exemplo:
      No design, há um procedimento para a elaboração de wireframes e protótipos com ferramentas de design (como Figma ou Sketch).
      Durante a implementação, definimos padrões de codificação, revisão de código e integração contínua.
      Para os testes, aplicamos um protocolo que guia a criação e execução de testes unitários, de integração e de usabilidade, conforme detalhado no tópico 7 (TESTES DE SOFTWARE). Esse protocolo inclui:
      • Análise estática de código com SonarQube para identificar vulnerabilidades (Seção 7.2).
      • Testes unitários com Jest e React Testing Library (Seção 7.2).
      • Testes de integração de APIs usando Supertest.
      • Testes end-to-end com Cypress para validar fluxos completos. Além disso, seguimos os critérios de entrada e saída definidos na Seção 7.3, garantindo que os testes só sejam iniciados após a aprovação do código-fonte e concluídos apenas quando 100% dos casos de teste forem executados e a cobertura mínima (80%) for atingida.
        Esses procedimentos garantem que todos os membros da equipe saibam exatamente como proceder em cada etapa do projeto, mantendo consistência e qualidade.
  • Métodos e Ferramentas

    Métodos e Ferramentas (Técnica Formal e Instrumento para Realizar uma Tarefa): Os procedimentos definidos são suportados por métodos e ferramentas específicas, que tornam a execução prática possível e mensurável.

    • Métodos:
      • Sprint Planning: Definição de tarefas no GitHub-Pages (Quadro Kanban)
      • Reuniões Diárias (Daily): Reuniões rápidas via Microsoft Teams, fase de desenvolvimento e testes.
      • Sprint Review: Demonstração de funcionalidade para validação.
      • Retrospectiva: Análise de melhorias/implementações do processo.
    • Ferramentas:
      • Figma: Protótipos visuais (Wireframes)
      • GitHub: Repositório contendo as implementações contínuas do projeto, verificações para garantir a segurança do projeto.
      • GitHub-Projects: Quadro Kanban, contendo as histórias de usuário e suas especificações, possibilitando a metodologia SCRUM
      • Docusaurus: Ferramenta de documentação, será utilizada para documentar o nosso progresso, atas de reuniões e entre outros

Organização do Projeto

  • A organização do projeto foi estruturada com base nos princípios da metodologia SCRUM, contemplando diferentes papéis funcionais e suas respectivas atribuições, conforme apresentado na Tabela 5 – Organização do projeto. Cada integrante foi alocado de acordo com suas habilidades técnicas, preferências e disponibilidade, visando garantir a eficiência no desenvolvimento e a qualidade do produto. Embora existam papéis bem definidos, a equipe adota uma abordagem colaborativa, permitindo que membros atuem em múltiplas funções ou assumam atribuições complementares, sempre que necessário. Além dos papéis técnicos, o projeto conta com a função de Scrum Master, exercida por Gabriel Augusto, cuja responsabilidade é facilitar os processos ágeis, remover impedimentos e promover a boa comunicação entre os membros da equipe.

Tabela 5: Declaração de posição do produto

PapelAtribuiçõesResponsávelParticipantes
Desenvolvedor BackendImplementar e manter a lógica de servidor, criar APIs e garantir a integração com o Banco de Dados.Diogo OliveiraGabriel Augusto, Rafael Siqueira, Diogo Oliveira, João Victor, João Pedro
Desenvolvedor FrontendDesenvolver as interfaces e interações do usuário, aplicar HTML, CSS, Tailwind e JavaScript para assegurar design responsivo e boa experiência.Gabriel AugustoCaua Nicolas, Tiago Scherrer, Arthur de Lima, Gabriel Augusto
Responsável pela DocumentaçãoElaborar e manter a documentação técnica e de usuário, registrando decisões e atualizações do projeto.Diogo OliveiraRafael Siqueira, Julia Oliveira, Gabriel Augusto, Gabriel Pereira, Diogo Oliveira
Banco de DadosModelar, implementar e otimizar o banco de dados, garantindo segurança e desempenho.João VictorJoão Victor, João Pedro, Ana Beatriz
Analista de TestesPlanejar e executar testes (unitários, de integração e de usabilidade), realizar refatorações e validar se os critérios de “pronto” são atendidos.Rafael SiqueiraRafael Siqueira, Julia Oliveira
Dono do ProdutoAtualizar e gerir o escopo do produto, organizar o planejamento das sprints e validar as entregas, garantindo alinhamento com as necessidades demandadas.Gabriel AugustoGabriel Augusto, Diogo Oliveira
ClienteFornecer feedback constante, validar funcionalidades e orientar as prioridades com base em suas necessidades.Gabriel AugustoGabriel Augusto
Scrum MasterFacilitar as cerimônias ágeis, garantir a aplicação do framework SCRUM, remover impedimentos e promover a comunicação eficiente entre os membros da equipe.Gabriel AugustoGabriel Augusto

Fonte: De autoria própria.

Planejamento das Fases

  • Planejamento das Fases e/ou Iterações do Projeto: O planejamento do projeto foi organizado em sprints semanais, de acordo com os princípios da metodologia ágil SCRUM, visando entregas incrementais e interativas ao longo do ciclo de desenvolvimento. Cada sprint compreende um intervalo de tempo fixo com objetivos específicos, contendo um conjunto de tarefas (issues) atribuídas ao time de desenvolvimento.
    A Tabela 6 – Planejamento das Fases e/ou Interações do Projeto apresenta uma visão consolidada das sete sprints executadas, informando a data de início e fim de cada uma, os produtos entregues de forma resumida, os principais entregáveis (itens a serem entregues na sprint), os responsáveis envolvidos e o percentual de conclusão (%). É importante ressaltar que, embora os prazos tenham sido ajustados ao longo do tempo, todas as entregas foram efetivamente concluídas, resultando em 100% de conclusão por sprint. As entregas foram realizadas de forma colaborativa por todos os integrantes do grupo, o que reforça o caráter multidisciplinar da equipe. A atuação coletiva também foi essencial para garantir o cumprimento dos objetivos estabelecidos em cada sprint.
    Para uma visão mais detalhada dos entregáveis, com suas respectivas descrições e priorizações, recomenda-se a consulta à Tabela 10 – Backlog do produto, onde estão listadas as funcionalidades planejadas ao longo do projeto, organizadas com base nas tags de priorização, como “Must”, “Should” e “Could”.

Tabela 6: Planejamento das Fases e/ou Interações do Projeto

Sprint__Data InícioData FimProduto (Entrega)Entregável(eis)Responsáveis%
Sprint 117/0520/05Interface inicial + autenticação + CI1, 2, 3Todos os integrantes100%
Sprint 220/0527/05Cadastro de perfis + backend inicial4, 5, 6Todos os integrantes100%
Sprint 327/0503/06Funcionalidades de chat e organização7, 8, 9Todos os integrantes100%
Sprint 403/0609/06Página de upload e gestão de contratos10, 11, 12, 13Todos os integrantes100%
Sprint 509/0616/06Filtros de busca + otimização UI14, 15, 16, 17, 18, 19, 20Todos os integrantes100%
Sprint 616/0623/06Relatório de métricas + ajustes backend21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31Todos os integrantes100%
Sprint 723/0630/06Deploy e refinamentos finais31, 32, 33, 34, 35, 36, 37, 38, 39, 40Todos os integrantes100%
Sprint 830/0607/07Todos os integrantes

Fonte: De autoria própria.

Matriz de Comunicação

  • Matriz de Comunicação: Esta seção descreve a estratégia adotada para monitorar o progresso do projeto, detalhando quem se comunica, com que frequência, por onde e quais produtos (documentos) são gerados. No nosso caso, utilizamos o Microsoft Teams para centralizar as comunicações, realizando reuniões fixas às segundas e quartas-feiras, além de um encontro extra semanal (“quando necessário”), para discutir aspectos específicos do projeto, algumas vezes entre todos os integrantes e outras com parte específica de alguma função. Essas informações estão organizadas na Tabela 7, que apresenta a matriz de comunicação, detalhando a descrição da comunicação, os envolvidos, a periodicidade e os produtos gerados.

Tabela 7: Matriz de comunicação.

DescriçãoÁrea/EnvolvidosPeriodicidadeProdutos Gerados
Acompanhamento Geral do Projeto. Acompanhamento dos riscos e ações pendentes.Equipe do Projeto.Reuniões via Microsoft Teams: Segundas e Quartas-feiras, com uma reunião adicional semanal para discussões gerais e/ou específicas.Ata de reunião. Relatório de situação do projeto.
Comunicação da situação do projeto.Equipe. Professor/Monitor.Não definida.Ata de reunião, e Relatório de situação do projeto.

Fonte: De autoria própria.

Gerenciamento de Riscos

  • Gerenciamento de Riscos: O Gerenciamento de Riscos tem como objetivo identificar, analisar e gerenciar os possíveis riscos que podem impactar o sucesso do projeto. A cada ciclo (ou iteração) do projeto, a lista de riscos deverá ser revisada para garantir que os riscos estejam atualizados e que novas ações de mitigação ou contingência sejam implementadas quando necessário. Esses aspectos estão sistematizados no Quadro de Gerenciamento de Riscos, apresentado na Tabela 8, o qual contempla os riscos identificados, seu grau de exposição, as ações de mitigação e os respectivos planos de contingência.
  • Considerações:
    • Grau de Exposição: Classificar o risco como "Alto", "Médio" ou "Baixo" ajuda a priorizar as ações preventivas e definir se o risco necessita de um plano de contingência robusto.
    • Ação de Mitigação: São medidas que podem reduzir ou eliminar a probabilidade ou o impacto dos riscos. A aplicação dessas ações deve ser planejada e registrada desde a fase de início do projeto.
    • Plano de Contingência: Caso um risco se concretize, o plano de contingência indica as ações imediatas a serem tomadas para minimizar os danos ou recuperar o andamento planejado do projeto.

Tabela 8: Quadro de gerenciamento de Riscos.

RiscoGrau de exposiçãoAção de MitigaçãoPlano de Contingência
Atrasos no cronograma do projeto.Alto.Revisão e replanejamento contínuo; realocação de recursos; reuniões de acompanhamento frequentes.Convocação imediata de uma reunião de replanejamento e revisão de escopo; ajustes de prazos e redefinição de prioridades.
Falhas na integração do sistema.Médio.Realização de testes unitários e de integração com maior rigor; validação contínua das interfaces desenvolvidas.Atuação imediata da equipe de desenvolvimento para sanar a falha.

Fonte: De autoria própria.

Critérios de Replanejamento

  • Integração com a Gestão de Riscos: Os critérios de replanejamento estão intimamente ligados à gestão de riscos. É essencial manter a atualização constante da lista de riscos, pois os riscos materializados ou novos riscos identificados serão fontes críticas para a decisão de replanejar. Essa lógica está apresentada no Quadro dos Critérios de Replanejamento, conforme descrito na Tabela 9.
  • Atualização Contínua: Os critérios e procedimentos de replanejamento devem ser revisados e, se necessário, ajustados a cada ciclo de desenvolvimento para refletir a realidade atual do projeto. Cada mudança que desencadear um replanejamento deve ser registrada, garantindo o versionamento deste documento.
  • Decisão Baseada em Dados: O replanejamento deve ser acionado com base em indicadores claros de desempenho, no impacto dos riscos concretizados e nas alterações significativas de escopo, evitando mudanças excessivas que possam comprometer a estabilidade do projeto.
    Tais indicadores estão organizados na Tabela 13: Métricas e Medições, que reúne métricas essenciais para avaliar a performance de um time ágil, como Velocidade da Sprint, Desvio de Cronograma, Tempo Médio de Resolução, Precisão das Estimativas e Taxa de Retrabalho.
    Essas métricas possibilitam análises objetivas sobre a qualidade do planejamento, a eficiência da equipe e os pontos de melhoria. Além disso, são acompanhadas em tabelas específicas por Sprint, as quais complementam a análise contínua com base nos critérios definidos na Tabela 14.

Tabela 9: Quadro dos critérios de replanejamento.

CritériosAção
Conflitos Internos na EquipeQuando surgirem divergências significativas entre os membros da equipe, pode ser necessário reavaliar e ajustar certos pontos do projeto. Essas discordâncias podem levar à necessidade de reestruturar composição de times ou refazer trechos do produto, garantindo a integração e a eficácia das contribuições. Nessas situações, o conflito será conduzido por uma mediação utilizando os princípios da Comunicação Não Violenta (CNV), com o objetivo de restaurar a harmonia e fortalecer a colaboração entre todos os envolvidos.
Indicadores de Desempenho InsatisfatóriosCaso os indicadores-chave de desempenho (qualidade, entregas parciais, feedback dos usuários) não atinjam as metas estabelecidas no planejamento, será necessário revisar os processos e ajustar as estratégias para recuperar o caminho planejado.
Desvios Significativos no CronogramaSe o andamento das atividades apresentar atrasos que ultrapassem um percentual crítico, o projeto deverá ser reavaliado para realinhar prazos e recursos. Essa condição é aplicada quando os atrasos impactam marcos ou entregáveis críticos do projeto.
Materialização de Riscos CríticosQuando um dos riscos identificados na matriz de riscos, especialmente aqueles com alto grau de impacto, se concretizar e afetar os resultados ou a continuidade das atividades, o planejamento deverá ser revisado conforme os planos de mitigação ou contingência previstos.

Fonte: De autoria própria.


Referência

Documento de visão do produto e do projeto

Para acessar a versão mais atual (v1.2.0) do documento de visão do produto e do projeto, consulte o pdf
Visão do Produto e do Projeto - EcoNet