fbpx
Como o GO Horse está se travestindo de Ágil: os perigos de uma adoção superficial de metodologias ágeis
Publicado em: sexta-feira, 17 de mar de 2023
Categorias: Desenvolvimento | Geral
Tags: Agile | GoHorse

Nos últimos anos, o uso de metodologias ágeis tem sido amplamente difundido no desenvolvimento de software e gestão de projetos, buscando entregar valor de forma mais rápida e eficiente. No entanto, uma tendência preocupante tem surgido: a utilização do Go Horse, uma abordagem informal e caótica, disfarçada de práticas ágeis. Neste post, vamos explorar como o Go Horse está se travestindo de Ágil, os riscos associados a essa prática e como identificar e evitar essa armadilha.

Disclaimer

Metodologia não é um assunto que eu aborde com frequência aqui no gaGO.io.

Me recordo de ter falado disso apenas em 2016, em um post super pequeno que leva o título de Simplificando Tudo.

Ágil não é minha área de estudo, embora como um bom curioso, me interesso pelo mecanismo, pelo propósito oculto de cada rito, como meio de entender, o que eles de fato entregam de resultado, de clareza, já que benefícios como clareza e comunicação melhorada, me chamam a atenção.

Simplificando tudo

Esse é um post rápido, uma crítica a aqueles que querem sempre simplificar tudo, de forma indiscriminada, e no final criam frankensteins conceituais.

A ideia que refuto é:

Vamos implantar SCRUM, mas sem … pq não precisamos.

Vamos usar RUP, mas sem… pq não é necessário.

Vamos implementar SOA, mas vamos simplificar… pq é too much.

Vamos implementar GIT FLOW, mas vamos não vamos ter só master, sem develop.

Essas são atrocidades que já escutei, sempre com o ar de superioridade dizendo “Não precisamos disso tudo”….

Contexto

As metodologias ágeis surgiram como resposta às limitações das abordagens tradicionais de gerenciamento de projetos, como o Waterfall. Com foco na colaboração, flexibilidade e entrega contínua de valor, as metodologias ágeis têm sido adotadas em diversos setores e projetos. No entanto, a falta de compreensão e implementação adequada das práticas ágeis pode levar a uma adoção superficial, onde a equipe acredita estar seguindo uma metodologia ágil, mas na realidade está apenas perpetuando práticas de Go Horse.

Para entender o problema de empresas adotando o go horse sob o disfarce de metodologias ágeis, é importante primeiro entender o que é cada um desses termos.

Go Horse

Go Horse é uma abordagem não estruturada e improvisada ao desenvolvimento de software que, muitas vezes, resulta em soluções temporárias e de baixa qualidade, também conhecidas como “gambiarras”. Esta abordagem tende a priorizar a entrega rápida de soluções, mesmo que isso signifique comprometer a qualidade do design, a arquitetura do software e a manutenibilidade do código. Vamos detalhar como o Go Horse afeta o design de sistemas, a arquitetura de software e a qualidade em geral.

Design de sistemas

Um design de sistema eficiente e escalável é crucial para garantir que um software seja capaz de crescer e evoluir com o tempo, atendendo às necessidades dos usuários e às demandas do mercado. No entanto, a abordagem Go Horse frequentemente resulta em problemas de design de sistemas, ao priorizar a entrega rápida de soluções em detrimento de um planejamento e análise cuidadosa das necessidades e requisitos do projeto. Isso pode levar a:

  • Soluções temporárias (“gambiarras”): o Go Horse muitas vezes favorece soluções rápidas e fáceis, que podem resolver problemas imediatos, mas não são sustentáveis a longo prazo. Isso pode resultar em um acúmulo de gambiarras, que tornam o sistema frágil e difícil de manter e expandir.
  • Falta de coesão e acoplamento excessivo: uma arquitetura de software mal planejada pode resultar em componentes com baixa coesão (responsabilidades mal definidas) e alto acoplamento (dependências excessivas entre componentes). Isso torna o sistema mais difícil de entender, modificar e estender.
  • Dificuldade em lidar com mudanças: sem um design de sistemas adequado, o software pode ser incapaz de lidar com mudanças de requisitos, seja por fatores internos ou externos. Isso pode resultar em uma solução obsoleta, com imensa dificuldade de evoluir e assim criando um produto pouco competitivo.

Arquitetura de software

A arquitetura de software é um componente essencial para garantir a manutenibilidade, escalabilidade e desempenho de um sistema. No entanto, a abordagem Go Horse tende a negligenciar a importância da arquitetura, o que pode levar a problemas como:

  • Arquitetura frágil: sem uma arquitetura bem projetada e estável, o software pode se tornar frágil e propenso a falhas. Isso pode resultar em impactos negativos na experiência do usuário e na reputação do produto.
  • Falta de modularidade: a falta de uma arquitetura modular dificulta a divisão do software em componentes independentes, o que pode limitar a capacidade da equipe de trabalhar em paralelo e reduzir a velocidade de desenvolvimento e entrega.
  • Problemas de desempenho: a ausência de uma arquitetura otimizada pode resultar em problemas de desempenho, como lentidão, alto consumo de recursos e gargalos. Esses problemas podem afetar a experiência do usuário e a eficiência do software. Nesse caso a rasão entre custo e resultado é prejudicada, fazendo com que tenhamos um produto caro, e pouco competitivo.

Qualidade

A qualidade do software é um aspecto crítico que impacta diretamente a satisfação do usuário, a confiabilidade e a competitividade do produto no mercado. Go Horse com sua ênfase na entrega rápida e na improvisação, geralmente compromete a qualidade do software de várias maneiras:

  • Código não sustentável: o Go Horse pode levar ao desenvolvimento de código difícil de entender, manter e expandir. Isso se deve à falta de padrões de codificação, documentação inadequada e soluções temporárias, que tornam o código menos legível e mais propenso a erros.
  • Testes insuficientes: a falta de testes sistemáticos e abrangentes é comum na abordagem Go Horse, aumentando a probabilidade de bugs e falhas no software. A ausência de uma estratégia de testes sólida pode resultar em problemas não detectados e, eventualmente, em insatisfação do usuário.
  • Insegurança: a falta de planejamento e a ênfase na entrega rápida podem levar a vulnerabilidades de segurança no software. A segurança é um aspecto crucial da qualidade do software, e negligenciá-la pode expor os usuários a riscos e comprometer a integridade e a confidencialidade dos dados.
  • Falta de escalabilidade: o Go Horse geralmente não leva em consideração a escalabilidade do software, o que pode resultar em problemas de desempenho e limitações quando o número de usuários ou a quantidade de dados aumenta. A falta de escalabilidade pode limitar o crescimento e o sucesso do software no mercado.

Em resumo, a abordagem Go Horse tem um impacto negativo no design de sistemas, na arquitetura de software e na qualidade geral do produto. A ênfase na entrega rápida e na improvisação pode resultar em soluções temporárias e insustentáveis, prejudicando a manutenibilidade, a escalabilidade e a competitividade do software. Para garantir o desenvolvimento de um produto de alta qualidade, é crucial evitar a armadilha do Go Horse e adotar práticas sólidas de desenvolvimento, como as metodologias ágeis, que valorizam o planejamento, a colaboração e a melhoria contínua.

Parece familiar?

Metodologias ágeis

As metodologias ágeis são um conjunto de abordagens de desenvolvimento de software que enfatizam a colaboração, a adaptabilidade e a entrega incremental de valor. Elas surgiram como uma alternativa às abordagens tradicionais, como o modelo Waterfall, que se mostraram inadequadas em muitos projetos de software devido à sua rigidez e à necessidade de um planejamento detalhado desde o início. Algumas das metodologias ágeis mais populares incluem Scrum, Kanban, Extreme Programming (XP) e Lean.

As metodologias ágeis podem ajudar a evitar gambiarras e melhorar o design de sistemas, a arquitetura de software e a qualidade do produto de várias maneiras:

  1. Planejamento incremental e adaptativo: ao contrário das abordagens tradicionais, as metodologias ágeis permitem que as equipes planejem e adaptem seus projetos de acordo com as necessidades e feedback dos stakeholders. Isso facilita a identificação e correção de problemas de design e arquitetura, reduzindo a necessidade de recorrer a gambiarras.
  2. Entrega contínua de valor: as metodologias ágeis enfatizam a entrega frequente de pequenas funcionalidades que agregam valor ao usuário final. Isso permite que as equipes identifiquem e corrijam problemas de qualidade e arquitetura mais cedo no processo de desenvolvimento, evitando a acumulação de dívidas técnicas e gambiarras.
  3. Colaboração e comunicação efetiva: as metodologias ágeis incentivam a comunicação aberta e a colaboração entre os membros da equipe e com os stakeholders. Isso facilita a identificação e resolução de problemas de design, arquitetura e qualidade antes que se tornem críticos.
  4. Desenvolvimento orientado a testes (TDD) e integração contínua: muitas metodologias ágeis, como o Extreme Programming, promovem o uso de práticas como o desenvolvimento orientado a testes (TDD) e a integração contínua. O TDD ajuda a garantir a qualidade do código, reduzindo a probabilidade de bugs e gambiarras, enquanto a integração contínua permite a detecção precoce e a correção de problemas de integração entre os componentes do sistema.
  5. Refatoração e melhoria contínua: as metodologias ágeis incentivam a equipe a refatorar e melhorar continuamente o design e a arquitetura do software. Isso permite que as equipes eliminem dívidas técnicas e gambiarras, garantindo que o software seja fácil de manter e evoluir ao longo do tempo.
  6. Foco na qualidade do produto: as metodologias ágeis valorizam a qualidade do software e a satisfação do cliente. Elas promovem práticas como a revisão de código e a automação de testes para garantir que o produto final seja de alta qualidade e livre de problemas de design, arquitetura e gambiarras.

Em resumo, as metodologias ágeis podem ajudar as equipes a evitar gambiarras e melhorar o design de sistemas, a arquitetura de software e a qualidade geral do produto. Ao adotar práticas ágeis, como planejamento adaptativo, entrega contínua de valor, colaboração efetiva, desenvolvimento orientado a testes, refatoração e melhoria contínua, as equipes podem criar soluções de software mais robustas, sustentáveis e de alta qualidade.

Além disso, as metodologias ágeis ajudam a garantir que as equipes sejam capazes de responder às mudanças nas necessidades e nos requisitos dos clientes e do mercado, adaptando-se rapidamente e sem a necessidade de recorrer a soluções temporárias e insustentáveis. Isso resulta em produtos de software mais bem-sucedidos e competitivos.

Ao investir na adoção de metodologias ágeis e garantir que a equipe esteja comprometida em seguir seus princípios e práticas, é possível reduzir significativamente a dependência de gambiarras e melhorar a qualidade geral do software. Isso, por sua vez, leva a uma melhor experiência para os usuários finais, maior satisfação do cliente e sucesso a longo prazo no mercado.

Entendendo o fenômeno

Como o Go Horse se disfarça de Ágil?

Muitas vezes, equipes que adotam a abordagem Go Horse acreditam estar seguindo uma metodologia ágil, mas na realidade estão ignorando os princípios e práticas fundamentais que definem as metodologias ágeis. Essa confusão pode ocorrer quando as equipes não compreendem adequadamente os princípios ágeis, não recebem treinamento adequado ou não têm apoio da liderança para implementar as práticas corretamente. Quando isso acontece, a equipe pode estar apenas usando a terminologia ágil e adotando algumas práticas superficiais, enquanto na verdade segue uma abordagem Go Horse.

Riscos associados ao Go Horse disfarçado de Ágil

A adoção do Go Horse disfarçado de Ágil pode trazer uma série de problemas para a equipe e o projeto. Alguns dos riscos associados incluem:

  • Qualidade do produto comprometida: sem planejamento adequado e comunicação eficiente, erros e problemas podem passar despercebidos, levando a um produto de baixa qualidade.
  • Atrasos no cronograma: a falta de organização e previsibilidade da abordagem Go Horse pode resultar em atrasos e prazos não cumpridos.
  • Insatisfação do cliente: a entrega de um produto de baixa qualidade e atrasado pode levar à insatisfação do cliente e perda de confiança na equipe.
  • Desmotivação da equipe: trabalhar em um ambiente desorganizado e caótico pode levar à desmotivação e ao esgotamento dos membros da equipe.
  • Dificuldade em medir o progresso: a falta de planejamento e documentação adequada torna difícil avaliar o progresso e a eficácia do projeto.
  • Falta de aprendizado e melhoria contínua: sem reflexão e ajustes regulares, a equipe não consegue aprender com os erros e melhorar suas práticas.

Identificando o Go Horse disfarçado de Ágil

Para identificar se sua equipe está adotando o Go Horse disfarçado de Ágil, preste atenção a estes sinais:

  • Falta de planejamento e revisão: se a equipe não realiza planejamentos regulares e revisões de progresso, pode estar seguindo uma abordagem Go Horse.
  • Comunicação inadequada: a comunicação eficiente é fundamental para as metodologias ágeis. Se a equipe não se comunica bem, pode estar adotando práticas de Go Horse.
  • Ausência de documentação: embora as metodologias ágeis valorizem mais o software funcionando do que a documentação abrangente, alguma documentação é necessária. A falta de documentação pode indicar uma abordagem Go Horse.
  • Ignorando os princípios ágeis: se a equipe não segue os princípios fundamentais das metodologias ágeis, como a colaboração, a resposta rápida às mudanças e a entrega contínua de valor, pode estar praticando Go Horse.

Evitando a armadilha do Go Horse

Para evitar cair na armadilha do Go Horse disfarçado de Ágil, siga estas dicas:

  • Educação e treinamento: certifique-se de que todos os membros da equipe compreendam os princípios e práticas das metodologias ágeis e recebam treinamento adequado.
  • Apoio da liderança: a liderança deve apoiar a adoção das metodologias ágeis e fornecer recursos e orientação para implementá-las corretamente.
  • Estabelecer processos claros: desenvolver processos claros e bem definidos para planejamento, comunicação e revisão, garantindo que a equipe siga as práticas ágeis.
  • Promover a comunicação: incentive a comunicação aberta e transparente entre os membros da equipe e com os stakeholders.
  • Melhoria contínua: realize retrospectivas regulares para identificar áreas de melhoria e ajustar as práticas da equipe conforme necessário.

Conclusão:

O Go Horse, disfarçado de metodologia ágil, pode trazer uma série de problemas para a equipe e o projeto. É crucial identificar e evitar essa armadilha para garantir a entrega de valor de forma eficiente e a satisfação do cliente. Ao compreender os princípios ágeis, investir em treinamento e seguir práticas bem estabelecidas, a equipe pode evitar a abordagem Go Horse e aproveitar os benefícios das verdadeiras metodologias ágeis.

[default]

0 comentários

Enviar um comentário

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

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

[special-full-page]

Lives

Fique de olho nas lives

Fique de olho nas lives no meu canal do Youtube, no Canal .NET e nos Grupos do Facebook e Instagram.

Aceleradores

Existem diversas formas de viabilizar o suporte ao teu projeto. Seja com os treinamentos, consultoria, mentorias em grupo.