Você sabe quanto essa escolha pode custar para sua empresa? Ou entende as implicações que isso vão ter no futuro do seu produto?

É muito fácil cairmos nessa armadilha e escolhermos cegamente um dos lados, e independente de qual lado escolher, extremismos são sempre ruins!

Vamos entender o que essa escolha, ou a falta dela, acarreta para o desenvolvimento de software.

Velocidade

Independente do tamanho da empresa, há uma tendência a optar por velocidade e deixar a qualidade um pouco de lado. Boas práticas de desenvolvimento de software são vistos com maus olhos por algumas pessoas, afinal, por quê usar 10 dias para trabalhar em uma feature nova se podemos fazer a "mesma" coisa em 6 dias, e fazer o sistema "funcionar"?

Não entendam mal, é importante ter e atingir deadlines! Mas manter as boas práticas na hora de programar também é importante. Vamos ver um exemplo:

  • Sua empresa decide não utilizar testes unitários de código, já que a percepção é que isso aumenta o tempo de desenvolvimento, e consequentemente o custo, sem entregar valor direto ao usuário final. Tendo optado pela velocidade, seu time entrega diversas novas features nos primeiros 6 meses, mas de repente as entregas começam a demorar, a cada nova versão parece que algo que antes funcionava, deixou de funcionar. Os desenvolvedores ficam com receio de fazer alterações no código-fonte do programa, com medo de que uma alteração no lugar errado possa trazer efeitos colaterais à todo o sistema. A escolha cega por velocidade acabou desacelerando o desenvolvimento do seu sistema, e em pouco tempo você pode se ver com um sistema legado em mãos, tendo poucas opções além de reescreve-lo. O tempo e dinheiro economizados inicialmente não valeram de nada, e agora os gastos são ordens de magnitude maiores.

Qualidade

Mas calma! Não vamos ir totalmente para o lado da qualidade. Se lembre do que falamos sobre extremismos.

A área de desenvolvimento de software tem mais boas práticas do que podemos imaginar, e até mesmo o que hoje é considerado uma boa prática, amanhã deixa de ser, e isso é normal, essa área evolui muito rapidamente.

Vamos ver outro exemplo:

  • A empresa X está trabalhando em um novo sistema, que trará diversas features que os clientes irão adorar. O sistema é complexo, e em suas funcionalidades há casos que fogem da regra. O time adota diversas técnicas, princípios de desenvolvimento e ferramentas para tentar garantir que as regras e suas exceções do sistema sejam atendidas. Por terem escolhido mais opções do que o necessário, o tempo de desenvolvimento do sistema se extende em vários meses. Os desenvolvedores trabalham criando abstrações complexas para atender e prever todas as possibilidades de uso. O sistema começa a crescer e ficar cada vez mais complexo, e poucos desenvolvedores tem o conhecimento das regras do sistema para fazer as alterações necessárias, em pouco tempo atrapalhando e atrasando a evolução do produto.

A solução

Como na maioria das situações na vida, a solução é achar um equilíbrio entre qualidade e velocidade, e mesmo assim há situações que fogem a regra, por exemplo: o desenvolvimento do software que controla um novo avião comercial, onde a qualidade é extremamente rigorosa, devido a criticidade do sistema, qualquer falha pode ser catastrófica.

No final das contas cada caso deve ser avaliado com muito cuidado, e a única forma de encontrar o equilíbrio certo entre qualidade e velocidade, é a experiência!

Se você precisa de um time altamente experiênte para tirar seu próximo projeto do papel, entra em contato conosco!

E não esquece de nos seguir no instagram @boomersoficial para ficar por dentro de tudo que rola aqui!