Skip to content

Metodologias do Projeto

1. Introdução

O desenvolvimento de software é um processo complexo que requer a aplicação de metodologias eficazes para garantir a entrega de produtos de alta qualidade, dentro do prazo e do orçamento estabelecidos. Neste documento, serão apresentadas algumas das metodologias mais utilizadas no desenvolvimento de software, incluindo Lean Inception, Scrum, XP (Extreme Programming) e Kanban. Cada uma dessas metodologias possui suas próprias características e abordagens, o que permite que a equipe de desenvolvimento possam ter uma melhor organização e rapidez para desenvolver.

2. Lean Inception

A Lean Inception é uma metodologia que se concentra em alinhar rapidamente a equipe de desenvolvimento e os stakeholders em relação aos objetivos do projeto. Ela envolve uma série de workshops colaborativos realizados no início do projeto, com o objetivo de definir o escopo, os requisitos e as prioridades. Alguns dos principais passos da Lean Inception incluem:

2.1. Visão do Produto

  • A "Visão do Produto" é uma declaração concisa que descreve o propósito e os objetivos do projeto de forma clara e inspiradora. Ela serve como um guia para toda a equipe, ajudando a manter o foco nas metas do projeto e na criação de valor para os usuários.

2.2. É, Não É; Faz, Não Faz

  • Esta técnica envolve a criação de listas claras de afirmações que definem o que o produto é e o que não é (É/Não É) e o que o produto faz e não faz (Faz/Não Faz). Isso ajuda a evitar mal-entendidos e a estabelecer limites claros para o projeto.

2.3. Objetivos do Negócio

  • Os "Objetivos do Negócio" são metas específicas relacionadas ao sucesso do projeto, muitas vezes expressas em termos quantitativos, como aumento de receita, redução de custos ou melhoria na satisfação do cliente. Eles ajudam a equipe a entender a importância do projeto para a organização.

2.4. Personas

  • As "Personas" são representações fictícias de grupos de usuários com características e necessidades semelhantes. Identificar as personas ajuda a equipe a compreender melhor para quem está desenvolvendo o software e a adaptar o produto às necessidades desses usuários.

2.5. Jornada de Usuário

  • A "Jornada de Usuário" descreve o caminho que um usuário típico percorre ao interagir com o produto ou serviço, desde a descoberta até o uso contínuo. Isso ajuda a equipe a identificar pontos de dor, oportunidades de melhoria e momentos críticos na experiência do usuário.

2.6. Brainstorming de Funcionalidades

  • O "Brainstorming de Funcionalidades" é uma sessão criativa em que a equipe gera ideias para funcionalidades e recursos que podem ser incluídos no produto. Isso estimula a criatividade e a inovação, permitindo que a equipe explore diferentes abordagens para atender aos objetivos do projeto.

2.7. Revisão Técnica, de Negócio e de UX

  • A revisão técnica envolve a análise da viabilidade técnica das funcionalidades propostas. A revisão de negócios avalia o alinhamento das funcionalidades com os objetivos do negócio, enquanto a revisão de UX (Experiência do Usuário) verifica a usabilidade e a acessibilidade do produto.

2.8. Sequenciador

  • O "Sequenciador" é uma ferramenta que ajuda a equipe a priorizar e ordenar as funcionalidades propostas com base em critérios como valor para o usuário e complexidade técnica. Isso ajuda a definir a ordem de implementação das funcionalidades ao longo do tempo.

2.9. Canvas MVP

  • O "Canvas MVP" é uma representação visual que destaca as funcionalidades essenciais do produto mínimo viável (MVP). Isso ajuda a equipe a concentrar-se nas funcionalidades mais críticas que serão desenvolvidas inicialmente para lançar o produto de forma rápida e eficaz.

A Lean Inception é uma abordagem abrangente que envolve todos esses aspectos para garantir que a equipe e os stakeholders tenham uma compreensão comum e alinhada do projeto desde o início, o que contribui para um desenvolvimento mais eficiente e bem-sucedido do software.

3. Scrum

O Scrum é uma metodologia ágil que organiza o desenvolvimento em iterações chamadas de sprints. As principais etapas do Scrum incluem:

3.1. Planejamento de Sprint

No Planejamento de Sprint, a equipe de desenvolvimento e o Product Owner trabalham juntos para definir as metas da sprint e selecionar as histórias de usuário ou itens do Backlog do Produto a serem implementados durante a sprint. Essa etapa envolve:

  • Seleção de Itens do Backlog: O Product Owner seleciona as histórias de usuário ou tarefas do Backlog do Produto com base nas prioridades e na capacidade da equipe.
  • Estimativas: A equipe de desenvolvimento fornece estimativas de esforço para as tarefas selecionadas.
  • Definição das Metas da Sprint: A equipe estabelece as metas claras que deseja atingir durante a sprint.

3.2. Daily Scrum

O Daily Scrum, também conhecido como reunião diária de stand-up, é uma reunião curta e diária em que a equipe de desenvolvimento se reúne para discutir o progresso e as atividades do dia. Essa reunião é crucial para manter a comunicação contínua e identificar quaisquer impedimentos. Para a elaboração de nosso porjeto optamos por manter a daily diaria por um Bot no Discord que apresenta progresso do projeto automaticamente.

3.3. Desenvolvimento

Na etapa de Desenvolvimento, a equipe trabalha nas tarefas e funcionalidades definidas para a sprint. Esta é a parte do ciclo em que o código é escrito, testado e implementado. A equipe realiza revisões regulares do código e mantém a colaboração próxima para garantir que o trabalho esteja progredindo de acordo com o plano da sprint.

3.4. Revisão de Sprint

Ao final da sprint, ocorre a Revisão de Sprint, que é uma reunião em que a equipe demonstra o trabalho concluído ao Product Owner e aos stakeholders. Durante essa reunião:

  • Demonstração do Produto: A equipe mostra as funcionalidades desenvolvidas durante a sprint.
  • Feedback: O Product Owner e os stakeholders fornecem feedback sobre o que foi entregue.
  • Revisão do Backlog: Com base no feedback e nas mudanças necessárias, o Backlog de Produto pode ser atualizado para refletir as novas prioridades e requisitos.

3.5. Retrospectiva de Sprint

A Retrospectiva de Sprint é uma reunião realizada pela equipe de desenvolvimento após a Revisão de Sprint. Nesta reunião:

  • Avaliação do Processo: A equipe reflete sobre o que funcionou bem e o que pode ser melhorado no processo de desenvolvimento.
  • Ações de Melhoria: São identificadas ações para melhorar a eficiência e a eficácia da equipe na próxima sprint.
  • Compromissos para a Próxima Sprint: A equipe define compromissos para a próxima sprint, com base nas lições aprendidas na retrospectiva.

O ciclo de Scrum é repetido em sprints subsequentes, com a equipe ajustando e melhorando continuamente o processo para entregar valor de maneira mais eficaz aos usuários e clientes.

4. XP (Extreme Programming)

O Extreme Programming (XP) é uma abordagem ágil que enfatiza a qualidade do código e a colaboração próxima entre desenvolvedores e stakeholders. Principais práticas do XP incluem:

  • Programação em Pares: Desenvolvedores trabalham em pares para melhorar a qualidade do código e compartilhar conhecimento.
  • Testes Automatizados: Testes unitários e de aceitação são escritos antes do código e são executados automaticamente.
  • Entrega Contínua: Novas funcionalidades são entregues rapidamente em pequenos incrementos.
  • Cliente Presente: O cliente ou representante do cliente está envolvido no processo de desenvolvimento.

5. Kanban

O Kanban é uma metodologia que se concentra na visualização e no controle do fluxo de trabalho. Principais elementos do Kanban incluem:

  • Quadro Kanban: Um quadro visual que representa o fluxo de trabalho, com colunas que representam os estados das tarefas.
  • Limites de Trabalho em Progresso (WIP): Restrições são aplicadas para controlar o número de tarefas em andamento em cada coluna.
  • Melhoria Contínua: O Kanban incentiva a análise constante e a otimização do processo de desenvolvimento.

Cada uma dessas metodologias tem suas próprias vantagens e desvantagens, e a escolha da metodologia certa depende das necessidades e do contexto do projeto. Muitas equipes optam por combinar elementos de várias metodologias para criar uma abordagem personalizada que atenda às suas necessidades específicas de desenvolvimento de software.

Conclusão

A escolha da metodologia de desenvolvimento de software é essencial para o sucesso do projeto. Cada metodologia oferece abordagens específicas. A adaptação e o comprometimento da equipe são fundamentais. Independentemente da escolha, a comunicação e a colaboração são cruciais para resultados eficazes.

Histórico de versão

Data Versão Descrição Autor(es)
27/09/2023 1.0 Criação do Documento Natanael Fernandes Coelho Filho
22/10/2023 1.1 Revisão de documentação Júlia Farias Sousa
22/10/2023 1.2 Revisão de documentação Antonio Rangel Chaves
22/10/2023 1.3 Revisão de documentação Guilherme Daniel Fernandes da Silva