3 estratégias que vão mudar sua forma de desenvolver software

3 estratégias que vão mudar sua forma de desenvolver software

Imagine a seguinte situação. Você está sendo operado do coração em um hospital e, de repente, ouve o médico dizer que esqueceu de ligar o monitor cardíaco. Ah, ele também acabou de perceber que a sala de cirurgia não tem respirador…

Ninguém em sã consciência admitiria um erro desses. Afinal, esse tipo de desleixo profissional pode custar a vida do paciente. Mas, guardada as devidas proporções, é exatamente isso que acontece — com muita frequência — no mercado de TI.

Eu gosto de pensar no software como se fosse um organismo vivo. Então. quando eu preciso fazer uma alteração, tenho que fazer isso sem matá-lo. Eu chamo este conceito de “Live Software”.

Na minha carreira, percebi que, para manter meu software saudável, é preciso adotar uma série de cuidados para que ele esteja sempre consistente e íntegro.

É esta condição que permite desenvolver o sistema, enquanto ele serve ao seu propósito. Caso contrário, o software vai perdendo qualidade, acumulando erros até que ele para de atender ao usuário e morre.

Neste artigo, quero compartilhar com você três estratégias que vão mudar a sua forma de programar e vão ajudar a manter seu software forte e livre do risco de morte.

#1 Programe como um chef de cozinha

Em uma cozinha profissional, antes de começar a preparar os pratos, o chef e sua equipe fazem o mise em place. Trata-se de um termo francês que significa “colocado no lugar” ou “posto em ordem”.

É nesse momento que eles vão separar e preparar todos os ingredientes e instrumentos necessários para fazer os pratos. Assim, na hora de cozinhar, tudo já está à mão e a equipe não precisa ficar correndo de um lado para o outro atrás dos recursos.

No desenvolvimento de software também tem que funcionar assim. O setup é fundamental. Tudo precisa estar ao alcance de apenas um comando.

Se entra alguém novo na equipe, não faz sentido ele passar dias ou até semanas tentando ajustar a máquina para começar a contribuir com o time. É fundamental ter organização para que o ambiente desenvolvimento seja rapidamente preparado com apenas um comando.

O mesmo pensamento se aplica às mudanças feitas no código. Tudo tem de ser automaticamente testável.

É um grande desperdício de energia e dinheiro ficar manualmente testando se alguma coisa quebrou com a alteração.

Por fim, quando você termina uma funcionalidade e precisa entregar para o cliente, nada de copiar arquivos em pendrive e sair correndo para a sala dos servidores, se logar como root, tirar o sistema do ar e atualizar a nova versão.

Com um comando você precisa ser capaz de lançar uma release para o cliente sem intervenção manual. Se você quer ser visto como um profissional de alto nível, tem que trabalhar com métodos de alto nível.

#2 Automação com um toque humano

Um dos maiores trunfos da tecnologia é poupar o tempo que gastamos em atividades repetitivas. Por isso, não consigo entender que programadores — que trabalham com tecnologia todo santo dia — não aproveitem essas possibilidades de automatização.

Não estou dizendo que navegação manual no sistema seja desnecessária. Ela é fundamental para a criação do design de interação e a experiência do usuário. Mas, uma vez definido o fluxo de uso, o computador deve entrar em cena!

Os testes para garantir o comportamento do sistema devem ser automatizados.

Quanto mais fácil for adicionar um teste automático no seu projeto, mais fácil vai ser adicionar funcionalidades ou mudar o seu comportamento. A execução de milhares de testes precisa ser rápida e sempre ao alcance de um comando.

#3 Pronto é quando está no ar!

Uma das maiores ciladas no desenvolvimento de software é a síndrome do funciona na minha máquina. É aquela história do “tá pronto! Só falta colocar no ar”.

É fundamental que você conclua cada tarefa entregando o que foi desenvolvido para o cliente. Concluir uma tarefa também envolve o deploy da aplicação para que o cliente possa usá-la.

Só assim você vai conseguir receber o feedback para saber se está ou não no caminho correto. Até alguém poder usar o que você desenvolveu, você está no escuro. Tudo está no campo da crença — o cliente acredita que foi claro na demanda e você acredita que entendeu tudo perfeitamente.

Por isso, até que você consiga o feedback do cliente sobre o uso do que foi desenvolvido, nada está pronto.

Quanto mais rápido o cliente obtiver o retorno sobre o investimento feito, mais confiante ele estará para continuar investindo no projeto. Essa é a chave para estabelecer um ciclo de feedback positivo.

A arma secreta

Na minha jornada, descobri que há um elemento-chave que conecta essas três estratégias: o Python.

A linguagem é, para mim, o Jarvis do Homem de Ferro. Trata-se a tecnologia que permite ao Tony Stark materializar todas as suas ideias mirabolantes em um curto espaço de tempo — e de uma forma até divertida.

Essa sensação de ter as ferramentas à sua disposição para fazer o que você se propõe, é exatamente o que eu sinto com Python e todo o ecossistema da linguagem.

Python vem com baterias inclusas — há uma imensidão de bibliotecas disponíveis que te permitem fazer praticamente tudo que você imaginar. E não para por aí. A linguagem tem uma comunidade ativa e parceira que dá vida a um ecossistema que gera valor para todos os envolvidos.

Estamos diante de uma linguagem feito por programadores e para programadores.

Essas qualidades fazem com que a adoção da linguagem só cresça a cada ano e seja usada por empresas como Industry of Light and Magic, Disney e Pixar.

Além disso, quando falamos de desenvolvimento web, temos vários frameworks escritos em Python para você desenvolver grandes aplicações web. O mais popular e meu favorito é o Django.

Python e Django é uma combinação incrível para o desenvolvimento eficaz de aplicações web.