Skip to content

Latest commit

 

History

History
128 lines (70 loc) · 9.52 KB

03-Metodologia.md

File metadata and controls

128 lines (70 loc) · 9.52 KB

Metodologia

A abordagem adotada neste projeto é fundamentada no SCRUM, uma metodologia ágil que visa aprimorar a especificação e a execução de projetos. Essa metodologia permite uma melhor organização das equipes, fragmentando tarefas e buscando maior eficiência no desenvolvimento.

O SCRUM baseia-se na entrega incremental do produto, em períodos curtos e regulares conhecidos como sprints. Com isso, promovemos a colaboração de todos, incentivando a contribuição de ideias e habilidades. Essa abordagem facilita a resolução do problema central, otimizando cada fase do desenvolvimento e execução.

Controle de Versão

A ferramenta de controle de versão adotada no projeto foi o Git, sendo que o Github foi utilizado para hospedagem do repositório.

O projeto segue a seguinte convenção para o nome de branches:

  • main: versão estável já testada do software
  • unstable: versão já testada do software, porém instável
  • testing: versão em testes do software
  • dev: versão de desenvolvimento do software

Quanto à gerência de issues, o projeto adota a seguinte convenção para etiquetas:

  • documentation: melhorias ou acréscimos à documentação
  • bug: uma funcionalidade encontra-se com problemas
  • enhancement: uma funcionalidade precisa ser melhorada
  • feature: uma nova funcionalidade precisa ser introduzida

Gerenciamento de Projeto

A metodologia ágil escolhida para o desenvolvimento deste projeto foi o SCRUM. Nós optamos por este método devido à sua flexibilidade, que nos permite adaptar rapidamente às mudanças nos requisitos, uma situação comum em projetos. O SCRUM se baseia em princípios iterativos e incrementais, permitindo entregas contínuas e a adaptação ao longo do processo (SCHWABER; SUTHERLAND, 2017). Além disso, ele favorece a realização de ciclos curtos de trabalho, possibilitando entregas frequentes de funcionalidades.

Divisão de Papéis

A divisão de papéis dentro de nossa equipe, que utilizará o método ágil SCRUM como base para definir os processos de desenvolvimento, é fundamental para garantir a eficiência e a clareza nas responsabilidades. Por isso, a equipe está organizada da seguinte forma:

Scrum Master: Ariane Moura.

Product Owner: Raphael Rodrigues.

Equipe de Desenvolvimento: Ariane Moura, Alexsander, Leticia, Raphael, Vinicius, Breno Marques, Marytom.

Equipe de Design: Ariane Moura, Raphael Rodrigues.

Essa estrutura assegura que cada membro tenha um papel claro, promovendo assim a colaboração e alinhamento com os objetivos do projeto. O Scrum Master será responsável por facilitar o processo e remover obstáculos, enquanto o Product Owner definirá as prioridades do backlog e irá assegurar que as entregas atendam às expectativas dos stakeholders (Clientes). As equipes de desenvolvimento e design trabalharão em conjunto para implementar as funcionalidades e criar soluções visuais que atendam às necessidades do projeto.

Processo

Para a implementação do SCRUM, seguimos uma série de práticas que garantem a eficiência e a organização do nosso trabalho:

  • Cerimônias do SCRUM:

Sprint Planning: No início de cada Sprint, a equipe realiza uma reunião para selecionar itens do Backlog do Produto e planejar as atividades para a Sprint.

Daily Standup: Reuniões diárias de curta duração, onde os membros da equipe compartilham o progresso, os obstáculos e as próximas tarefas.

Sprint Review: Ao final de cada Sprint, a equipe apresenta o trabalho concluído ao Product Owner e outros stakeholders, obtendo feedback para a próxima iteração.

Sprint Retrospective: Uma reunião após a Sprint Review, onde a equipe reflete sobre o processo e identifica maneiras de melhorar a eficiência e a qualidade.


Para organização e distribuição das tarefas do projeto, a equipe está utilizando o GitHub Project, por meio do Quadro Kanban, organizado da seguinte forma:

Product Backlog: Recebe as tarefas a serem trabalhadas e representa o Backlog do produto. Todas as atividades identificadas no decorrer do projeto são incorporadas a esta lista.

To Do: Esta lista representa o Sprint Backlog que está sendo trabalhado.

In progress: Lista das tarefas iniciadas.

Done: Nesta lista são colocadas as tarefas finalizadas e as que passaram pelos testes e controle de qualidade, prontas para serem entregues aos usuários.


Etapa 1 e 2:

image


1.1 Planejamento: Nesta etapa inicial, foi discutido e definido o problema central a ser abordado: a otimização da gestão e operação de usinas de energia, com foco em eficiência energética e sustentabilidade. Foram estabelecidos os objetivos do projeto,. Além disso, foram propostos os Requisitos Funcionais e Não-Funcionais necessários, e as restrições técnicas e regulatórias que a solução deverá observar.

Como parte do planejamento, foi desenvolvida uma apresentação com a abordagem geral do projeto e um vídeo que sintetiza os principais pontos e propósitos da solução proposta. Após a formação da equipe, foram estabelecidos canais de comunicação e planejamento de reuniões semanais por meio das plataformas Microsoft Teams, além de um grupo no WhatsApp para discussões rápidas e troca de ideias.

Por fim, foi elaborada e entregue a documentação referente a esta fase inicial, contendo as seções de Documentação do Contexto e a Especificação do Projeto, que detalha os principais aspectos técnicos e operacionais.

1.2 Execução: Durante a fase de execução, foram realizados encontros semanais com o orientador para direcionamento e orientação quanto à documentação, o uso do GitHub. O orientador também sugeriu melhorias e correções, que foram implementadas no decorrer dos encontros.

As reuniões da equipe ocorreram de uma a duas vezes por semana no Teams, devido à natureza crítica das definições desta etapa. Cada encontro resultou na distribuição de tarefas entre os membros, visando o avanço e refinamento das documentações e diagramas técnicos.

1.3 Evidências: Para garantir o registro de todas as definições e decisões, foram realizados encontros e reuniões da equipe, documentados em atas, que cobriram discussões sobre objetivos, perfis de usuário, requisitos, restrições, e outros pontos essenciais para o desenvolvimento do projeto. Essas atas serviram como base para a divisão de tarefas e organização do trabalho em equipe.

Além das atas, foram produzidos materiais documentais, a logo do projeto, e a apresentação oficial da Etapa 1, que incluiu os principais pontos discutidos e definidos até o momento.


Etapa 3:

Screenshot_1


Ferramentas

GitHub: É utilizado como plataforma de hospedagem de repositórios de código-fonte. O GitHub permite que a equipe mantenha todos os arquivos do projeto organizados. Através dele, os membros realizam commits regulares e criam branches para desenvolver novas funcionalidades ou corrigir bugs. Além disso, o GitHub é utilizado para gerenciar um quadro Kanban, facilitando a organização e o acompanhamento das tarefas do projeto.

Microsoft Teams: Foi adotado por nós como principal ferramenta de comunicação e colaboração, o Microsoft Teams facilita a realização de reuniões virtuais e o compartilhamento de arquivos e documentos importantes. Além disso, mantém uma comunicação eficaz entre todos os membros do grupo.

WhatsApp: Mesmo não sendo a ferramenta principal, o WhatsApp nos serve como um canal complementar para comunicação rápida e informal. É utilizado para comunicações urgentes, atualizações imediatas e para manter a equipe conectada, mesmo fora dos dias de reunião no teams.

Figma: O Figma é a ferramenta escolhida para o design de interfaces e prototipagem de telas. Com ele, os designers podem criar Wireframes e fluxogramas, permitindo uma colaboração eficiente e uma melhor compreensão das necessidades do projeto.

Ambiente de Trabalho: Cada membro da equipe utiliza seu próprio ambiente de trabalho, geralmente composto por computadores pessoais ou notebooks com sistemas operacionais compatíveis com as ferramentas de desenvolvimento adotadas.

Gestão Ágil: A equipe adota uma abordagem ágil para o gerenciamento de projetos, utilizando o SCRUM. Metodologia que orienta a divisão do trabalho em sprints, realização de reuniões regulares e a manutenção de um backlog priorizando tarefas, garantindo eficiência e adaptação contínua às necessidades do projeto.

Visual Studio Code (VS Code): O VS Code é utilizado como ambiente de desenvolvimento pela equipe. Ele oferece recursos avançados de edição de código, integração com o GitHub e da suporte a diversas linguagens de programação, facilitando o desenvolvimento e a colaboração entre os membros da equipe.

Diagrams: Ferramenta utilizada para criar diagramas e visualizar fluxos de trabalho, facilitando a compreensão e comunicação de processos e arquitetura do sistema.

Estratégia de Organização de Codificação

Todos os artefatos relacionados a implementação e visualização dos conteúdos do projeto da aplicação foram inseridos no Código Fonte.