Você está na página 1de 2

Quem tem medo da produção?

Por Wellidy Almeida

Você já ouviu dizer “mas na máquina do desenvolvedor funciona!” ou já passou por


aquela correria horas antes do site ir para produção ou já ouviu alguém dizer que ir para
produção é a morte? Não dá para entender por que o momento onde você deveria estar feliz
por terminar e entregar um trabalho são tão assustadores e evitados como se fosse o dia da
morte. Talvez seja porque as pessoas têm medo de que o cliente vá pedir mudanças e agora
que está em produção o custo de mudar será muito alto. Também pode ser porque você que
conhece o código-fonte sabe que vai dar trabalho entender aquelas gambiarras. Ou você tem
medo de colocar em produção, pois o hardware e software serão diferentes do ambiente de
desenvolvimento. Podem existir outras razões, mas acredito que muitos concordam que as
principais são o medo de mudanças, o custo de fazê-las, a falta de confiança no código e as
incertezas por não ter pensando antes em como seria o ambiente de produção.

E estar em produção é um estado não-natural que deveríamos buscar atingir o quanto


antes. Acredito que não sou o único que não gosta de investir e não ver o retorno ou demorar
em vê-lo. Lembra daquela loja que você pagou e demoraram a entregar? A ansiedade que
você sentiu esperando ficar pronto? Imagine o cliente que lhe contratou, somente depois de
vários meses é que ele verá o sonho que você traduziu para um sistema. Não estar em
produção é estar gastando dinheiro sem fazer dinheiro. Procure junto com o cliente definir o
menor e mais valioso conjunto de funcionalidades e que pode ser entregue rapidamente,
talvez em uma ou duas semanas. E já coloque em produção. Não tenha medo. Você acha que o
cliente não ficará satisfeito por tão rápido já ver seu investimento retornando? Comemore
esta entrega. Festeje! E continue desenvolvendo em iterações curtas. E se ele não gostar de
algo que foi feito?

Sim, ele provavelmente começará a pedir mudanças no que você entregou. Não tenha
medo. Mudança é a única constante. O sistema é dele, por que ele não pode pedir que fique
de forma que lhe atenda? A palavra-chave é feedback. Quanto antes você for para produção,
além do retorno do investimento rápido proporcionado, você terá o feedback do cliente lhe
mostrando como melhorar o sistema e os possíveis erros existentes. E, isto será diluído em
cada iteração o que é melhor do que tudo de uma única vez, depois de meses de trabalho. É
como dirigir, onde se fazem pequenas correções ao invés de virar bruscamente.

E estes erros e mudanças sairão muito mais barato quanto mais cedo eles forem
detectados e quanto menor seja a quantidade de código-fonte criado. Quem nunca viu aquela
curva exponencial de custo de mudanças pelo ciclo de desenvolvimento? Você não quer
economizar o dinheiro que o cliente lhe deu e ter maior lucro? Agora, se você não confia na
arquitetura escolhida, na tecnologia empregada e nas pessoas que desenvolvem, sinto muito,
mas nem entregando o quanto antes fará com que os custos diminuam. Outra palavra-chave:
simplicidade. Atenda aos requisitos do sistema da melhor forma e mais simples possível. E
certifique-se de que o sistema funciona, com testes. E testes são bons e necessários, certo?
Então tenha muitos deles, o tempo todo. Procure desenvolver orientado a testes (e
automatizados, claro), ou seja, use Test Driven Development (TDD).
Não, não dá. Fazendo o sistema confiável, com maior qualidade e entregando
iterativamente corro o risco do cliente falar: “já está bom assim. Pode parar de desenvolver.”
Com certeza isso pode ocorrer seguindo esta estratégia. Mas, você não reclama que está
faltando tempo para atender bem a todos os outros clientes e tem aquele medo de que se
fecharem mais algum contrato você não terá equipe suficiente para cumprir o prazo? Então,
conquiste novos clientes e atenda melhor os que já possui com o tempo que sobrará. Você
deve estar imaginando como fica o contrato. Você tem razão, nesta estratégia ele tem que ser
um pouco diferente, pois você terá que cobrar do cliente somente o que foi desenvolvido. Mas
falarei do contrato em outro artigo.

Parece difícil trabalhar desta forma? Desenvolver iterativamente, com proximidade do


cliente, com testes automatizados e simplicidade é muito diferente do que você faz hoje?
Inove! Experimente! E comemore cada pequena conquista.