Alguém pode explicar sobre a metodologia ágil em frases simples?
Alguém pode explicar sobre a metodologia ágil em frases simples?
Respostas:
Agile é um monte de coisas e práticas, mas acho que o núcleo disso é apenas o desenvolvimento iterativo.
Iterativo: pense em várias cachoeiras muito pequenas. Ou seja, o método cascata (requisitos-> especificação-> código-> teste), mas, em vez de fazê-lo ao longo de um ano, você o faz ao longo de algumas semanas para um pedaço gerenciável do conjunto projeto. No final de 'iteração / sprint / incremento', você tem um pequeno, mas completo e testado conjunto de funcionalidades adicionais.
Isso permite que você mude rapidamente o curso do projeto, se o que você está fazendo não é o que o cliente deseja, ou as necessidades da empresa mudam, ou o que quer. Daí o termo "ágil".
Eu acho que nada o coloca melhor do que o próprio Manifesto Ágil:
Estamos descobrindo maneiras melhores de desenvolver
software fazendo isso e ajudando outras pessoas a fazê-lo.
Através deste trabalho, chegamos ao valor:
Indivíduos e interações em processos e ferramentas
Software de trabalho em documentação abrangente
Colaboração do cliente em negociação de contratos
Respondendo a mudanças ao seguir um plano
Ou seja, enquanto houver valor nos itens
à direita, valorizamos mais os itens à esquerda.
Para mim, a ideia mais importante é esta:
As mudanças de requisitos acontecerão porque somos forçados a projetar software com o conhecimento necessário sobre o que é necessário (o início do projeto) e os requisitos só se tornarão mais claros ao longo do projeto.
As abordagens tradicionais (em cascata) tentam atenuar essa mudança, bloqueando todos os contratos no início do projeto, solicitando que eles assinem especificações abrangentes. Isso pode funcionar como um CYA, mas não deixa ninguém feliz em oferecer algo que não atenda às necessidades dos usuários, especialmente se suas objeções forem atendidas com "Bem, você assinou!"
Os Métodos Ágeis são projetados para abraçar as mudanças inevitáveis, em vez de proteger a equipe de desenvolvimento delas. Isso é feito de várias maneiras, dentre elas o desenvolvimento iterativo e o envolvimento contínuo das partes interessadas no processo. Na minha experiência, deixa todos os envolvidos mais felizes no final, embora possa ser mais desconfortável para alguns tipos de gerenciamento que são planejadores hardcore.
Em uma frase, é assim:
O desenvolvimento ágil de software é um grupo de metodologias de desenvolvimento de software baseadas no desenvolvimento iterativo e incremental , em que requisitos e soluções evoluem através da colaboração entre equipes multifuncionais e auto-organizadas .
Isso vem da definição da wikipedia e eu gosto muito. Eu destaquei princípios fundamentais.
Gostaria de adicionar também o que o Agile NÃO é. Existem muitas lojas por aí que afirmam ser ágeis, mas de uma maneira que significa que elas não estão interessadas em planejar seus projetos e esperam que as coisas sejam feitas em um período excessivamente curto de tempo.
Agile! = Sem plano de projeto. É difícil lidar com pessoas que implicitamente pensam que essa afirmação é falsa porque elas tendem a ser do tipo de gerenciamento e nem sempre são fáceis de contradizer.
Andy já se vinculou ao Agile Manifesto, que eu acho que aborda quase tudo.
Eu acho que é útil ver também de onde veio o Manifesto Ágil. Havia várias metodologias por aí que tinham alguns elementos em comum e muitas motivações semelhantes: Programação Extrema (XP), Scrum, DSDM, Desenvolvimento de Software Adaptativo, Cristal, Desenvolvimento Orientado a Recursos, Programação Pragmática (lista de Alistair Cockburn ). As pessoas que propunham essas metodologias decidiram criar um termo de marketing para cobrir as coisas que eles tinham em comum, para que a força do que eles estavam dizendo fosse melhorada.
Curiosamente (de acordo com o que alguém me disse), havia vários nomes na lista restrita que poderiam ter sido escolhidos em vez de "Ágil" - um dos quais era "Adaptável". Pessoalmente, acho que, como uma única palavra que resume melhor o que é realmente ágil, melhor do que "ágil"!
Empregar uma metodologia ágil se resume a enfatizar a entrega de produtos de qualidade em relação a outros aspectos do desenvolvimento de produtos e a perceber que o feedback da comunidade de usuários é uma parte vital da criação de produtos de qualidade.
Compare isso com uma abordagem de desenvolvimento tradicional / em cascata, que enfatiza o design, a documentação e a definição de interface inicial, sem enfatizar a implementação e a transição do produto do desenvolvimento para o lançamento.
Na minha opinião, existe uma qualidade intrínseca que uma equipe pode criar em um produto. Vejo isso assumindo a forma de verificar se um produto funciona como a equipe de desenvolvimento pretendia e pode acomodar razoavelmente melhorias previsíveis. Também existem fatores de qualidade baseados inteiramente na percepção que medem o quão bem um produto atende às necessidades de seus usuários.
As abordagens ágeis tendem a fornecer produtos de forma iterativa , incorporando o feedback do usuário e o desenvolvedor em cada iteração, e promovem o fornecimento de cada incremento de funcionalidade quando obtém viabilidade mínima como uma função forçadora para obter feedback frequente do usuário e neutralizar a tendência das atividades de desenvolvimento de continuar. longos períodos de tempo sem feedback de seus usuários. Na minha opinião, outros aspectos de uma abordagem ágil tendem a apoiar esses princípios fundamentais.