Lições aprendidas¶
Histórico de Revisão
Data | Versão | Descrição | Autor |
---|---|---|---|
08/11 | 1.0 | Criação do tópico de lições aprendidas | Maykon Júnio dos Santos Soares |
15/12 | 1.1 | Adição de lições aprendidas da unidade 2 | Henrique Martins Alencar |
Unidade 1¶
Introdução ao Desenvolvimento de Projetos¶
Na sala de aula, começamos nossa jornada de aprendizado com o desenvolvimento de habilidades práticas voltadas para projetos. Este foi apenas o início, mas crucial para entendermos as metodologias que guiarão nosso trabalho.
Metodologias de Desenvolvimento¶
Exploramos as principais metodologias de desenvolvimento de software, compreendendo suas diferenças e como escolher entre elas com base no triângulo de ferro:
- Metodologias orientadas a plano: Estruturadas e detalhadas, com foco no planejamento rigoroso.
- Metodologias ágeis: Flexíveis e adaptáveis, favorecendo a colaboração e a entrega contínua de valor.
Dessa forma, conseguimos avaliar as vantagens e limitações de cada abordagem e definir qual delas é mais apropriada para diferentes tipos de projeto.
Ferramentas Ágeis no Mercado¶
Nos aprofundamos em duas das metodologias ágeis mais populares e suas práticas específicas:
- Scrum: Uma abordagem iterativa que organiza o trabalho em ciclos curtos, chamados de "sprints", para melhorar a produtividade e a entrega.
- eXtreme Programming (XP): Focado em garantir a qualidade do código através de práticas como testes automatizados e programação em par.
Essas ferramentas, ricas em processos e práticas, fornecem uma base sólida para o desenvolvimento de software de alto padrão.
Novas Ferramentas e Tecnologias¶
Além das metodologias, a equipe teve a oportunidade de explorar novas ferramentas que facilitarão o desenvolvimento do projeto:
- GitHub Pages: Plataforma gratuita de hospedagem que a equipe utilizará para documentar o projeto de forma clara e acessível, garantindo que todos os membros estejam alinhados quanto aos processos e etapas.
Unidade 2¶
Processo de Engenharia de Requisitos¶
Aprendemos a importância de compreender profundamente as necessidades dos stakeholders e transformá-las em requisitos claros e definidos, pois nos ajudam a organizar e priorizar as etapas do desenvolvimento, trazendo um trabalho eficaz. A comunicação efetiva entre os principais interessados e a equipe de desenvolvimento é crucial para minimizar a ambiguidade e o retrabalho.
Requisitos Funcionais e não funcionais¶
Compreendemos que os requisitos funcionais definem o que o sistema deve fazer, enquanto os não funcionais especificam como o sistema deve funcionar. Aprendemos que ignorar requisitos não funcionais, como desempenho, segurança e usabilidade, pode comprometer a qualidade final do produto. Um desafio foi compreender quais são cada um desses requisitos de forma alinhada com os objetivos do projeto.
Elaboração de Backlog¶
Durante a elaboração do backlog, aprendemos que a clareza das tarefas são cruciais para o sucesso da equipe. Organizar os requisitos separando-os por temas e épicos e atribuindo histórias de usuário nos ajudou a compreender melhor o que exatamente desenvolver para o cumprimento dos requisitos, com o objetivo de entregar um produto de maior qualidade.
Priorização do Backlog¶
A priorização do backlog nos ensinou a equilibrar as necessidades do negócio com as restrições técnicas e de tempo. A utilização de critérios de prioridade com pesos atribuídos, como valor de negócio, complexidade, criticidade e independência, nos ajudou a definir que requisitos tinham maior importância em nosso projeto, o que nos permite ter uma melhor organização, possibilitando entregas que estejam mais alinhadas com os objetivos do projeto.
Definição de MVP¶
A definição do MVP (Minimum Viable Product) foi um exercício valioso para aprender a entregar valor rápido com recursos limitados. A definição do que é essencial nos permite focar nas funcionalidades mais críticas e de maior valor para o produto, garantindo que as necessidades principais sejam entregues dentro do prazo determinado.