Skip to content

Lições aprendidas

Histórico de Revisão

Data       Versão Descrição             Autor(es)                                                  
18/04/2023 0.1 Criação e estruturação do documentação Hemanoel,Gustavo,Isaac
19/04/2023 0.2 Criação, estruturação e preenchimento do documento Isaac
18/05/2023 0.3 Lições aprendidas da Unidade 2 Gustavo
13/06/2023 0.4 Lições aprendidas da Unidade 3 Hemanoel,Gustavo,Isaac
17/07/2023 0.5 Lições aprendidas da Unidade 4 Daniela

4.1 Unidade 1

Na primeira unidade, adquirimos conhecimentos sobre os requisitos para o desenvolvimento de software, incluindo ciclos e processos para garantir a qualidade do software desenvolvido. Aprendemos também sobre os fundamentos de Scrum e Extreme Programming (XP), duas metodologias ágeis utilizadas na gestão de projetos de desenvolvimento de software. Scrum é um framework que nos permite gerenciar projetos de forma ágil, dividindo o trabalho em sprints, definindo papéis e responsabilidades claras para a equipe e promovendo a colaboração e a transparência. Ele enfatiza a flexibilidade e a capacidade de adaptação às mudanças ao longo do desenvolvimento. XP, por outro lado, além de ser uma metodologia ágil, focando na qualidade do código e na comunicação efetiva dentro da equipe. Ele promove práticas como programação em par, testes automatizados, integração contínua e design simples, visando melhorar a qualidade do software e aumentar a produtividade da equipe.

4.2 Unidade 2

Na segunda unidade, adquirimos conhecimentos sobre a estrutura e definição do Backlog, que é composto por User Stories ordenadas pela prioridade. O que mais nos deu trabalho da definição do nosso Backlog foi a decomposição dos temas em stories. Foi ao iniciar a ornamentação da interface que conseguimos identificar mais stories e dividi-las no nosso Backlog e MVPs. Também aprendemos sobre as definições de pronto e preparado que são "checklists" para definir se uma história está pronta para entrar e sair da sprint. Um ponto que causou conflito foi a escolha de arquitetura, onde inicialmente haviamos escolhido "monolítica", mas percebemos que ao contexto do nosso projeto "em camadas" faria mais sentido. Definimos os padrões UI do projeto, onde foram definidas as telas, paletas de cores, tipografia e ícones e por fim o protótipo do nosso Workflow de Integração Contínua.

4.3 Unidade 3

Durante a Unidade 3, embarcamos na implementação do sistema proposto desde o início da disciplina, aplicando os princípios ágeis, para desenvolver nosso Produto Mais Valioso (MVP) com Node.js, React e MongoDB. Nesse processo, nos deparamos com alguns desafios tecnológicos, e entre a equipe. Apesar dos obstáculos e dos resultados abaixo do esperado, essas experiências nos forneceram lições para aprimorar nosso trabalho em equipe. Através dos desafios encontrados aprimoramos nossa habilidade de resolver problemas tecnológicos e ganhamos uma compreensão mais profunda da importância da integração entre as diferentes partes do sistema.Essa etapa também nos incentivou a explorar novas abordagens e estratégias para garantir a qualidade e a eficiência do nosso código. A interação entre o front-end e o back-end se mostrou um ponto crucial, e nosso foco na colaboração e no compartilhamento de conhecimento se intensificou.

4.4 Unidade 4

Nesta Unidade 4, nos aprofundamos nos métodos, estratégias e objetivos dos testes de software. Aprendemos a implementar os testes unitários em node.js com jest e a utilizar o GitHub Actions para permitir ou bloquear as tentativas de merge na branch main. Nesse processo, a adequação de um bom workflow foi um dos maiores obstáculos encontrados. Com o encaminhamento do projeto, percebemos na prática como é importante ter bastante atenção e cuidado ao estruturar o backlog do produto. Ter todos os requisitos bem definidos, ter histórias bem elaboradas e ter critérios de aceitação bem detalhados são peças fundamentais para que na fase final da criação de um produto de software, os desenvolvedores não se dispersem e consigam entregar ao cliente um produto que esteja de acordo com as suas reais necessidades. Com isso, ao findar desta Unidade 4, buscamos ao máximo alinhar os objetivos da equipe e do cliente, refinar partes inconsistentes do backlog, corrigir bugs, aplicar validações e testar bastante todas as funcionalidades do produto.