De manual para totalmente automatizado


Minha estratégia sobre quando e como automatizar coisas

Depois de ter passado por grandes e pequenas empresas, times de produto e times de projetos, bases de código gigantes e outras nem tanto, me sinto segura para dizer que: todo lugar tem rotinas manuais que poderiam ser feitas de maneira automática. E não tem para onde correr: todo processo que é automático provavelmente veio de algo manual do mundo real e esse processo foi criado pouco a pouco com diferentes tarefas e expectativas. Mas o que fazer então quando tem-se um grande número de passos manuais em um processo grande demais? Ou que não é prioridade?

Aqui que começo a minha estratégia para abordar problemas assim. Prontas?

Não pode ter preguiça

É isso mesmo que você leu: não pode ter preguiça. O engraçado é que “ser preguiçoso” é uma anedota comum quando se fala de desenvolvedores automatizando coisas (seria, supostamente, a preguiça de fazer o trabalho manual). Mas, para não dizer que não falei das flores, vamos entender o motivo pelo qual acho exatamente o contrário.

Para não ter trabalho você vai ter que ter trabalho!

Antes de ter tudo automatizado ou pelo menos um ambiente/plataforma que facilite a automação de tarefas você vai ter, inevitavelmente, trabalho. Minha dica é manter em mente onde você quer chegar. Eu sempre me imagino rodando um comando e tudo funcionando perfeitamente e de maneira muito rápida. Isso me ajuda a manter fazendo o que estou fazendo para automatizar algo.

Você vai precisar organizar-se (ser autônomo)

Também: se você quiser automatizar um processo, vai precisar ter uma documentação de tudo o que precisa ser feito e então planejar todos os passos necessários. Ter essa organização é fundamental para te ajudar a pensar sobre como implementar uma solução que seja boa. Muitas vezes os passos manuais também precisam ser repensados e processos de negócios adaptados. Mas, antes disso, é necessário dar uma boa olhada no processo.

Muitas coisas precisarão ser feitas na raça

Essa seção é só para você saber que muitas coisas chatas precisam ser feitas antes que as divertidas venham. Força, guerreira!

Mas também… respire fundo

Na gana de não fazer mais aquele trabalho manual chatíssimo eu caí em algumas armadilhas, como gastar muito tempo em automações que não eram uma prioridade pro meu time (embora depois eu tenha feito o meu trabalho 20x mais rápido :)) ou não pensar muito em como melhorar o processo primeiro ao invés de apenas a automação. Em ambos os casos, respirar fundo, pensar sobre o processo em si funciona fora dos códigos e tecnologias, é essencial.

With a little help from my friends

E, claro, lembrar que essa deve ser uma iniciativa que deve ser compartilhada pelo time se não fica o peso de apenas uma pessoa automatizar coisas, o que, além de inusto, é um problema em nível de negócio (bus factor).

Com vocês… step

Na metr tive a oportunidade de praticar tudo o que falei acima. Inclusive, foi a partir de um feedback do meu chefe onde percebi como é importante respirar fundo. :) Lá comecei uma iniciativa para automatizar o onboarding de clientes, que consiste em muitos passos. Todos os passos já estavam documentados em um README.md e envolvivam diferentes tarefas: configurar DNS, projeto no Sentry, infraestrutura, usuários…

Em nossa CLI interna, adicionei uma opção metr customer new e criei uma estrutura onde cada etapa teria uma função associada a ela. As que não tivessem uma automação, iriam apenas mostrar as instruções manuais - do jeitinho como estavam no README.md. Aos poucos eu e o time fomos automatizando pedacinhos do processo. Ainda não terminamos mas boa parte foi automatizada e já tivemos uma redução significativa no tempo que demorava para fazer o onboarding de um novo cliente. Ir de 6 horas para menos de 1 foi muito bom.

Usando o mesmo princípio, criei uma biblioteca open-source chamada step. Com ela você pode converter uma lista de passos em um Markdown para uma CLI funcional! Assim, você mantem os passos documentados e pode ir automatizando coisas aos poucos, no seu ritmo. Fique a vontade para abrir uma issue com dúvidas ou sugestões (e bugs também, claro).

Agradecimentos

Obrigada ao meu time na metr pelo feedback e apoio nesse projeto. Obrigada também ao Jesper Noehr por ter gentilmente cedido o projeto step no pip.

Translations


comments powered by Disqus