Ir para o conteúdo

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.