O que são e pra que servem metodologias ágeis?

Salve, programador(a)! Mais uma vez estamos aqui para trocarmos uma ideia sobre um tema que pode te inspirar ainda mais na sua jornada de programador(a).

Tenho certeza este texto vai acrescentar ainda mais na sua caminhada de programador(a). Antes de iniciar a nossa conversa. Inscreva-se em nosso canal Luaverse, no youtube também e receba muitas dicas de programação e tecnologia.

Inscreva-se na nossa newsletter para não perder nenhum artigo do nosso blog.

Amigo(a) leitor(a), hoje iremos falar acerca de uma metodologia que está sendo utilizada cada vez mais em empresas de modo geral, sobretudo as tech tecnológicas.

Imagine produzir suas ações, projetos durante um tempo prolongado e, quando se pensa em entregar esses projetos ou produtos comercializados, na verdade, não há tempo de se finalizar tudo ou ainda deixar tudo para o final, sem ter qualquer parâmetro do que precisa ser feito.

Acompanhe-nos e entenda melhor

Amigo(a) programador(a), foi na década de 90 que houve um elevado uso de computadores pelas empresas, mas essa elevada demanda trouxe também uma crise no desenvolvimento de software. Isso porque ocorreu vários atrasos para que se entregasse os softwares.

De acordo com estudiosos da área, o período que se fazia o levantamento dos produtos com Apps e a entrega destes aplicativos com o desenvolvimento de software era de três anos naquela época.

Pensando nesta falha, ou melhor, nesta demora para se entregar o que se pedia foi que vários profissionais tentaram amenizar essa dificuldade de demanda.

A princípio pensou-se em aproveitar apenas as ações que fossem consideradas produtivas para o desenvolvimento de software a fim de que essas novas metodologias se aproximassem o quanto antes do cenário “moderno” que estava surgimento. É pensando nisso que criou-se várias metodologias ágeis.

Qual a finalidade destas metodologias ágeis?

A finalidade é diminuir ou excluir qualquer dificuldade encontrada pelas empresas ao produzirem seus projetos direcionados a entrega incrementa, participação da equipe, planejamento e aprendizado constante.

Como podemos notar, a partir da carência apresentada nos anos 90, foi preciso pensar em uma metodologia que não utilizasse aquele formato anterior de deixar para ser entregue tudo o que foi solicitado pelas empresas, por exemplo, de uma só vez e perto de finalizar o prazo de entrega.

Essa metodologia comprometia o processo de desenvolvimento de software, já que deixar tudo para o final sem possuir qualquer dimensão de onde se está para onde se quer chegar, refletiria e crises e desistências de muitas empresas para adquirir produtos, sobretudo tecnológicos.

É pensando nisso que passou-se a investir mais na participação de todos os integrantes que adotaram o desenvolvimento incremental. Nesse sentido, é por meio desta carência que o uso de metodologias ágeis surge como uma possível estratégia eficaz para ganhar tempo durante a execução de tarefas.

Amigo(a), leitor(a), ter clareza na execução de qualquer ação, qualquer tarefa serve para programação e se expande para a vida, pois, quando sabemos direcionar nossas ações, conseguimos entender também as etapas que precisam ser feitas.

Esta clareza reflete em promissores resultado, pois tem-se um controle e transparência de tudo o que acontece para o cliente. E o mais prático é saber que não é mais precisa deixar tudo para o final dos processos.

Entenda melhor o percurso tomado pelas metodologias ágeis

Após os anos 90, muito se discutiu acerca da lentidão de desenvolvimento de softwares e foi no ano de 2001 que uma turma com 17 profissionais que debatiam essa temática procuraram trazer alguma solução que fosse mais ágil e atendido a tempo toda demanda. Para isso, foi publicado o Manifesto do Desenvolvimento Ágil de Software.

Nessa publicação, estava direcionado um texto que buscava apresentar os princípios básicos para desenvolver a metodologia ágil que é era possível ser utilizada por qualquer área empresarial e tecnológica para otimizar tempo.

O objetivo é deixar claro que o coletivo, a participação das pessoas com sua criatividade, sugestões e insights são mais pertinentes e promissores do que a execução das ferramentas em si.

Seguindo esta linha de pensamento, o objetivo se estende também para se produzir e entregar o software funcionando, independente deste software estar pronto na integra. Essa prática contribui para que o cliente consiga estar mais próximo da equipe, porque as colocações do cliente são tão relevantes quanto os contratos por si só.

Vale destacar que esse tipo de comunicação entre cliente e equipe, bem como agilidade para se ter melhores resultados é viável, pois esta metodologia possui ciclos mais imediatos para se desenvolver.

Por que essa comunicação torna-se mais ágil ?

A intenção é apresentar ao comprador do produto o módulo do software feito ou pelo menos uma parte dele e quando se faz isso há um retorno acerca do sistema desenvolvido.

Quando se tem este retorno é possível entender quais aspectos precisam ser modificados ou melhorados.

Ter esta noção antecipada favorece quem está desenvolvendo o software, pois os próximos passos serão mais precisos e a partir do que precisa ser aprimorado pode-se refletir nos ciclos seguintes sem que conclua o projeto de uma vez.

Como podemos compreender ter esta avaliação faz com que a empresa seja ágil e foque, sobretudo na melhora de cada etapa que está sendo realizada na produção do software.

Isso permite eventuais mudanças não planejadas para que o produto esteja constantemente em reformulação a fim de tender a demanda e clientes.

Falando nisso, vamos conhecer algumas metodologias ágeis:

Scrum

Esta metodologia é a mais adotada nos dias de hoje. No Scrum o projeto é formado em uma divisão de ciclos que possuem uma duração de uma até quatro semanas (os ciclos são chamados de sprints).

Sabia que nesta metodologia tudo o que precisa ser feito e acrescentado é inserido em uma lista de carências, com tudo o que precisa ser feito com o nome de backlog.

Quando vai ser começado cada ciclo ou sprint, necessita-se fazer uma sprint planning (planejamento em cada ciclo) que tem como propósito escolher quais ações serão executadas e as próximas metas.

Leia também: QR Codes são realmente seguros ?

É neste encontro que o dono do produto determina o que será feito com prioridade os itens do backlog juntamente com a equipe que vai escolher quais ações serão feitas quando se começa o ciclo.

Ao se realizar com eficiência o sprint planning, tem-se como resultado uma equipe que entende o ritmo da empresa em que estão e que compromissos estão sendo construídos em cada ciclo, pois agora a equipe possui prioridades a serem feitas.

Para tanto, todo o grupo produz o daily scrum frequentemente ( quer dizer que são feitas curtas reuniões todos os dias para se discutir o que precisa ser melhorado a fim de se ter transparência entre todos).

O daily scrum contribui para que todos estejam cientes do que ocorre na empresa, para que não ocorra qualquer falta de dialogo com todos.

É nesta metodologia que deve-se fazer um levantamento das dificuldades encontradas todos os dias no projeto da empresa e que de alguma maneira prejudicam na agilidade e competência das ações a serem realizadas.

Esse entendimento do que acontece na empresa fica viável, pois todos os membros informam o que foi feito no dia anterior, o que está ocorrendo agora e o que poderá prejudicar a agilidade de sua empresa.

Como notamos cada um dos trabalhadores é transparente com o que faz no dia a dia que está trabalhando, o que reflete também um olhar de segurança, pois todos estão sendo “transparentes” em suas funções.

A próxima etapa é quando se finaliza o sprint e automaticamente é necessário se fazer um sprint review, aqui é refletido que funções ou ações foram adotadas e quais serão os próximos passos e tudo isso é feito por cada membro.

Neste sprint review também é comemorado as metas alcançadas e ações aprimoradas.

Além disso o scrum master, de forma bem objetiva, exclui qualquer interferência que impeça a turma, o grupo de ser mais ágil.

Ele possui a competência de organizar cada ciclo (sprint), revisar, pontuar o que pode ser melhorado e fazer anotações, reuniões particulares com consultaria para entender o que está impedindo aquele profissional de progredir no trabalho.

Como indicação de leitura para quem busca adotar esta metodologia é o livro Scrum: a arte de fazer o dobro do trabalho na metade do tempo, autor Jeff Sutherland, cocriador do Scrum.

Lean

Este método ágil surgiu na área automobilística, o que não impede de se associar a outras áreas. Pois o seu objetivo é ser eficiente e rápido no que faz.

O proposito é diminuir excessos no momento em que se está produzindo e evitar ações complexas para que se possa ter mais tempo para realizar ações mais práticas.

Tudo isso que foi falado, quando feito, ajuda a reduzir obstáculos menores que poderão, depois se tornar problemas sérios na empresa.

Como podemos notar é necessário que a equipe possua agilidade nas entregas para que se possa “poupar” tempo e dinheiro na empresa.

Com estas características a empresa passa a ter uma maior competitividade no setor, pois vai se conseguir otimizar o tempo e organizar seu setor financeiro de forma mais clara.

Esta metodologia possui alguns bases que são:

  • Excluir o desperdício;
  • Expandir de forma continua o aprendizado
  • Entregar o quanto antes
  • Valorizar o time
  • Firmar qualidade
  • Otimizar tudo o que ocorre na empresa

Como indicação de leitura para quem busca adotar esta metodologia é o livro Lean Inception: Como alinhar pessoas e construir o produto certo, autor Paulo Caroli.

Kanban

O Kanban surgiu na década de 60 feito pela Toyota. Sua principal função é sistematizar de forma visual o que está sendo feito, o que precisa ser feito e o que já foi finalizado.

Todo esse controle visual se dá por meio de quadros que possuem ações que serão feitas etapa por etapa inseridas em colunas.

Nesse sentido, podemos entendê-las como ações visuais que se parecem mais com um sistema que organiza atividades para proporcionar agilidade no processo das ações a serem produzidas.

Por ser ágil, ele possui como vantagem ser prático na organização do trabalho, mas não detalha as atividades que precisam ser feitas.

Um outro ponto a ser apresentado é as colunas que possuem um limite de até cinco tarefas. Para que o as tarefas prossigam é preciso que das cinco tarefas pelo menos uma se conclua para que outra entre em continuação.

Como indicação de leitura para quem busca adotar esta metodologia é o livro Kanban. A Simplicidade do Controle da Produção, autor Reinaldo a Moura.

Extreme Programming (XP)

Este método é direcionado a criação e desenvolvimento de softwares que apresentem elevada qualidade. Para essa metodologia ocorrer é necessário passar por cinco valores:

Simplicidade: a ideia é manter a eficácia no que está fazendo e direcionamento somente no que é planejado, sem qualquer distração das metas planejadas;

Comunicação: deve ser praticada todos os dias para um melhor produtividade no compartilhamento de conhecimento, pois o trabalho em conjunto por parte da turma ou equipe é característico do desenvolvimento do software, pois manter conversas presenciais ou escrever em quadros desenhos ajuda a construir a comunicação

Feedback: ter o retorno dos clientes ajuda a entender melhor o que eles querem e acelerar os resultados planejados, porque, ao entendermos o que o cliente deseja, consegue-se melhorar o produto atendendo a demanda do cliente

Coragem: A todo momento são feitas escolhas e para tanto é preciso saber se portar e ter atitudes para relatar problemas, saber ouvir e aprender novos olhares

Mudança: a partir do que é proposto pelo cliente, são realizadas mudanças nos produtos;

Respeito: ocorre um olhar de igualdade entre todos os que integram o grupo e não existe aquele olhar de submissão.

Apresentamos de forma objetiva os valores, mas existe também as práticas que são:

  • time único (Whole Team);
  • jogo de planejamento (Planning Game);
  • testes de aceitação (Customer Tests);
  • fases pequenas (Small Releases);
  • programação em duplas (Pair Programming);
  • desenvolvimento orientado a testes (Test Driven Development);
  • aprimoramento do design do software (Refactoring);
  • integração contínua (Continuous Integration);
  • propriedade coletiva do código (Collective Code Ownership);
  • padronização do código (Coding Standard);
  • metáforas (Metaphor);
  • ritmo sustentável (Sustainable Pace).

Caso queriam saber de alguma sugestão temos “Extreme Programming Pocket Guide”, do autor Shane Warden.

Feature Driven Development (FDD)

De acordo com os registros, a metodologia foi concebida por Jeff De Luca inspirado nos princípios da modelagem de objetos criada por Peter Coad, um empresário de software norte-americano.

A primeira vez que o FDD foi aplicado aconteceu em 1997, durante um projeto de desenvolvimento de software para um grande banco em Cingapura.

Nesse projeto, Jeff entregou um conjunto com cinco processos que atenderam as necessidades do banco, em um projeto de desenvolvimento de software que durou 15 meses e envolveu 50 pessoas.

Em seguida, o Feature Driven Development foi utilizado em um segundo projeto que durou 18 meses e envolveu 250 pessoas. A partir disso, a metodologia se tornou popular entre equipes de desenvolvedores de softwares.

Foi neste projetou que Jeff apresentou um projeto com cinco processos que contemplaram o que queria o banco.

Este primeiro projeto durou 15 meses e integrou mais de 200 pessoas e por meio deste acontecimento, esta metodologia passou a ser usada por muitos e ganhou o “gosto” das turmas que praticam desenvolvimento de software.

Esta metodologia é adotada no desenvolvimento de softwares guiada pela modelagem, ou seja, é feita a partir de um levantamento de problemas e na compreensão dos processos interativos para se apresentar soluções.

Na verdade o proposito é possibilitar para o cliente um software funcional que fique pronto o quanto antes.

É pensando nisso que o FDD tem a intenção de entregar aplicabilidade que é a tarefa de trabalhar projetos elaborados em até duas semanas que se iniciam com pelo menos 5 processos que são: planejamento por funcionalidade, modelagem por funcionalidade, criação de lista de funcionalidades, desenvolvimento geral, construção por funcionalidade

Todas essas entregas são incrementais, são inseridas no decorrer da produção do projeto que se está em sua etapa inicial.

Microsoft Solutons Framework (MSF)

Esta metodologia surgiu na década de 90, com grande destaque quando a Microsoft por meio de todo o seu tempo de atuação na área de software e ações de consultoria buscou trazer um conjunto de boas práticas.

A ideia é fazer com que essas boas práticas se apresentassem como framework flexível com o propósito de saber direcionar o desenvolvimento de projetos de software.

Atendendo a alta demanda, a boa aceitação do mercado para o uso de metodologias ágeis, a empresa Microsoftware apresentou uma variação do MSF com o nome de For Agile Software Development, que traz os seguintes princípios:

  • Apresentar um pensamento que busque compartilhar ideias com toda equipe;
  • Permanecer em contato frequente com os clientes;
  • Verificar e prevenir para que exista qualidade por parte de todos os integrantes do grupo
  • Agir de forma rápida para que se consiga estar adaptado para a ocorrência de novos desafios
  • Compartilhar informações sem interrupções
  • Entender que mudar e se adequar é um acontecimento corriqueiro e ajuda aprimorar os resultados

A partir do que foi apresentado, vejo como pertinente esclarecer que esta metodologia não é mais hoje feita pela Microsoft, mas isso não impedi que ela seja feita por outras empresas.

Desenvolvimento de Sistemas Dinâmicos (Dynamic System Development Model)

Esta metodologia foi produzida pelo consórcio DSDM na década de 90, Reino Unido. Ela foi feita como uma continuação independente do Rapid Application Development (RAD).

O objetivo é adotar projetos que não ultrapassem os prazos estabelecidos, sobretudo os orçamentos.

Abaixo fizemos uma lista para mostrar que características fazem parte dela:

  • Permanente estratégias de melhoria;
  • Continua contribuição e participação do cliente com a equipe que está desenvolvendo o software;
  • Integração entre as funções estabelecidas nos módulos.

Considerações finais

Podemos notar que as metodologias ágeis vieram potencializar o gerenciamento de recursos na elaboração de projetos.

A forma como essas metodologias são aplicadas nos mostram um desejo de se solucionar problemas e seu pormenores formados por diálogo, colaboração, desafios, abertura para o cliente ser ouvido e outras.

Estas características são usadas com muita frequência por empresas de tecnologia o que motivou a escrita deste texto. Além disso, essas metodologias que apresentamos são apenas algumas das várias que existem neste setor e que potencializam este universo da computação.

Caso queiram aprofundar a leitura sobre agile, vou deixar mais duas indicações de livros:

Agil do Jeito Certo: Transformação sem caos

Sprint: O Método Usado no Google Para Testar e Aplicar Novas Ideias Em Apenas Cinco Dias

Referências:

https://www.igti.com.br/blog/fdd-feature-driven-development

https://blog.smartconsulting.com.br/metodologias-ageis/

https://controlf5it.com.br/blog/o-que-sao-metodos-ageis-de-desenvolvimento-de-software/#:~:text=Métodos ágeis ou metodologia ágil,uma vez perto do fim.

https://sambatech.com/blog/insights/metodos-ageis/

https://rockcontent.com/br/blog/metodologias-ageis/

One thought on “O que são e pra que servem metodologias ágeis?

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *