Metodologias Ágeis
Gostaria de iniciar falando sobre o Manifesto Ágil, um documento criado em 2001 por 17 profissionais que trabalhavam com tecnologia e aplicavam métodos de desenvolvimento ágil de software. Eles perceberam que, apesar de existirem vários métodos, a ideia central era a mesma: entrega de produtos de alta qualidade e confiabilidade, flexíveis durante o processo de produção e focados em manter a eficiência do desenvolvimento, evitando perdas de tempo.
Na metodologia tradicional (cascata), possui etapas bem definidas e detalhadas, permitindo que a etapa seguinte somente inicie após a conclusão da anterior, e o contato com o cliente ocorre somente no planejamento do produto e na entrega, que é feita de uma só vez com o produto conforme planejado anteriormente.
Na metodologia ágil, as etapas também são bem definidas e detalhadas, porém dinâmicas, possibilitando que uma etapa posterior seja realizada antes, caso seja identificada a necessidade. O constante contato com o cliente permite um amplo entendimento do produto ao longo do processo, tornando-o adaptável. As entregas ocorrem ao final de cada etapa, permitindo que o cliente faça feedbacks, tornando a entrega final mais precisa.
Métodos mais utilizados
1. Scrum
É, por definição dos seus criadores, um framework propositalmente incompleto. Em vez de fornecer instruções detalhadas, as diretrizes do guia orientam os relacionamentos e interações, permitindo que a equipe de desenvolvimento adapte-as conforme a necessidade.
Bases do Scrum: Empirismo (constante observação e aprendizado) e lean thinking (diminuição de desperdícios, principalmente em relação ao tempo).
Pilares do Scrum:
Transparência: para que todos possam ter plena clareza sobre a meta, o produto, suas tarefas e o alinhamento da equipe.
Inspeção: manter uma visão crítica do que está acontecendo, sempre verificando o progresso e recebendo os feedbacks do cliente.
Adaptação: acontece quando a equipe aprende com a transparência e a inspeção, conseguindo adaptar seus processos.
2. XP
Extreme Programming é um método ágil criado para o desenvolvimento de software. Tem como objetivo possibilitar a criação de sistemas de alta qualidade, baseados em uma interação próxima com os clientes, testagem constante e ciclos de desenvolvimento curtos. Tem como principal objetivo fazer ciclos de entregas rápidos, contínuos e incrementais. Característica: programação em pares.
3. Kanban
Consiste em uma tabela com colunas, nas quais cada coluna indica uma fase do processo. As colunas podem ser organizadas de acordo com a necessidade da equipe. É um método para definir, gerenciar e melhorar serviços profissionais, atividades criativas e o design de produtos físicos e de software. Foi desenvolvido pela Toyota com o objetivo inicial de resolver problemas de gestão de estoque. Entretanto, hoje o Kanban saiu limites da indústria e passou a ser utilizado em outras áreas, incluindo o desenvolvimento de software.