10. Lições Aprendidas
10.1 Unidade 1
1. Dificuldade na definição de horários para reuniões das sprints
- Problema: A equipe enfrentou dificuldades para conciliar os horários dos integrantes.
- Solução: Implementamos um heatmap (mapa de calor) para visualizar a disponibilidade de cada membro, permitindo encontrar o melhor horário comum para todos.
2. Falta de conhecimento prévio em desenvolvimento mobile
- Problema: No início da unidade, grande parte da equipe não possuía familiaridade com desenvolvimento mobile.
- Solução: Dedicamos as primeiras semanas aos estudos das tecnologias e ferramentas específicas para mobile.
3. Escolha da abordagem, ciclo de vida e processo de desenvolvimento
- Aprendizado: Durante a Unidade 1, entendemos a importância de escolher a abordagem, ciclo de vida e processo de desenvolvimento mais adequado dependendo das características do software a ser desenvolvido, pois cada sistema possui particularidades e necessidades específicas.
4. Entendimento dos requisitos do cliente
- Aprendizado: Percebemos que é necessário realizar uma boa análise dos requisitos do cliente no início do projeto para evitar retrabalho, mal-entendidos e mudanças de escopo inesperadas.
10.2 Unidade 2
Durante a Unidade 2, a equipe enfrentou alguns desafios que impactaram o andamento das atividades e a colaboração entre os membros:
Divisão dos Requisitos
Houve dificuldade em distribuir de forma equilibrada as tarefas relacionadas à documentação e detalhamento dos requisitos, o que gerou sobrecarga para alguns integrantes.
Ação a ser tomada: Definir, desde o início da unidade, a responsabilidade de cada membro com clareza, garantindo que todos participem de forma justa e eficiente.
Gestão do Tempo para Entregas
O cumprimento dos prazos seguiu como um ponto crítico, principalmente devido à carga de outras disciplinas e à falta de planejamento conjunto mais detalhado.
Ação a ser tomada: Criar um cronograma coletivo com prazos mais realistas e revisar semanalmente o andamento das tarefas, garantindo que todos estejam alinhados com as metas do grupo.
Marcação de Reuniões em Grupo
A dificuldade em encontrar horários compatíveis entre os membros comprometeu alguns alinhamentos e atrasou decisões importantes.
Ação a ser tomada: Estabelecer um dia e horário fixos para reuniões semanais, além de reforçar o uso de meios alternativos de comunicação para manter todos atualizados.
Aprendizados Técnicos
Durante a unidade, a equipe também aprendeu e aplicou técnicas fundamentais de Engenharia de Software para a elicitação e descoberta de requisitos, análise e alcançar consenso entre os stakeholders. Essas práticas contribuíram para melhorar a clareza dos objetivos do projeto e facilitaram a identificação das reais necessidades dos usuários.
10.3 Unidade 3
Na Unidade 3, a equipe aprofundou seus conhecimentos em técnicas de organização e planejamento de projetos, consolidando competências fundamentais para o desenvolvimento eficiente de produtos de software. Além da aplicação do método Product Backlog Building (PBB) para estruturar o backlog do produto, também foi possível compreender como priorizar os itens utilizando ferramentas como o COORG, garantindo que os PBIs (Product Backlog Items) fossem ordenados conforme a sequência mais adequada às demandas do projeto.
Compreendemos ainda a importância de detalhar cada item do backlog em histórias de usuário, que funcionam como descrições objetivas do valor entregue ao cliente. Esses itens foram complementados com critérios de aceitação, essenciais para definir quando um PBI pode ser considerado finalizado, e com a criação de BDDs (Behavior-Driven Development), promovendo uma abordagem colaborativa entre os times de desenvolvimento e de negócios.
Um destaque importante foi o aprendizado e a aplicação da técnica de User Story Mapping, que proporcionou uma visualização clara e estruturada do fluxo do produto. Essa abordagem permitiu compreender de forma linear e coesa as etapas envolvidas no desenvolvimento, facilitando a identificação dos pontos mais críticos e assegurando que o valor entregue ao cliente final fosse priorizado.
10.4 Unidade 4
Durante o desenvolvimento do projeto, percebemos o quanto os casos de uso são fundamentais para compreender o comportamento esperado do sistema em diversas situações. No começo, tivemos certa dificuldade para distinguir os atores primários dos secundários, mas, à medida que analisamos exemplos em grupo, fomos entendendo melhor como cada tipo de ator interage com o sistema e qual seu papel nos processos.
Também aprendemos que é essencial identificar com precisão os fluxos principais e alternativos. Isso nos permitiu mapear melhor os diferentes caminhos que uma funcionalidade pode seguir, garantindo que nenhuma necessidade do usuário fosse deixada de lado.
Outro ponto importante foi a forma de descrever os casos de uso. Inicialmente, nossas descrições eram genéricas demais, o que dificultava a compreensão dos detalhes. Com o tempo, passamos a adotar uma estrutura mais clara e padronizada, incluindo itens como pré-condições, pós-condições e passos bem definidos. Essa mudança melhorou significativamente tanto o entendimento do funcionamento do sistema quanto a comunicação com o restante da equipe.
Histórico de Versão
| Data | Versão | Descrição | Autor(es) | Revisor(es) |
|---|---|---|---|---|
| 20/04/2025 | 1.0 | Lições Aprendidas Unidade I | Thiago Tonin | Lucas Guimarães |
| 25/05/2025 | 1.1 | Lições Aprendidas Unidade II | Davi de Aguiar | Thiago Tonin |
| 23/06/2025 | 1.2 | Lições Aprendidas Unidade III | Willian Silva | João Pedro Ferreira |
| 14/07/2025 | 1.3 | Lições Aprendidas Unidade IV | Lucas Guimarães | Davi de Aguiar |