O péssimo hábito de seguir boas práticas
No dia 18/08/2018, aconteceu o 1º Meetup da comunidade Sorocódigos em Sorocaba, no qual fui organizador e atualmente sou um dos administradores da comunidade.
Dentre as excelentes palestras apresentadas, uma me fez realizar uma profunda reflexão quanto ao desenvolvimento de software e seus paradigmas, além de me inspirar nesse post. Essa palestra foi apresentada pelo mestre Antonio Maniero sob o título “ A péssima prática que é seguir boas práticas”. Para quem não conhece o trabalho sensacional desenvolvido por ele, segue o link do facebook.
No início da carreira de TI (podem acontecer com outras áreas também), somos lapidados através de muito conhecimento e apesar disso, excluímos uma parte fundamental do processo de aprendizagem, que é a análise crítica do que estamos aprendendo, ou seja, não realizamos uma profunda reflexão do motivo que nos leva a utilizar uma determinada abordagem no desenvolvimento do sistema.
Um dos motivos desse acontecimento, é a inexperiência, o qual não nos deixa confiantes em realizar questionamentos mais profundos, e a aceitação dos motivos que nos apresentaram para sua utilização, é mais fácil.
Conforme aumentamos nossa experiência, somos cobrados em produzir códigos, utilizando sempre as boas práticas. Porém, o que você considera como sendo boa prática, pode ser uma má prática, simplesmente pelo fato que você não realizou uma análise crítica no processo de aprendizagem.
Não estou dizendo que é totalmente errado, muito pelo contrário, as boas práticas no desenvolvimento de software existem para nos ajudar no momento mais oportuno. Porém, a importância de seguir as boas práticas e tão grande, que se transforma em uma receita de bolo, e não diga que é mentira, pois é a mais pura verdade.
Atualmente vejo muitos projetos sendo iniciados com DDD, Design Pattern, CQRS entre outros conceitos e a principal pergunta que devemos fazer é:
- O projeto comporta essas práticas?
- Realmente é necessário em meu projeto?
Nesse momento, a análise crítica de tudo o que aprendemos nos ajuda. Quando entendermos o motivo da utilização de algum determinado Framework, modelagem ou conceito, saberemos responder com propriedade as perguntas acima.
As boas práticas muitas vezes é apresentada como uma “receita de bolo”, que devemos seguir para atingir o sucesso do nosso software, no entanto, é justamente com esta “receita” que devemos tomar cuidado. Veja um exemplo:
Pense em uma nutricionista que sempre prescreve a mesma dieta para todos os seus pacientes que têm o mesmo objetivo, por exemplo, perder peso. Ela não considera a rotina, a condição econômica e nem se o paciente possui algum problema que interfira no resultado, simplesmente entrega cópias da dieta padrão para emagrecimento. Nem sempre todos os pacientes terão sucesso, pois o organismo de cada pessoa é diferente e reage de uma forma. Além disso, muitos julgarão esta nutricionista como uma péssima profissional, certo?
Assim é o nosso trabalho diário, onde cada software tem seu objetivo, seu comportamento, suas regras e não podemos afirmar que as práticas adotadas que deram certo para o Sistema A, funcionem também para o Sistema B.
As boas práticas, no sentido mais nobre, parecem ser muito boas para nosso trabalho diário, e de fato é, desde que realmente faça necessário seu uso. Ela nos ajudam em problemas triviais, nos guiam pelos caminhos das pedras e mostram jeitos diferentes de resolver o mesmo problema.
Aplicar algum padrão no desenvolvimento sem analisar o contexto, seguindo convenção, boa prática ou porque é modinha, é um grande erro, que nós desenvolvedores não podemos cometer.
Não é raro encontrar empresas que possuem softwares, não tão bem projetados, por causa das decisões tomadas sem prévia análise, o que impacta diretamente na manutenção, custo e crescimento.
Também não é raro encontrar empresas, em que sistemas foram descartados durante o desenvolvimento, por causa de escolhas erradas, aumentando demasiadamente o custo de desenvolvimento ou por causa da complexidade exagerada acarretada por essas escolhas, dificultando as novas implementações.
Contexto é a palavra mais adequada para obter a resposta sobre a utilização das boas práticas em nossos projetos e não devemos, em hipótese nenhuma, esquece-la.
Lembre-se que você é o maior responsável pelo código desenvolvido, por isso, questione sempre todo conhecimento recebido e entenda o contexto em que esse conhecimento pode ser aplicado da melhor forma possível.
Com isso, você acaba se tornando uma pessoa sensata, não somente em sua profissional, mas em sua vida pessoal também.
Ate mais!