Software infelizmente é sinônimo de problemas para muitas pessoas, sejam elas empresas, clientes ou usuários. Boa parte disso se deve as inúmeras dificuldades enfrentadas durante o desenvolvimento: baixa qualidade, requisitos não atendidos, prazos longos, falta de feedback, orçamentos fora do estimado, dentre tantas outras.
Origem: A crise do software
O termo “Crise do software” foi utilizado na década de 70 para expressar as dificuldades frente a enorme demanda por software, aumento da complexidade e inexistência de técnicas adequadas para o desenvolvimento. Na tentativa de resolver a questão, foram elaboradas metodologias e técnicas a partir de outras áreas, como a construção civil e nas produções em séries. Como resultado, surgiu a Engenharia de Software.
Com a Engenharia de Software foram definidos diversos modelos para a especificação, implementação e manutenção do software. Entretanto, ao longo do tempo, tudo isso se mostrou incapaz de atender aos reais problemas, devido aos ”pesados” modelos impostos, caracterizados por um processo rígido, burocráticos e sem feedback rápido. Em grande parte dos projetos, a dor de cabeça para as empresas e clientes ainda continua sem solução.
Qual é a solução?
Em meados da década de 90 começou uma reação contra os modelos rígidos. Como resposta, foram elaboradas idéias e modelos visando a agilidade. Em 2001, pessoas da comunidade se reuniram em Snowbird e adotaram o nome métodos ágeis (agile) e publicaram o Manifesto Ágil.
Manifesto Ágil
É um conjunto de metodologias e técnicas (Scrum, XP, BDD, entre outras) de desenvolvimento de software na qual visam a agilidade do desenvolvimento do software e focadas nas pessoas. O objetivo é maximizar ambientes ágeis, garantindo o trabalho em equipes o tempo todo.
Valores
- Indivíduos e interação entre eles mais que processos e ferramentas
- Software em funcionamento mais que documentação abrangente
- Colaboração com o cliente mais que negociação de contratos
- Responder a mudanças mais que seguir um plano
Doze Princípios
- Nossa maior prioridade é satisfazer o cliente, através da entrega adiantada e contínua de software de valor.
- Aceitar mudanças de requisitos, mesmo no fim do desenvolvimento. Processos ágeis se adequam a mudanças, para que o cliente possa tirar vantagens competitivas.
- Entregar software funcionando com freqüencia, na escala de semanas até meses, com preferência aos períodos mais curtos.
- Pessoas relacionadas à negócios e desenvolvedores devem trabalhar em conjunto e diáriamente, durante todo o curso do projeto.
- Construir projetos ao redor de indivíduos motivados. Dando a eles o ambiente e suporte necessário, e confiar que farão seu trabalho.
- O Método mais eficiente e eficaz de transmitir informações para, e por dentro de um time de desenvolvimento, é através de uma conversa cara a cara.
- Software funcional é a medida primária de progresso.
- Processos ágeis promovem um ambiente sustentável. Os patrocinadores, desenvolvedores e usuários, devem ser capazes de manter indefinidamente, passos constantes.
- Contínua atenção à excelência técnica e bom design, aumenta a agilidade.
- Simplicidade: a arte de maximizar a quantidade de trabalho que não precisou ser feito.
- As melhores arquiteturas, requisitos e designs emergem de times auto-organizáveis.
- Em intervalos regulares, o time reflete em como ficar mais efetivo, então, se ajustam e otimizam seu comportamento de acordo.
E na Agivis?
Cientes das vantagens das metodologias ágeis, aplicamos esses conceitos em todos nossos projetos. Somos um time engajado e motivado para atender de forma clara, transparente e aberta as necessidades de nossos clientes. Para saber melhor sobre o nosso processo de desenvolvimento, deixe sua dúvida aqui no blog ou entre em contato.
Gostou do conteúdo do post? Deixe seu comentário e nos siga no Twitter.