Siga a Gente!

Fique por dentro!

Cadastre seu e-mail para receber as novidades da Code Sense direto na sua Caixa de Entrada.

Prometemos mandar só informação de qualidade!  ;)

Newsletter

Como montar móveis, fazer sanduíches e desenvolver softwares

Tempo de Leitura: 7 minutos

Você já tentou montar um móvel? Como foi?

Se você é como eu, a primeira coisa que faz é ler o manual de instruções e identificar todas as peças. Então, com ajuda de uma parafusadeira devidamente carregada na noite anterior, eu começo a montagem com o manual em mãos para seguir à risca o passo a passo. E, obviamente, xingar o ajudante que não quer fazer do meu jeito jeito certo. 😅

Planejamento – Execução – Conclusão: um caminho fácil e óbvio. Com exceção daqueles com alinhamento caótico, que ignoram o manual e simplesmente começam um projeto, a maioria de nós está habituada a abordar uma etapa por vez. Afinal, a sabedoria milenar nos diz, “Meça duas vezes para cortar somente uma”. Ou seja, planeje bem antes de começar.

Mas entre um passo e outro há inúmeras variáveis, e se alguém disser que consegue prever todas, está te enganando. Ou pior, se enganando.

Dói muito quando um erro passa despercebido lá do início e cria um enorme problema no meio do caminho, ou pior: no fim. Felizmente, com o tempo, as pessoas aprendem e deixam esses velhos hábitos para trás, não é mesmo? 👀

Pessoa deitada no chão, com vergonha, ao lado de uma cadeira cujas pernas foram montadas para o lado errado.
Eu também estaria em posição fetal no lugar dela.

Por algum motivo, esse método funciona muito bem para alguns e não para outros. Mesmo todo o meu planejamento não foi capaz de me salvar de algumas dores de cabeça ao longo da vida. Isso não significa que o método seja ruim, e nem que você o seja.

Mas há outras formas de trabalhar que ajudam a priorizar as tarefas e otimizar o andamento do projeto, e de quebra deixar mais fácil identificar falhas e oportunidades de melhoria.

Você não achou que eu ia seguir falando sobre mobília, né? 😉

O que é e de onde surgiu o Método Ágil?

No mesmo ano em que foi lançado o filme Shrek (2001), um grupo de programadores nos EUA se reuniu para discutir as práticas e o novo rumo que a área estava tomando. Foram debatidas maneiras de suprir as limitações dos métodos tradicionais e reduzir incertezas, retrabalho e despesas.

Deste encontro histórico nasceu o Manifesto para Desenvolvimento Ágil de Software: um conjunto de frameworks orientados por 4 Valores e 12 Princípios fundamentais. Com ele, esses profissionais buscaram promover um desenvolvimento mais ágil e eficiente, além de conceder autossuficiência e flexibilidade a seus projetos.

Embora seja voltado para desenvolvimento de softwares, o método é passível de uso em projetos de diferentes áreas, basta adaptar. 💃 (Guarde essa palavrinha, vai ser importante!)

Lista dos 12 princípios dos métodos ágeis agrupados conforme os 4 princípios do manifesto

Os 4 Valores do Desenvolvimento Ágil

Todos os itens abaixo têm sua devida importância, mas para os Métodos Ágeis – também conhecidos como Processos Ágeis, Agile Method, Metodologias Ágeis, ou somente Agile – os itens da esquerda possuem e entregam maior valor.

  • Indivíduos e interações acima de processos e ferramentas
  • Software funcional acima de documentação abrangente
  • Colaboração com o cliente acima de negociação contratual
  • Responder a mudanças acima de seguir um plano

 

Em resumo, o foco está nas pessoas, na entrega de valor e na adaptabilidade. (Olha ela de novo! 💃)

Os 12 Princípios do Manifesto Ágil

Presumindo que se você quisesse ler o Manifesto já o teria feito, trazemos aqui os 12 princípios de forma simplificada (cortesia da nossa redação).

  1. A maior prioridade é satisfazer o cliente;
  2. Abraçar a mudança em qualquer etapa;
  3. Entregas progressivas e frequentes;
  4. Equipes multidisciplinares;
  5. Mantenha uma equipe motivada e confie nela para fazer o trabalho;
  6. Comunicação é mais eficiente e eficaz com conversas cara a cara;
  7. Entregas funcionais são a principal medida de progresso;
  8. Desenvolvimento se dá a partir da colaboração constante entre todas as partes envolvidas (clientes, equipe, usuários, etc.);
  9. Atenção constante à qualidade técnica e bom design;
  10. Simplicidade é a arte de maximizar a quantidade de trabalho não feito;
  11. Perfis autogerenciáveis e equipes com autonomia;
  12. Equipes realizam reflexão e refinamento constantes.

Framework?

Você deve ter reparado que em momento algum são citados passos ou apresentado um planejamento propriamente dito. Isso porque o Agile não é uma metodologia, mas um conjunto de frameworks.

Eu também fiz essa mesma cara que você deve estar fazendo agora. Antes de continuar, vamos esclarecer rapidamente: Qual a diferença entre Framework e Metodologia?

Framework é uma estrutura ou carcaça, um conjunto de conceitos e técnicas. É totalmente adaptável. 💃😉

Metodologia é um conjunto de métodos, padrões e regras que devem ser seguidos de acordo com o estudo científico.

Tenha isso em mente quando estiver lendo este ou qualquer outro material sobre Agile, pois é recorrente usarem esses termos como sinônimos. Até porque “metodologia” é um termo de uso comum, enquanto “framework” é um dos vários estrangeirismos da área de tecnologia.

Quais as diferenças dos Métodos Ágeis para os tradicionais?

Uma vez entendida a base dos Agile frameworks – e também o que é um framework – vamos ver como funcionam os modelos tradicionais e quais as propostas de mudanças que o Agile oferece.

Métodos Tradicionais

Quem já teve contato com planejamento de projetos já deve ter visto um fluxograma semelhante a este ao lado. Aqui, as etapas Planejamento, Execução e Entrega são divididas em tarefas mais específicas, mas segue essencialmente igual. É um dos modelos mais tradicionais de abordar o planejamento de… bem, qualquer coisa.

O modelo “Cascata”, como é conhecido, consiste em realizar todas as etapas de Planejamento de forma antecipada e depois – e somente depois – iniciar a Execução. Na sequência são feitos Testes para constatar o cumprimento dos requisitos e posteriormente, a Validação com o cliente (ou o dono do projeto). Com a validação positiva, dá-se como finalizado o projeto. Parabéns, você conseguiu!

Gráfico demostrando as etapas do método "cascata": Concepção, Escopo, Análise, Planejamentos, Desenvolvimento, Teste, Validação, e Implementação. À esquerda, as etapas são categorizadas de acordo com as etapas macro (Planejamento, Execução, e Entrega). À direita, setas apontam o fluxo de ajustes, saindo das etapas de Teste e Validação, voltando para Escopo e Análise.

Os mais experientes já estão torcendo o nariz e os mais observadores devem estar perguntando: “E onde diz ‘Ajuste’?”. Aí está a grande fraqueza do método Cascata e o maior argumento a favor das metodologias ágeis: a reação a mudanças.💃

Conforme representado no gráfico, os ajustes tendem a surgir de forma tardia no processo. Isso se dá justamente pela forma como ele funciona, focando em uma etapa por vez. Além disso, estes métodos partem da premissa que o cliente sabe exatamente o que quer antes do início do projeto e que a documentação das etapas iniciais contemple todos os requisitos com total precisão e clareza. E isso não costuma ser o caso.

É natural que haja mudanças e imprevistos em um projeto, seja qual for. Contudo, o custo e esforço para realizar alterações aumentam exponencialmente à medida que o projeto progride. Além de ser ineficiente, o retrabalho gera uma série de incertezas que podem causar ainda mais problemas para o projeto, especialmente em etapas tardias. Isso sem falar no impacto na equipe.

Métodos Ágeis (Agile)

Creio que já ficou bastante claro a importância da 💃 ADAPTABILIDADE para o Agile, mas o que isso quer dizer e como acontece?

Partindo do pressuposto de que ninguém tem certeza absoluta de como será o processo (ao menos que a Mãe Diná ou Paul, o polvo profeta da Copa, estejam na equipe), o Agile promove feedback constante a fim de identificar e solucionar problemas antes que eles fiquem grandes – e custosos – demais.

A chave aqui está nas ITERAÇÕES. Em primeiro lugar, não confunda com interações! Falo por experiência. Em segundo lugar, iterações são uma estratégia de desenvolvimento que envolve um processo cíclico de refinamento. Confuso? Também achei.

Na matemática (eu sei, 🤫 shhh, confie em mim) também é conhecido como aproximação sucessiva: um método de solução de problemas que consiste em fazer sequências de aproximações, cada uma construída com base na anterior, buscando um resultado melhor e/ou mais preciso.

Gráfico ilustrando o ciclo de iterações proposto pelo método agile. No ciclo estão: Requisitos, Análise, Planejamento, Desenvolvimento, Implementação e Testes, Validação e Melhoria.

O grande diferencial em processos ágeis é justamente a adoção de ciclos iterativos de curta duração. Esses ciclos concedem a flexibilidade e a adaptabilidade necessárias para enfrentar mudanças no processo. Além disso, ao criar diversos pontos de validação, esses ciclos promovem a participação de todas as partes envolvidas.

Isso garante que o cliente esteja satisfeito, que a equipe esteja bem alinhada, que as entregas sejam mais frequentes e tenham maior qualidade, e que o retrabalho (e custos!) sejam diminuídos.

Conseguiu identificar aqueles valores e princípios que vimos lá no início? 😉 É isso que significa ter um framework!

O que o Subway® tem a ver com isso?

À primeira vista, nada. Inclusive, sequer perguntei se podia usá-los de exemplo. Não contem pra eles. 🤫 Se você não sabe como funciona o Subway®, vou explicar e depois me diga se te soa familiar.

Obviamente, como em qualquer restaurante, você tem controle sobre o que você quer comer. Mas a rede sanduicheira vai um passo além. Você participa de cada etapa do processo, acompanhando os chamados Sandwich Artists™ enquanto montam seu lanche e realizando mudanças em tempo real para deixá-lo como você quiser. Nada é acrescentado sem seu conhecimento e consentimento. Se não for do seu agrado, lembre-se: foi você quem escolheu tudinho que tem ali. 🥪

Enquanto isso, em um restaurante a la carte, você escolhe o seu prato (deixando claras suas preferências, como ponto da carne, omissão de ingredientes, etc.), aguarda a preparação, recebe a refeição na mesa e come. Se não estiver conforme pedido, das duas uma: ou você tolera e segue a vida, ou manda a comida de volta e pede outra.

Não vou entrar no mérito de qualidade de ingredientes e de gostos particulares. Creio que depois de tudo o que você leu aqui, você entenda sem problemas. 😉

Qual a melhor metodologia?

Depois de tudo isso, levanto a pergunta para você: Os métodos ágeis são superiores aos tradicionais?

Depende. 🤷‍♀️

Também odeio quando me respondem isso. Mas, gostando ou não, estou aqui para te dar os FATOS. E o fato é que nem um dos dois é melhor nem pior, são só diferentes. Vamos fazer um comparativo:

Métodos Tradicionais (“Cascata”)

Ciclos Longos
Melhor em equipes maiores
Etapas consequentes
Alterações mínimas durante a execução

Métodos e Processos Ágeis (Agile)

Ciclos Curtos
Melhor em equipes menores
Segmentação de Entregas
Feedback constante
Adaptações durante a execução

Na Code Sense, optamos por utilizar o Scrum (com algumas adaptações), que é um dos métodos que utiliza o Agile como framework. Ele funciona bem para nossa equipe por também estar alinhado com nossos valores: o foco em pessoas, a valorização da comunicação e o jogo de cintura 💃 que já tiramos de letra!

Fique de olho aqui no blog e nos nossos canais de comunicação, que estamos preparando mais conteúdo sobre esse assunto. Traremos materiais sobre o Scrum, suas várias ferramentas e como o adaptamos para a nossa realidade. Alguns invejosos dirão que não é um Scrum de verdade, mas deixamos isso para outro dia. 😉😂

Referências

ABREU, J. V. M. Fatores críticos para aplicação do Scrum em projetos de desenvolvimento de software, 2022 ⬅ Esse fera aqui é da casa! 👏

DOMINGUES, F. Metodologia Ágil: A arte de fazer o dobro em metade do tempo.

VIANA, R. Scrum, Framework ou Metodologia?

Curtiu esse conteúdo?

Compartilhe

Code Sense

Code Sense

Coding is our Superpower 🦸‍♀️🦸‍♂️

Mais desse Autor

Deixe seu comentário! (perguntas e sugestões também são bem-vindas e encorajadas!)

Subscribe
Notify of
0 Comentários
Inline Feedbacks
View all comments

Siga a gente!

Fique por dentro!

Cadastre seu e-mail para receber as novidades da Code Sense direto na sua Caixa de Entrada.

Prometemos mandar só informação de qualidade!  ;)

Newsletter

Categorias

Quem escreve

Níveis