Por que e quando criar automações?

Ritchie
June 26, 2020
Guillaume Falourd
Guillaume Falourd
Back-end Developer

Zupper curioso, sempre procurando impactar da melhor forma as pessoas ao seu redor.

Automatizar consiste em confiar o máximo de tarefas aos sistemas informáticos e não aos recursos humanos. O objetivo é melhorar a produtividade, reduzir custos e permitir que as equipes liberem tempo para se concentrar em tarefas de valor agregado, como relacionamento com clientes ou monitoramento de projetos.

Além disso, automatizar ajuda as empresas a simplificar o progresso de tarefas complexas, reduzindo seus custos, agilizando o compartilhamento de informações, organizando os vários processos, monitorando o progresso em tempo real e alocando recursos relevantes. 

Os benefícios a longo prazo do uso de ferramentas de automação são maior eficiência, estabilidade e produtividade. As pequenas e médias empresas foram inicialmente excluídas da automação porque tinham muito pouco poder de compra para sistemas que eram muito caros. No entanto, a situação mudou bastante e hoje a maioria dos sistemas de automação está ao alcance de estruturas menores. 

A automação é algo que por si só permite, por exemplo, que tarefas repetitivas se executem sem esforço adicional.


Porque automatizar?

Mattias Geniar, levantou pontos muitos pertinentes em um artigo  Why do we automate?

Resumidamente, o autor destaca que automatizamos processos para:

  • Economizar tempo
  • Ganhar consistência
  • Ganhar velocidade, momento e velocidade
  • Agendar tarefas
  • Reduzir tarefas chatas ou menos divertidas
  • Manter administradores de sistemas e desenvolvedores felizes


Ou seja: automatizamos para facilitar nosso dia-a-dia.

Quando criar automações?

Quando automatizamos, é fácil comparar e medir o tempo gasto com o tempo ganho. Mas como avaliar se algo vale a pena ser automatizado?

A automação tem suas vantagens e desvantagens, dependendo do projeto, tempo, custo, qualidade e metodologia.

Avalie o contexto 

Para saber quando automatizar algo, é preciso entender que o valor de qualquer prática depende do seu contexto, e que existem boas práticas no contexto, mas não existem "boas práticas". 

Entender o contexto significa saber como cumprir os objetivos da melhor maneira possível, selecionando e aplicando os métodos, ferramentas e métodos apropriados.

Alguns mitos comuns sobre automação:

  • Você pode automatizar tudo
  • A automação sempre leva a uma melhor qualidade (de software)
  • Tarefas automatizadas sempre são melhores que as manuais
  • A automação traz um rápido retorno do investimento
  • Automatizar algo é fácil e resolve tudo imediatamente

É importante levar em consideração o quanto de esforço é feito em todas as pequenas coisas realizadas manualmente no dia a dia, é preciso pensar nisso ao considerar se vale ou não a pena automatizar uma tarefa.

Uma vez que o contexto ficou claro, existem algumas perguntas relevantes que podem ser feitas para saber se compensa automatizar a tarefa ou não.

Entenda qual é o objetivo

Devemos sempre buscar um nível mais alto de qualidade e analisar se a automação se encaixa na nossa rotina de trabalho.

Para isso, é aconselhável realizar uma análise de viabilidade em relação aos objetivos.

Os seguintes cenários são alguns em que provavelmente fará sentido automatizar:

  • toils ou dívida técnica para eliminar
  • As tarefas são demoradas
  • A tarefa é altamente complexa e de longo prazo

Quais tarefas devemos automatizar?


- Tarefas repetitivas

Dada a situação em que já temos uma tarefa definida que deve ser executada periodicamente, o esforço para executá-la manualmente se torna repetitivo, além de afastar o tempo de outras tarefas que não são automatizáveis e onde podemos fornecer mais valor.

Essas tarefas são altamente automatizáveis, sendo particularmente conveniente integrar-se a um modelo de CI/CD (pensando em testes, por exemplo). 

Isso agrega valor em termos de custo e tempo para executar outras tarefas, já que os scripts podem ser executados sem supervisão durante a execução de outras atividades.


 - Tarefas de alto risco

Essas tarefas foram definidas como críticas e de alta prioridade, o que significa se falharem, afetam bastante as partes interessadas.

A automação dessas tarefas pode ajudar a encontrar (quase imediatamente quando for executado) os incidentes e permitem iniciar rapidamente as ações que devem ser executadas para solucionar o problema. 


- Tarefas complexas ou demoradas

Pode haver tarefas complexas para serem reproduzidas manualmente, portanto, se levarmos para um script, será mais fácil executá-las de maneira automatizada. Podemos reduzir a probabilidade de erro automatizando.

Escolhendo a ferramenta ideal

Agora que sabemos o que automatizar, podemos selecionar a ferramenta que vamos usar. Essa atividade pode ser uma das mais complexas a serem analisadas inicialmente, dado o número de ferramentas disponíveis, mas a decisão deve considerar o projeto, orçamento, conhecimento e experiência dos envolvidos.

Existem várias ferramentas de código aberto, comerciais e personalizadas que variam em suas limitações e possibilidades. Para selecionar a ferramenta correta, você deve ter clareza sobre os requisitos que devem ser atendidos para continuar a análise de custo-benefício.

Automatizando com o Ritchie

O Ritchie, por exemplo, é uma ferramenta de automação open source que permite criar, armazenar e compartilhar automações através de comandos simples executados no terminal (Command Line Interface).

Essas automações, chamadas de fórmulas no contexto da ferramenta, podem ser escritas em qualquer linguagens de programação e o próprio Ritchie permite a sua execução no Windows, MacOS e Linux. Isso significa que você consegue reunir em um lugar só automações manipulando várias ferramentas do mercado. 

Essa ferramenta está disponível em 2 versões: Single (para usuários autônomos) e Team (para usuários corporativos). Assim, é possível criar automações, compartilhar elas com a comunidade ou especificamente com seu time. 


Na prática 

Vamos pensar no seguinte cenário para automatizar:

A criação de um projeto Spring Boot em Java. Imaginando que o contexto da empresa é de padronizar a criação desses projetos para já vir com dependências e nomenclatura iguais para todos os repositórios da empresa.

Geralmente, a própria IDE (Eclipse ou IntelliJ por exemplo) ajuda nessa criação e o próprio desenvolvedor precisa escolher as configurações que ele deseja via interface da IDE.

Cada desenvolvedor pode fazer isso de maneira diferente e pode levar bastante tempo quando tem padrões a seguir.

Com o Ritchie é possível fazer isso em alguns segundos respeitando os padrões configurados na automação dessa tarefa.

Veja a execução da fórmula que automatiza essa tarefa usando o Ritchie:

Após o usuário executar o comando da fórmula que deseja utilizar, o Ritchie passa, linha a linha, a perguntar os parâmetros específicos (Tipo do projeto, Language, Versão do Spring Boot, etc) necessários para executar a ação desejada.

Também é possível executar comandos usando STDIN para automatizar o uso de fórmulas do Ritchie em rotinas resolvendo tarefas automaticamente.

Entenda mais sobre o Ritchie e como usar

Ainda tem alguma dúvida no assunto? Deixa pra gente nos comentários! Sua opinião é muito importante pra nossa comunidade. 

O que você achou deste conteúdo?
Open Code Newsletter
Seu cadastro foi efetuado com sucesso! Enviaremos as novidades no seu email.
Oops! Something went wrong while submitting the form.