Metodologia agile x software craftsmanship: qual adotar?

Quando o assunto é desenvolvimento de software, todos os profissionais possuem opiniões muito fortes sobre quais métodos funcionam e quais são falhos. Porém, mesmo com essa divergência de ideias, uma coisa é certa: a metodologia agile se tornou a norma.

Seja em negócios de tecnologia ou de qualquer outro segmento, essa forma de trabalho se popularizou por uma série de motivos. Dentre eles, destaca-se o aumento de produtividade, a integração dos times, a melhoria da comunicação e até mesmo a agilidade de respostas e resolução de imprevistos.

Mas, nesse cenário, surge a pergunta: e a busca incessante pela qualidade, algo indispensável para os softwares? Por onde fica?

É claro que a metodologia agile busca bons resultados. Mas ao se afastar de questões mais técnicas para focar em outros processos, é comum que alguns deslizes sejam feitos.

E como reagir a esse contexto? Felizmente, essa não é uma pergunta sem resposta. 

Isso porque profissionais do mundo de software já perceberam esse gap e desenvolveram mindsets como o software craftsmanship, que busca resgatar a essência do que significa codificar — e como fazer isso da melhor forma possível. E é justamente isso que você verá aqui.

A revolução agile transformou o mercado de trabalho

A metodologia agile busca um trabalho baseado em ciclos de feedbacks que são curtos e eficientes. 

Dessa forma, se torna possível detectar problemas de maneira mais rápida. Assim, garante-se inspeções e adaptações práticas, além de trazer novidades sempre que necessário e sem perder tempo para se adaptar às tendências e transformações do mercado.

Tudo isso, é claro, é muito positivo. Não é à toa que esse estilo de trabalho mudou a forma com que a indústria em geral se comporta, sendo introduzida aos mais variados segmentos. 

No desenvolvimento de software, por exemplo, essa estratégia solucionou grandes dificuldades.

Ao invés de sofrer com o ritmo acelerado que muitas vezes gerava gastos absurdos, com o ágil é possível implementar mudanças de forma mais prática. Ao invés de ter grandes documentos, burocracias e etapas de trabalho, se tornou possível ter softwares em uso em pouco tempo.

Ou seja: a metodologia ágil evolui a forma de trabalho, inclusive no mundo da tecnologia. Atualmente, porém, ela também sofre com um grande problema: códigos pouco eficientes, que não são limpos e muito menos de qualidade.

As falhas geradas pela metodologia agile

É inegável as vantagens e transformações positivas que a metodologia agile gerou. Porém, esse estilo de trabalho não conseguiu estimular a qualidade, principalmente no que diz respeito ao desenvolvimento de software.

Apesar de todas as mudanças proporcionadas, a verdade é que, no momento de testes e entregas, vários deles ainda possuíam bugs e outros tipos de problemas. Mesmo com os profissionais, agora, se comunicando melhor, eles continuam sofrendo para aplicar questões técnicas de forma eficaz. 

Ou seja: as falhas antigas, relacionadas a skills, motivação, treinamento e expertise, por exemplo, continuaram afetando seus trabalhos.

Nesse cenário, especialistas como o Sandro Mancuso, co-fundador da Codurance, passaram a se reunir para discutir como continuar aproveitando as vantagens e inovações da metodologia agile, mas de forma a resgatar e lapidar aspectos mais técnicos do desenvolvimento.

Foi assim que o software craftsmanship foi elaborado.

Software craftsmanship: resgatando aspectos técnicos

Mais do que um simples método de trabalho, o software craftsmanship se apresenta como uma ideologia que não só guia a atuação dos desenvolvedores como também busca resgatar a qualidade técnica desta atividade por meio de ações que são, ou ao menos deveriam ser, padrão nesse universo.

Ter como objetivo sempre se superar, se importar verdadeiramente com o que está sendo feito, ser profissional, ajudar os parceiros a alcançarem seus objetivos e potenciais, aprender e ensinar em uma comunidade de desenvolvedores engajados... Tudo isso faz parte dessa experiência.

Ou seja: o software craftsmanship busca trazer mais qualidade e cuidado com os processos técnicos do desenvolvimento de software sem comprometer os lucros e timeline dos processos. Ao mesmo tempo, aposta na formação de uma comunidade que ajuda nessa troca de ideias. 

Basicamente, o software craftsmanship é um complemento ao método ágil porque amplia as fronteiras da qualidade levando em consideração a importância da atualização constante de conhecimento. Os profissionais de desenvolvimento são considerados artesãos e, por isso, precisam dominar seu ofício. Mas não limitado a isso, pois são 4 pilares que guiam esse mindset e determinam como é possível alcançar excelência.

De forma resumida, não basta um software em funcionamento, mas sim um de excelente qualidade. Para isso, é importante responder às mudanças agregando valor de forma constante e crescente.

E tudo isso não se faz sozinho ou com interações superficiais, o software craftsmanship valoriza o senso de comunidade e parcerias verdadeiramente produtivas com os clientes para se alcançar um projeto de maestria.

A London Software Craftsmanship Community (LSCC), por exemplo, foi fundada pelo Sandro Mancuso e Mashooq Badar, em 2009, e, até hoje, é a maior e mais ativa do mundo.

Em outro conteúdo de nosso site, falamos mais sobre a busca pela qualidade, a importância das comunidades e a essência do software craftsmanship. Leia agora!

Qualidade, comunidades e software craftsmanship: entenda como a Codurance une esses elementos. Ver mais.

Agile x craftsmanship: uma colaboração poderosa

Um grande erro que as pessoas cometem é enxergar o software craftsmanship como um mindset que vai excluir ou substituir a metodologia agile. Esse não é o caso. Na verdade, essa ideologia foi desenvolvida com o objetivo de complementar o ágil, garantindo que se aproveite o melhor dos dois mundos.

Veja só: o agile, em seu formato atual, oferece uma forma assertiva de trabalho para os negócios. 

Com atividades que focam no entendimento completo das atividades e que as priorizam e as organizam por valor, fica mais fácil reduzir a burocracia, desperdício (de tempo, talento, recursos e por aí vai) e ainda empoderar as pessoas. Assim, as empresas se tornam aptas para reagir rapidamente.

Em adição a isso, o software craftsmanship foca no profissionalismo do desenvolvimento de software. 

Essa ideologia promove a melhoria de práticas técnicas. Assim, faz com que os profissionais fiquem cada vez melhor na arte de criar códigos bons, limpos e inovadores, tudo isso enquanto entendem o verdadeiro e completo impacto de sua atuação.

O agile ajuda a fazer a coisa certa; o software craftsmanship permite fazer essa coisa do modo correto.

Mais informações para evoluir seu desenvolvimento de software. Ver blog.