1 - O que é uma metodologia ágil?
Existem diversas metodologias ágeis para a gestão de um projeto, a que falaremos hoje é a Scrum.
As metodologias ágeis são como frameworks que rodam em uma mesma linguagem de programação, ou seja seguem fundamentos básicos comuns e a partir deles descrevem as melhores formas de implementá-los.
Essa "linguagem de programação" é conhecida como manifesto ágil.
O manifesto ágil é um pequeno conjunto de princípios formados a partir de critérios simples, que sempre pareciam ter sido respeitados em projetos que deram certo.
Valorizar Indivíduos e interação entre eles mais que processos e ferramentas;
Valorizar software em funcionamento mais que documentação abrangente;
Valorizar colaboração com o cliente mais que negociação de contratos;
Valorizar Responder a mudanças mais que seguir um plano.
Os 12 princípios formados a partir dos critérios são:
Nossa principal prioridade é satisfazer os clientes por meio da entrega antecipada e contínua de software valioso
Aceite mudanças de requisitos, mesmo no final do desenvolvimento, porque o processo ágil atende às necessidades do cliente
Entrega frequente de versões em execução de software em uma escala de semanas a meses, tempo mais curto é o preferido
Profissionais de negócios e desenvolvedores devem trabalhar juntos todos os dias ao longo do projeto
Crie projetos em torno de indivíduos motivados, forneça-lhes o ambiente e o suporte de que precisam e confie neles para concluir seu trabalho
A maneira mais eficaz e eficaz de transmitir informações à equipe de desenvolvimento é a conversa cara a cara.
Um software funcional é a principal medida de progresso.
Os processos ágeis promovem um ambiente sustentável no qual patrocinadores, desenvolvedores e usuários podem manter um ritmo constante.
Continue a se concentrar em tecnologia excelente e bom design para melhorar a agilidade
Simplicidade em primeiro lugar, como a arte de otimizar o trabalho
A melhor arquitetura, requisitos e design vêm de equipes auto-organizadas
De vez em quando, a equipe deve considerar como melhorar sua eficiência e ajustar seu comportamento de acordo.
No Scrum o projeto é dividido em ciclos, que são geralmente mensais, nesses ciclos é traçado um objetivo. Aquilo que será implementado no mês está incluso no objetivo com a intenção de deixar o projeto mais próximo da finalização de sua ideia final.
Esses ciclos são chamados de Sprints. Que no fim das contas representam uma deadline, na qual, um conjunto de atividades deve ser executado.
As funções a serem implementadas no projeto são armazenadas em uma lista, chamada de lista de afazeres do produto ou Product Backlog. No início de cada Sprint, há uma Reunião de Planejamento do Sprint ou Sprint Planning Meeting, que nada mais é que uma reunião definindo quais atividades serão realizadas naquele ciclo. e consequentemente quais funcionalidades serão passadas do Product Backlog para o Sprint Backlog, que nada mais é do que uma lista de funcionalidades que serão implementadas naquele ciclo.
Levantamento diário ou Daily Scrum: O objetivo é disseminar conhecimento sobre o trabalho realizado na véspera, identificar obstáculos e priorizar o início dos trabalhos naquele dia. No final do Sprint, a equipe demonstrou as funções implementadas na reunião de revisão do Sprint. Finalmente, há uma Sprint Retrospective ou revisão do Sprint e a equipe continua planejando o próximo Sprint. Então o ciclo começa novamente
3 - Outra metodologia ágil complementar - XP
O xp ou eXtreme Programming é uma das metodologias mais utilizadas e, na minha visão, complementa o Scrum.
Além de seguir todos os conceitos que o manifesto ágil trás, ela adiciona os seguintes critérios no desenvolvimento:
Testar, revisar e projetar continuamente
Integrar o tempo todo
Desenvolver as soluções com o máximo de simplicidade
O objetivo maior de implementar esse método no desenvolvimento é compartilhar as alterações e implementações com seu usuário final, para que com isso consiga receber o feedback quase em tempo real de seu produto e consiga implementar as alterações necessárias na fase de desenvolvimento.
4 - Quando se deve usar o manifesto ágil?
A resposta é simples. Sempre que você quiser realizar um projeto de forma eficiente.
Como eu sei que eficiencia e uma palavra que todo programador ama, acho que Sempre é a resposta mais satisfatória para essa pergunta,
5 - Quando se deve usar o Scrum?
A resposta dessa pergunta pode parecer simples no início, mas tem algumas coisas interessantes sobre ela.
Se fosse responder de forma direta diria que quase sempre. A questão é: Por que quase?
Bem... O QUASE se aplica nesse contexto, pois estamos falando de uma metologia que é melhor aplicada no âmbito empresarial, servindo a um cliente e a um projeto grande. É claro que pode ser usada em projetos pequenos e pessoais, porém acredito existirem outras metodologias que se aplicam melhor a esses casos. A questão é que em projetos pessoais você pode acabar ficando muito preocupado com a metodológia de organização e menos com seu código. Assim, desrespeitando conceitos do manifesto ágil em si, o que não era para acontecer.
Outra pergunta que pode ser levantada é a seguinte: Como você faria as reuniões no inicio do mês e no inicio de cada dia se você é a única pessoa no projeto? Portanto considero esse processo pouco produtivo, tanto projetos pessoais, quanto em empresas com poucos funcionários. Baseado, claro, em minhas experiências pessoais.