Visão do Produto e Projeto

Histórico de revisão


Data Versão Descrição Autor
31/10/22 0.1 Primeiro preenchimento do documento Beatriz
08/11/22 0.2 Ajustes iniciais sugeridos Beatriz
15/11/22 0.3 Definição do processo de desenvolvimento Pedro, Guilherme, Mário, Beatriz, Israel
29/12/22 0.4 Correção issues #1, #2 e #3 Beatriz
29/12/22 0.5 Correção issues #3, #4 e #5 Pedro
30/12/22 0.6 Correção issue #6 Beatriz
31/01/23 0.7 Correção das numerações das features no item 2.2 Beatriz
09/02/23 0.8 Inclusão item 4.4 Beatriz


1 Visão Geral do Produto

O Strix é um produto voltado aos profissionais de educação física que trabalham como Personal Trainers, principalmente os autônomos, mas também pode ser usado pelos que trabalham em alguma academia. É um sistema para a gestão geral do profissional nas suas atividades, possuindo funcionalidades como calendário para marcação de aulas, cadastro de alunos, controle de pagamentos recebidos, envio de planejamento de treino para os alunos entre outros.

O diferencial comparado a outros produtos disponíveis é a gratuidade independente da quantidade de alunos registrados e a oportunidade de fazer uma gestão completa do negócio em uma única ferramenta (da gestão financeira, de agenda, de alunos e de treinos). Se o cliente procura uma ferramenta para se organizar sem custo algum, de fácil utilização e com tudo que precisa em um lugar só, esse é o sistema ideal pra ele!

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

Para Personal Trainers
Quem Trabalha com vários clientes diferentes e precisa gerenciar seu negócio
O Strix É um Sistema web de gestão
Que Permite o preenchimento da agenda de aulas do personal, o cadastro dos alunos com seus dados, o controle de pagamentos recebidos, o cadastro de exercícios, a seleção dos mesmos e o envio automatizado dos treinos
Ao contrário Do Mobitrainer
Nosso produto É totalmente gratuito, não importa quantos alunos o profissional tenha e possibilita uma gestão completa do negócio

1.2 Objetivos do Produto

O STRIX é um sistema que visa auxiliar o personal trainer a gerir o seu negócio. No mercado hoje existem ferramentas que permitem realizar essa gestão, porém de forma limitada (em relação à quantidade de alunos) e custeada. Nesse cenário, o STRIX chega para oferecer um serviço sem limitações e com zero custo ao personal.

1.3 Tecnologias a Serem Utilizadas

Javascript, React, Node.js


2 Visão Geral do Produto

2.1 Organização do Projeto

Papel Atribuições Responsável Participantes
Tech lead Codificar o produto, codificar testes unitários, realizar refatoração Mário Guilherme, Beatriz, Pedro, Israel
Product Owner Atualizar o escopo do produto, organizar o escopo das sprints, validar as entregas Beatriz Guilherme
Scrum Master Garantir que o Time Scrum se oriente pelos valores e práticas do Scrum, certifica-se de que os membros não se comprometam com compromissos além dos que eles conseguem cumprir dentro de uma Sprint. Guilherme Mário, Beatriz, Israel, Pedro
Analista de Qualidade Garantir a qualidade das entregas e o cumprimento dos conceitos propostos. Pedro Mário, Beatriz, Israel

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

Sprint Produto (entrega) Data Início Data Fim
Sprint 1 Definição do Produto 31/10/2022 18/11/2022
Sprint 2 Definição do Backlog do produto e elicitação de requisitos 19/11/2022 03/12/2022
Sprint 3 Criação do protótipo, configuração do ambiente de desenvolvimento e estudo das linguagens 04/12/2022 19/12/2022
Sprint 4 Implementação das histórias pertencentes à feature 2.1.0 de alunos 20/12/2022 03/01/2023
Sprint 5 Implementação das histórias pertencentes à feature 3.1.0 de categorias e 3.2.0 de resgistro de exercícios e 3.3.0 de registro de treino 04/01/2023 18/01/2023
Sprint 6 Implementação das histórias pertencentes à feature 1.1.0 de cadastro de aulas, 2.2.0 de registro de pendências 19/01/2023 02/02/2023
Sprint 7 Implementação das histórias pertencentes à feature 4.1.0 de login 03/02/2023 09/02/2023

2.3 Matriz de Comunicação

Descrição Área/Envolvidos Periodicidade Produtos Gerados
Comunicação sobre a situação das atividades executadas no dia Equipe do Projeto Diária Resumo da reunião
Acompanhamento das atividades em desenvolvimento Equipe do Projeto Quinzenal Resumo da reunião, validação do atendimento aos requisitos
Análise dos riscos, planejamento de próximas atividades Equipe do Projeto Quinzenal Relatório de situação do projeto e resumo da reunião
Retrospectiva Equipe do Projeto Mensal Relatório sobre situação da equipe e dificuldades
Reunião com o cliente Equipe do Projeto, cliente Mensal Feedback do cliente, refinamento de requisitos

2.4 Gerenciamento de Riscos

Os riscos identificados são:

  • Falta de afinidade com a linguagem de programação escolhidada
  • Falta de organização com as entregas a serem feitas
  • Falhas na comunicação e alinhamento entre os integrantes
  • Falta de tempo para se dedicar ao projeto devido há outras demandas externas

As ações a serem tomadas para a mitigação dos mesmos são:

  • Escolher linguagens que facilitem a programação do grupo e estudá-las
  • Estar sempre atentos as datas de entregas e o que deve ser entregue em cada uma delas
  • Sempre informar ao grupo coisas importantes e compreender o que os membros estão informando
  • Organização pessoal e informar ao grupo qualquer impedimento

2.5 Critério de Replanejamento

O grupo deve se replanejar caso haja:

  • Atraso em alguma tarefa a ser realizada, devendo realocá-la no próximo ciclo
  • Incremento de tarefa a ser realizada, devendo alocá-la em algum dos ciclos
  • Desfalque do grupo, devendo ajustar os ciclos de acordo com a capacidade do time
  • Ajuste nas datas, devendo analisar o que deve ser entregue na nova data e rever os ciclos


3 Processo de Desenvolvimento de Software

Será adotado um ciclo de vida incremental para o processo de desenvolvimento, com ciclos curtos e iterativos, adotando também algumas propriedades do XP e do SCRUM, processos escolhidos pois o cliente tem disponibilidade, os requisitos ainda estão sendo descobrertos e moldados e as entregas possuem prazos já delimitados, indicando assim o XP, e será necessário que ocorra uma gestão de projeto correspondente com a do Scrum. O detalhamento das práticas de cada processo adotado serão explanadas nos itens 3.1 e 3.2. Utilizaremos de um Product Backlog e Sprint Backlog para o planejamento, com procedimentos do processo ágil como: Sprint planning, Spring Review, com Pair Programming e Planning Poker.

3.1 XP (Extreme Programming)

O XP é um método ágil de desenvolvimento de software criado no final da década de 90 que se baseia na criação de sistemas de alta qualidade com base em princípios e práticas tais como interação próxima do cliente, testagem constante do código, ciclos curtos de desenvolvimento, programação em pares e ritmo sustentável de desenvolvimento, por exemplo. No XP os requisitos são expressos na forma de histórias de usuários, que refletem as características que devem ser implementadas no sistema. Essas histórias serão divididas em uma série de tarefas que devem ser cumpridas em cada sprint.

Processo de desenvolvimento do XP (Pressman) Processo de desenvolvimento do XP (Pressman)

3.1.1 Práticas adotadas do XP

  • Pair Programming: Dois programadores trabalham juntos em uma máquina onde um codifica e o outro acompanha, fazendo críticas e dando sugestões. Os pares trocam de lugar periodicamente.

  • Ritmo Sustentável: Será adotado um ritmo de trabalho aceitável que não sobrecarrege a equipe de desenvolvimento, já que horas-extra de trabalho impactam na qualidade do código e na produtividade da equipe a longo prazo.

  • Projeto Simples: Adoção de um projeto simples capaz de passar nos testes, que não possua duplicidade de funções, que seja fácil de refatorar e de implementar novas funcionalidades.

  • Refatoração: Ocorrerá manutenções periódicas no código onde podem ser feitas melhorias sem alteração das funcionalidades do sistema (refatoração), melhorando a qualidade do código.

  • Testes: Serão implementados testes unitários, de integração e de aceitação.

  • Integração Contínua: Consiste em integrar o trabalho diversas vezes ao dia, assegurando que a base de código permaneça consistente ao final de cada integração.

3.2 Scrum

Segundo o Scrum Guide, o Scrum, criado no início dos anos 90, é "um framework leve que ajuda pessoas, times e organizações a gerar valor por meio de soluções adaptativas para problemas complexos." Ele sugere uma série de eventos a serem realizados que são "projetados especificamente para permitir a transparência necessária", segundo o Guide, e "cada evento [...] é uma oportunidade formal para inspecionar e adaptar os artefatos do Scrum".

3.2.1 Eventos adotados do Scrum

  • Sprint: Será adotada a sprint quinzenal com o planejamento descrito no ite. 2.2.

  • Sprint planning: Será feito o planejamento da sprint antes do início da mesma quinzenalmente.

  • Daily: Ocorrerá diariamente por meio da conversa entre os mesmos do grupo para informarem seus feitos, planejamentos e impedimentos

  • Sprint review: Ocorrerá a cada final de sprint para os integrantes mostrarem e revisarem o que foi trabalhado durante a sprint a ser finalizada.

  • Sprint retrospective: Ocorrerá quinzenalmente ao final de cada sprint para serem levantados os aspectos de melhorias da equipe, afim de melhorar a sua qualidade de desenvolvimento.

3.3 Atividades

3.3.1 Sprint Planning

Atividade Método Ferramenta Entrega
Elicitação de requisitos Brainstorming, Construção de User Story Meets, Trello e Whatsapp Levantamento das atividades a serem desenvolvidas e suas prioridades.
Validação e Verificação Brainstorming, reunião com cliente Meets e Whatsapp Alinhamento das atividades levantadas ao objetivo do produto/MVP

3.3.2 Sprint

Atividade Método Ferramenta Entrega
Construção/Refinamento de protótipo Prototipação Figma Desenvolvimento de protótipo com base nas atividades elicitadas no backlog.
Desenvolvimento de atividades Pair Programming VSCode, Webstorm IDE Incrementos no produto com base nas atividades elicitadas.
Testes e garantia de qualidade Testes unitários e Testes Manuais VSCode, Webstorm IDE codificação de testes unitários para assegurar a qualidade, e testes manuais para garantir funcionamento da interface.

3.3.3 Sprint Review

Atividade Método Ferramenta Entrega
Análise de progresso Apresentação Meets Identificação do progresso obtido durante a sprint e validação em relação aos requisitos.

3.3.4 Sprint Retrospective

Atividade Método Ferramenta Entrega
Avaliação da equipe Brainstorming Meets Reorganização da equipe com relação às dificuldades encontradas ao longo da sprint.


4 Lições aprendidas

4.1 Unidade 1

A equipe aprendeu que, diante da falha de comunicação, era necessário um maior comprometimento dos integrantes quanto a comunicação ativa no grupo do time, e que diante do que estaria por vir nas próximas sprints no que diz respeito ao desenvolvimento do sistema, também era necessário um aprofundamento em relação às metodologias a serem utilizadas e estudo das técnologias.

Esses aprendizados são relevantes, pois sem uma comunicação efetiva as coisas não fluem bem na equipe e isso gera problemas, e se o time estiver preparado tecnicamente o desenvolvimento vai correr melhor e os impedimentos quanto a isso serão mitigados.

4.2 Unidade 2

A equipe percebeu que com os aprendizados da unidade 1 ela pôde melhorar nas questões apontados. A comunicação ocorreu bem diante dos pontos levantadas no grupo do time, havendo participação ativa dos integrantes e rápida resolução dos problemas.

O benefício disso é que os integrantes realmente melhoraram suas condutas diante do feedback da unidade anterior permitindo que os ajustes necessários fossem feitos e a equipe crescesse internamente com a cooperação de todos.

4.3 Unidade 3

A equipe concluiu que teve um grande avanço desde a última unidade, principalmente no comprometimento dos integrantes do grupo com a entrega a ser feita e com a comunicação entre si. Todos trabalharam e se dedicaram ao projeto e estiveram ativos no grupo do time para se comunicar.

Essas mudanças são de grande ganho pra equipe, pois deixa o processo mais flúido e rápido, permitindo a atuação de todos os membros e a conclusão das tarefas a serem realizadas.

4.4 Unidade 4

A equipe concluiu que teve avanço nas questões de melhorias apontadas na retrospectiva da última unidade, melhorou a comunicação e a confiança entre os membros do grupo. Mas como o foco da agilidade é em melhoria contínua, também foram analisados pontos que podem melhorar, como a divisão individual de tempo.

Com o time mais integrado, o andamento das tarefas executada por ele também é melhorada, e isso foi peceptível. É importante que o time siga no caminho em que está, de melhorar constantemente.

5 Referências bibliográficas

PRESSMAN, ROGER S., Engenharia de Software- (6ª edição), São Paulo, Ed. McGrawHill, 2006.

L. Sommerville, Engenharia de Software, 9a ed., Pearson, 2011.