Galdi

VISÃO DO PRODUTO E PROJETO

Versão 0.6

Histórico de Revisão

Data Versão Descrição Autor
27/06/2022 0.1 Criação do documento Ciro Costa
29/06/2022 0.2 Atualização do documento Ciro Costa
29/06/2022 0.3 Atualização dos documentos Giulia Alcantara
29/06/2022 0.4 Atualização das tecnologias Guilherme França
30/06/2022 0.5 Adicionada abordagem de software Bruna Lima
30/06/2022 0.6 Atualização das atividades Samuel Sato
04/06/2022 0.7 Atualização das atividades Samuel Sato
05/06/2022 0.8 Atualização das atividades e participantes Ciro Costa
11/06/2022 0.9 Atualização do planejamento Ciro Costa
08/07/2022 1.0 Atualização Processo de engenharia de requisitos Nicolas Roberto
13/07/2022 1.1 Atualização da matriz de comunicação Ciro Costa
14/07/2022 1.2 Atualização de processos e procedimento e adição de lições aprendidas Samuel Sato
17/07/2022 1.3 Atualização de processos e procedimento Samuel Sato
19/07/2022 1.4 Atualização de Sprints e gerenciamento de riscos Laura Pinos
19/07/2022 1.5 Retirada dos requisitos do documento e Atualização das lições aprendidas Ciro Costa
27/07/2022 1.6 Atualização dos processos e procedimentos Bruna Lima
27/07/2022 1.7 Atualização de tabelas de requisitos Laura Pinos
02/08/2022 1.8 Detalhamento dos processos da abordagem de software Giulia Alcantara
03/08/2022 1.9 Atualização dos processos e procedimentos Bruna Lima
04/08/2022 2.0 Ajustes no Planejamento das Fases do Projeto Bruna Lima
06/09/2022 2.1 Atualização Planejamento das Fases e/ou Iterações do Projeto Nicolas Roberto
13/09/2022 2.2 Entregas unidade 3 e 4 Samuel Sato

Sumário

VISÃO GERAL DO PRODUTO

1.1 Declaração de Posição do Produto

O Galdi (Gestão de Alunos e Didáticos) é um produto que visa gestão de alunos envolvidos na área da saúde. A diferença entre o Galdi e outros softwares de gestão como o da datalogica é que o Galdi é focado em négocios voltados para o setor de educação da área da sáude. Tendo como cliente principal instituições de ensino particulares. O principal atrativo do Galdi é a pouca necessidade de customização em relação a outros softwares de gestão, que, normalmente, não apresentam esse foco nessa área.Além de ter custo baixo de aquisição.

Para Pessoas que mexem com sistemas de gerencia
Quem Deseja agilidade com processos envolvendo a área da saúde
O Galdi é um sistema de gestão de alunos na área da saúde
Que tem custo baixo de aquisição
Ao contrário do datalogica, SIGAA
Nosso produto será intuitivo e dedicado para a área

1.2 Objetivos do Produto

O principal objetivo do Galdi é facilitar a gestão de alunos, da área da saúde, da instituição reduzindo os esforços de gestão e aumentar a fidelidade dos dados.

1.3 Tecnologias a Serem Utilizadas

VISÃO GERAL DO PROJETO

2.1 Organização do Projeto

Papel Atribuições Responsavel Participantes
Desenvolvedor Codificar o produto,testes e realizar refatoração Samuel Bruna, Giulia, Guilherme
Analista de Qualidade Garantir a qualidade das entregas e se cumprem a ideia proposta Ciro Laura, Nicolas
Dono do Produto Atualizar o escopo e validar entregas Laura Nicolas, Ciro
Mestre do Scrum Delegar tarefas, duração sprint e sprint review Nicolas Ciro, Laura
Cliente Relatar para a equipe as funcionalidades do software e validar as entregas feitas Gustavo Ian Ciro,Laura, Nicolas

2.2 Planejamento das Fases e/ou Iterações do Projeto

Sprint Entrega Início Fim
1 Deocumento de Visão do Produto e Projeto 20/06/2022 30/06/2022
2 Registros de requisitos e estudo de tecnologias 05/07/2022 19/07/2022
3 Primeira versão da definição do Backlog do Produto, documento de arquitetura, protótipo de interface e preparação do ambiente de desenvolvimento 19/07/2022 02/08/2022
4 Implementação do MVP1, interface de usuário e validação de requisitos 02/08/2022 16/08/2022
5 Implementação do MVP1 16/08/2022 30/08/2022
6 Finalização do MVP1, testes e entrega, Implementação do MVP2, testes, interface de usuário, validação de requisitos e entrega 30/08/2022 13/09/2022

2.3 Matriz de Comunicação

A comunicação se dara principalmente por meio da plataforma WhatsApp. Reuniões serão feitas no Discord, ou Google meets.

Descrição Envolvidos Periodicidade Produtos Gerados
Sprint Review Equipe Projeto e Cliente Semanalmente Relatório Sprint Review
Sprint Planning Equipe Projeto e Cliente No mesmo dia da Sprint Review Relatório Sprint Planning
Daily Equipe Projeto Diariamente Atualização sobre andamento do projeto
Comunicar situação do projeto Equipe Projeto e Professor Aproximadamente 21 dias Apresentação

2.4 Gerenciamento de Riscos

A análise e gestão de risco auxiliam a equipe a entender problemas e avaliar possíveis riscos encontrados ao desenvolver do projeto, assim, guiando o usuário e desenvolvedor a contenção dos prejuízos.

Segundo Charette, existem três tipos de riscos de Software (PRESSMAN,2006):

Riscos de projeto mostram problemas potenciais de orçamento, cronograma, organizacionais que impactam o projeto. (PRESSMAN,2006)

Riscos técnicos pertuba a qualidade e a entrega do software. Também mostram problemas potenciais de projeto, implementação, interface, verificação e manutenção. (PRESSMAN,2006)

Riscos de negócio ameaçam a viabilidadea do software e o produto. Existem cinco principais riscos de negócios que são: (1) criar um excelente produto ou sistema que ninguém realmente quer (risco de mercado), (2) criar um produto que não se encaixe mais na estratégia geral de negócios da empresa (risco estratégico), (3) criar um produto que a equipe de vendas não sabe como vender (risco de vendas), (4) perda de suporte da alta gerência devido à mudança no foco ou mudança de profissionais (risco gerencial), e (5)perda do orçamento ou do comprometimento dos profissionais (riscos de orçamento). (PRESSMAN,2006)

image

Figura 1, Tabela de Previsão de Riscos (PRESSMAN,2006)

Os riscos seram revistos ao final de cada Sprint e atualizados após a analise da equipe.

Historico de riscos:

Sprint Risco encontrado nivel
3 Equipe de desenvolvimento com conhecimento técnico baixo Marginal
4 Disparidade de velocidade de implantação entre equipes de desenvolvimento Crítico
5 Atraso do MVP 1 Crítico

2.5 Critérios de Replanejamento

  • Alteração significativa nas regras de negocio do produto ou de escopo.
  • Desistência de um membro da equipe do projeto.
  • 2 sprints seguidas com tarefas atrasadas, indicação de processos errados.
  • 3 sprints com requisitos repetidos, indicação de requisitos errados.

Historico de replanejamento:

Sprint Solução encontrada Resultado esperado
3 Fornecimento de materiais tecnicos voltados para o desenvolvimento do projeto Capacitação da equipe
4 Auxilio ativo mais presente de requisitos na equipe de mds Igualar a velocidade de implantação das equipes
5 Disruptura dos grupos de front e back-edn implementação correta

2.6 MVP canvas

2.6.1 Proposta

proposta

2.6.2 Personas

personas

2.6.3 Jornadas

jornadas

2.6.4 Funcionalidades

funcionalidades

2.6.5 Custos

custos

2.6.6 Resultados

resultado

2.6.7 Métricas

metricas

ABORDAGEM DE DESENVOLVIMENTO DE SOFTWARE

3.1 Metodologia

Baseado na proposta do Sommerville (2018), foi respondido um conjunto de questões de naturezas distintas para definir a abordagem que melhor se encaixasse ao projeto e time.

  • Questões técnicas:

  • Qual é o tamanho do sistema que está sendo desenvolvido? É um software de médio porte.

  • Que tipo de sistema está sendo desenvolvido? Aplicação Web.

  • O sistema está sujeito a controle externo? Sim, o sistema será consumido pela instituição de ensino.

  • Questões humanas:

  • Qual é o nível de competência dos projetistas e programadores do time de desenvolvimento? Os integrantes possuem nível básico-intermediário.

  • Como está organizado o time de desenvolvimento? Os desenvolvedores estão dividos entre o front-end e o back-end da aplicação.

  • Quais são as tecnologias disponíveis para apoiar o desenvolvimento do sistema? A princípio o Github para versionamento e Trello para gerenciar o fluxo de atividades.

  • Questões organizacionais:

  • É importante ter uma especificação e um projeto (design) bem detalhados antes de passar para a implementação - talvez por motivos contratuais? Como será utilizada uma metodologia de design orientado a função, não tem necessidade de ser bem definido antes da implementação.

  • É realista uma estratégia de entrega incremental, na qual o software é entregue aos clientes ou outros stakeholders e um rápido feedback é obtido? Por conta da proximidade do Product Owner(PO) com o cliente e a equipe de desenvolvimento, é realista.

  • Os representantes do cliente estarão disponíveis e dispostos a participar do time de desenvolvimento? Sim, uma vez que o representante faz parte da equipe.

  • Existem questões culturais que possam afetar o desenvolvimento do sistema? Não.

Considerando os resultados obtidos e as necessidades da equipe de priorizar a flexibilidade e o desenvolvimento iterativo, a metodologia ágil foi escolhida. Assim, a abordagem SCRUM foi adotada como ciclo de vida e processo de desenvolvimento baseado no XP (Extreme programming) pelos seguintes motivos:

  • O feedback contínuo do cliente e os requisitos que são construídos junto com o software permitem que qualquer mudança necessária seja feita sem prejudicar o desenvolvimento da aplicação.

  • Realização controle das atividades da sprint de forma eficiente

3.2 Processo e procedimentos

De acordo com a abordagem SCRUM, foram definidos os seguintes processos:

  • Sprint: com duração de 2 semanas;
  • Dailys: momento do dia onde serão apontadas correções e verificações diárias com todo o time;
  • Backlog do Produto e da Sprint: são definidos antes de cada Planning;
  • Planning: realizada no primeiro dia de cada sprint, com atividades como: definir arquiteura, identificação e definição de requisitos, definição de prioridades;
  • Implementação: codificação, envolve atividades como: modelagem de banco de dados, programação back-ende front-end, criação de cenários de testes e documentação dos requisitos);
  • Review: ao final de cada ciclo para validar e verificar os requisitos com o Product Owner e reunião com o cliente.
  • Retrospectiva: também ao final de cada ciclo, momento em que o time reflete sobre como foi o desenvolvimento e pontos de melhoria. Além de realizar a padronização e o armazenamento dos requisitos.
  • Entrega: realizada de acordo com o que foi definido nos documentos de DOR e DOD.
Disciplina Atividade Processo Método Ferramenta Responsável Entrega
Requisitos Definição de user story Planning User story Trello Laura Lista de atividades
Analise/Design Definir a arquitetura* Implementação MVC Figma, Miro Giulia, Guilherme Processo de elaboração
Analise/Design Prototipação de Baixa Fidelidade* Implementação Metáforas e Modelos Conceituais Figma, Miro Giulia, Guilherme Protótipo de página
Construção Modelagem do Banco de Dados Implementação Modelo Relacional DrawIo Bruna, Samuel Diagrama UML
Construção Implementação da regra de negócio Implementação Programação back-end NestJs Bruna, Samuel Funcionalidades server-side
Construção Interface gráfica do usuário Implementação Programação front-end NextJs Giulia, Guilherme Interface do usuário
Teste Criar cenários de teste para validar os critérios de aceitação e corrigir possíveis falhas Implementação Testes unitários Jest Bruna, Samuel Validar se os requisitos foram implementados corretamente
Obs.: Atividades com (*) serão realizadas apenas uma vez, ou seja, não se repetirão por mais de um ciclo.

3.3 Arquitetura do projeto

3.3.1 MVC

Com base nas caracteristicas dos frameworks utilizados e especificação da aplicação, a arquitetura MVC (Model, View, Controller) será usada para o projeto. MVC é um padrão de arquitetura que divide logicamente o programa em 3 partes:

- Model: Responsável pelo mapeamento do banco de dados e aplicar regras de negócio
- View: Camada de apresentação das paginas aos usuários.
- Controller: Responsável por interligar Model e View, por meio de requisições e respostas.

3.3.2 Funcionamento

Todas as resquisições feitas pelo usuário são processadas pelo controller, manipuladas pelo model e são vistas pela view. metricas

3.3.3 Diagrama de Classes

diagrama-classes

3.4 Estratégia de Testes

Tipo de Teste:

  • Funcional: Avalia se a aplicação faz, de fato, o que ela é pensada para executar

Nível de Teste:

  • Aceitação: Simula a experiência do usuário

Técnica de Teste:

  • Manual: Não envolva ferramenta de automação
  • Caixa Branca: Teste de condição

Equipe de desenvolvimento:

  • Caixa branca
  • Funcional

Cliente:

  • Funcional
  • Aceitação
  • Manual

Professor:

  • Funcional
  • Aceitação
  • Manual

PROCESSO DE ENGENHARIA DE REQUISITOS

Abordagem escolhida foi a abordagem agil, tendo em vista a necessidade do cliente e do time. As etapas da metodologia ágil em que as atividades são feitas estão descritas aqui

4.1 Elicitação de Requisitos

Atividade Método Ferramenta Responsável Entrega
Identificação de requisitos Reunião Google Meets integrantes de Requisitos lista de requisitos

4.2 Análise de Requisitos

Atividade Método Ferramenta Responsável Entrega
Definição de requisitos Brainstorming Discord ou google meets integrantes de Requisitos lista preliminar de requisitos
Definição de prioridades Brainstorming google meets integrantes de Requisitos lista preliminar de prioridade de requisitos

4.3 Documentação de Requisitos

Atividade Método Ferramenta Responsável Entrega
Documentação de requisitos BackLog do Produto(SAFe) Github e MIRO integrantes de Requisitos lista de requisitos

4.4 Verificação e Validação de Requisitos

Atividade Método Ferramenta Responsável Entrega
Correção Correção de requisitos WhatsApp Nicolas Requisitos corrigidos
Verificação Revisão de requisitos WhatsApp Laura Requisitos revisados
Validação Inspeção de requisitos WhatsApp Laura Requisitos validados

4.5 Gerenciamento de Requisitos

Atividade Método Ferramenta Responsável Entrega
Padronização Padronizar nome e identificação Github integrantes de Requisitos nome e identificação padronizados
Armazenamento Registrar no github-pages Github integrantes de Requisitos requisitos atualizados no Gitpages

LIÇÕES APRENDIDAS

5.1 Unidade 1

5.1.1 MDS

  • Disciplinas da Engenharia de Software
  • Metodologias de Desenvolvimento de Software. Em especial, Ágil.
  • Ciclo de vida
  • Rituais do Scrum
  • Práticas do XP

5.1.2 Requisitos

  • Ter comunicação mais clara com os membros
  • Ter uma comunicação mais ativa com o cliente
  • Não gravar os vídeos em cima da hora

5.1.3 MDS-Requisitos

  • Buscar uma comunicação mais ativa entre os grupos
  • Alinhar espectativas
  • Centralizar forma de comunicação entre os times
  • Buscar sanar dúvidas de forma mais rápida

5.2 Unidade 2

5.2.1 MDS

  • Boa divisão tarefas e atividades para uma apresentação em conjunto
  • Conhecimento de díversos frameworks linguagens de programação apresentados
  • Conhecimento prático de testes unitários com Jest

5.2.2 Requisitos

  • Buscar de forma mais ativa a resolução de tarefas

5.2.3 MDS-Requisitos

  • Resolução de desencontros de tempo e horário
  • Distribuição de responsabilidades

### 5.3 Unidade 3 ### 5.3.1 MDS

  • Conhecimentos sobre boas práticas de programação
  • Arquitetura de MVC
  • Construção de protótipo de baixa fidelidade
  • Boas práticas de trabalho em grupo: Soft Skills

### 5.3.2 Requisitos - Melhor entendimento sobre PBB e BDD - Mlehor comunicação com o cliente - A importância da comunicação - A importância de ter um código bem documentado ### 5.3.3 MDS-Requisitos - Resolução de conflitos de equipe - Separação de front e back-end não funciona - MDS precisam de ajuda intensa de Requisitos - Melhor entendimento sobre responsabilidades da equipe - Resolução de conflitos de equipe


### 5.4 Unidade 4 ### 5.4.1 MDS

  • Estratégias para resolução de Testes ### 5.4.2 Requisitos
  • Fazer acordos, não só entre as esquipes, desde o começo de projetos
  • Fazer questão que todos estão na mesma página
  • Outras formas de estruturar os requisitos
  • A importância das HardSkills para um desenvolver

### 5.4.3 MDS-Requisitos

  • Resolução de conflitos de equipe

REFERÊNCIAS BIBLIOGRÁFICAS

PRESSMAN, R S. Engenharia de Software. 6.ed. São Paulo: Mc Graw Hill Internacional, 2006