Qual a melhor metodologia de desenvolvimento de software?

Por dti digital|
Atualizado: Jul 2023 |
Publicado: Jul 2015

As organizações já vem investindo em diferentes metodologias e processos ao longo dos anos, sempre com a promessa de obter grandes benefícios: maior produtividade, maior previsibilidade, maior qualidade, mais entregas.

Ou seja: gerar valor para o negócio de maneira consistente e efetiva na velocidade necessária, capaz de cumprir às expectativas da organização. Entretanto, é possível definir qual a melhor metodologia de desenvolvimento de software?

qual a melhor metodologia de desenvolvimento
podcast os agilistas

Muitas vezes, a despeito de todo esforço realizado – e bem sabemos que esse esforço não é pequeno, uma vez que normalmente mudanças organizacionais profundas são exigidas – os resultados ficam muito aquém do esperado. A TI não escapa do rótulo de ser extremamente lenta e burocrática, incapaz de contribuir efetivamente para organização!

Isso tudo traz uma grande frustração, pois, como dito, o esforço financeiro e humano despendido nessas iniciativas é enorme. E a frustração aumenta ainda mais quando uma nova metodologia – uma nova promessa – aparece! Quer dizer então que fizemos até o momento foi em vão? Que devemos jogar tudo fora para que o novo e definitivo caminho seja finalmente percorrido?

Não! Tudo o que fizemos não deve ser jogado fora! Na verdade, tudo que fizemos deve ser revisto e reavaliado à luz de um novo paradigma, norteado pelos princípios e valores da abordagem Lean e das Metodologias Ágeis.

Ser lean – evitar desperdícios

Peguemos como exemplo um dos mais importantes princípios desses referenciais: o combate ao desperdício.

O combate ao desperdício significa rever todo o processo já existente, eliminando todas as atividades que não geram valor ou que realizamos de forma dispendiosa

O exemplo mais básico é o detalhamento excessivo de requisitos que são extremamente simples, aqueles claros para todos a partir de uma frase.  Por exemplo: uma tela de cadastro. Precisa de muito mais que isso?

Quer ver mais conteúdos como esse?

Repensando a metodologia tradicional de desenvolvimento de software

Mas, há exemplos muito mais perniciosos: a própria estruturação do processo, que muitas vezes opta pelo método tradicional de otimizar a produtividade de cada “especialidade” envolvida ao invés de priorizar o processo como um todo.

Imagine: não lhe soa natural ter um especialista em “Especificação de Requisitos” atuando da seguinte forma:

– Entrevistando um ou mais usuários.
– Escrevendo uma especificação detalhada.
– Enviando a especificação para os usuários aprovarem.
– Enquanto isso, já adiantando outras especificações ou participando de outras atividades?

Essa atuação é muito natural porque ela otimiza a vida de cada participante do processo, não é mesmo? Os usuários são acionados somente quando necessário, e o analista de requisitos consegue trabalhar na especificação com extrema produtividade após ter levantado os requisitos. Além disso, após o envio do documento para revisão, ele pode atuar em outras demandas em paralelo ao processo de aprovação! Não parece maravilhoso?

Otimização local ou de fluxo?

Mas, o que não se percebe nesse tipo de estruturação – e aí mora a armadilha –  é que a otimização da atividade de cada participante, ou seja, a “otimização local”, ocorre em detrimento da otimização do fluxo completo de geração de valor.

Na prática, acabamos por ter mais prejuízo: o processo não flui, é constantemente interrompido pela espera de intervenções de especialistas e acaba sofrendo retrabalhos! E o resultado final do processo – a geração de valor, o que realmente importa – é constantemente adiada ou desnecessariamente retrabalhada!

Ora, se o fluxo de geração de valor como um todo não está otimizado, a organização está, obviamente, desperdiçando grande parte do seu esforço.

Qual o sentido de otimizar as atividades locais se o mais importante – a otimização de valor para organização – não está sendo feito?

Como resolver o problema dessas metodologias de desenvolvimento?

Em vista disso, o que devemos fazer de diferente nos exemplos anteriores?

No primeiro caso, de desperdício, a resposta é simples e direta: eliminar o desperdício. Sim. Isso mesmo. Parar de detalhar requisitos que são desnecessários ou que já possuam exemplos é um bom começo.

No segundo caso, de otimização local, o processo deve ser reestruturado de maneira que as atividades sejam executadas visando a otimização do fluxo de geração de valor de forma sistêmica.

Afinal, qual a melhor metodologia de desenvolvimento de software? Podemos eleger uma única vencedora?

Essas ações não demandam jogar fora tudo que foi pensando anteriormente. Os processos tradicionais respeitam e utilizam uma enorme quantidade de boas práticas de gerenciamento e engenharia de software.Mas o pensamento ágil e Lean cria uma nova perspectiva sobre como usar essas práticas, fazendo com que as organizações consigam iniciar um ciclo virtuoso de geração de valor. E que a TI, finalmente, perca seu rótulo de ineficiência.

Ainda não sabe como eliminar o desperdício do seu projeto ou tem alguma dúvida sobre como aplicar os conceitos de Lean?

Converse com a gente. Nós podemos ajudar a sua empresa.

Por Jéssica Saliba e Marcelo Szuster

Quer saber mais?

Metodologia Ágil

Confira outros artigos

Veja outros artigos de Metodologia Ágil