O que é TOIL? Quais suas características? Quais são os passos para a redução?

Marcelo Ortiz
6 min readFeb 21, 2022

--

Sísifo: mortal da mitologia grega que foi condenado pelos Deuses do Olimpo a sentença de empurrar uma grande pedra de mármore até o topo da montanha só para, frustado, vê-la rolar novamente montanha abaixo

Seguindo com a série de conceitos básicos do SRE, chegou a vez de entendermos o que é toil.

A definição de Vivek Rau sobre toil é simples e direta ao ponto:

"Toil é um tipo de trabalho vinculado à execução de um serviço de produção que tende a ser manual, repetitivo, automatizável, tático, desprovido de valor duradouro e que se dimensiona linearmente à medida que o serviço cresce."

Muito parecido com a história de Sísifo, não?! Mas Antes de darmos alguns exemplos, vamos entender melhor as características do toil:

  • Manual: depende de uma pessoa para executar algo, como um script;
  • Repetitiva: executa a mesma rotina repetitivamente;
  • Automatizável: tarefas que uma máquina pode executar tão bem quanto um ser humano;
  • Tático: tarefas orientadas por interrupções e reativas;
  • Desprovido de valor: quando o serviço permanece no mesmo estado após executar a tarefa;
  • Linear: é o trabalho envolvido em uma tarefa que cresce em escala linear a medida que o tamanho do serviço aumenta, ou o volume de tráfego ou o volume de usuários.

Se a tarefa se encaixa em pelo menos em uma dessas características ela é considerada um toil (que a literatura de SRE em português comumente traduz para "trabalho penoso").

Alguns exemplos clássicos de toil são: sabe aquele script que você usa todos os dias para corrigir dados na base de dados? Então, é um toil (manual e repetitiva). Ou aquele procedimento documentado (conecte em um servidor X, execute o script Y)? Também é um toil (automatizável). Ou aquela requisição que o time do Departamento Fiscal abre todo o mês para extração de dados para o fechamento fiscal? Pois é, toil (desprovido de valor). E por ai vai…

Segundo o relatório "SRE Report 2021" da Catchpoint, em média 25% do tempo do time de SRE foi gasto na execução de toils 2021. É menor que em 2020, que estava na casa dos 40%, mas ainda é um tempo considerável.

Média de toil em 2020 e 2021

Lembrem-se, uma das principais diretrizes do SRE é a meta de manter o trabalho operacional (ou seja, toil) abaixo dos 50% do tempo de cada SRE. No mínimo 50% do tempo de cada SRE deve ser gasto em trabalho de engenharia de melhoria dos serviços ou de redução de toil.

Mas por que o toil é tão ruim? Quem já trabalhou em Operação de TI tem essa resposta na ponta da lingua… por vários motivos:

  • Estagnação da carreira: muitas tarefas repetitivas e sem valor sobrecarregam as pessoas, eliminando o tempo para trabalhar em melhorias e para o desenvolvimento das habilidades;
  • Baixo moral: tédio, insatisfação, esgotamento… quem gosta de executar os mesmos scripts todos os dias?
  • Progresso lento: muito trabalho em toil significa menos velocidade para trabalhar em melhorias, dificultando que o time de SRE entregue valor consistente para a organização;
  • Gera precedentes: o time de SRE assumindo demasiadamente as tarefas penosas abre a porteira para o time de DEV realizar entregas de soluções baseadas em tarefas penosas (aquelas que só funcionam com alguém apertando os botões todos os dias);
  • Promovem atritos: os melhores engenheiros não estão dispostos a passar maior parte do tempo executando tarefas de baixo valor;
  • Qualidade ruim: tarefas manuais podem resultar em erros humanos, trazendo ainda mais problemas para a reputação e sobrecarregando ainda mais o time de SRE.

“Se você não tiver cuidado, o nível de toil em uma organização pode aumentar a um ponto em que a organização não terá a capacidade necessária para impedí-lo” (Damon Edwards, Rundeck).

Em contrapartida, reduzindo o toil o time terá maior tempo para participar em projetos que realmente entrega valor para a organização, aumentará o orgulho e moral, aumentará a produtividade com a redução de interrupções e com a padronização dos processos e diminui a interrupção dos serviços por erros humanos.

Então tudo deve ser automatizado? NÃO! O time de SRE sempre terá que executar uma % do seu tempo em trabalhos manuais. Existem 2 caraterísticas básicas que devem ser levadas em consideração para tomar a decisão de automatizar ou não uma tarefa penosa:

A primeira é a eficiência. É importante entender se a tarefa manual está eficiente o bastante para ser automatizada. Automatizar ineficiência só irá colaborar para a inserção de mais desperdício na execução do trabalho.

A segunda é o tempo que será gasto para eliminar o toil, ou seja, o tempo salvo de execução da tarefa penosa deve ser, no mínimo, proporcional ao tempo investido no desenvolvimento da automação e no posterior tempo de manutenção.

Então, se a tarefa já estiver eficiência o bastante e o tempo salvo na automação compensar o tempo necessário para desenvolver e manter a automação, essa tarefa é uma forte candidata para ser automatizada.

Uma vez decidido automatizar uma tarefa penosa, lembre-se que reduzir toil requer tempo de engenharia, que será a escolha de:

  • Criação de automação externa, que são scripts ou ferrametas de automação do lado de fora do serviço;
  • Criação de automação interna, que é a automação entregue como parte do serviço (self atendimento, por exemplo);
  • Aprimoramento do serviço, que são as melhorias necessárias para eliminar a necessidade de intervenção.

Aqui temos um ponto muito importante: é preciso ter um workflow e ferramentas de automação acopladas no stack de TI. Sem isso a redução de toil será um trabalho de muito heroísmo e pouco resultado.

E para finalizar, abaixo está uma sugestão dos passos para redução do toil:

1- Identifique e faça a medição do toil (para medir escolha uma medida apropriada como o tempo de execução de uma tarefa, quantidade de pessoas envolvidas, quantidade de tickets que exigem a execução daquela tarefa manual…);

2- Analise o custo benefício, principalmente se o tempo salvo é suficiente para investir nessa automação;

3- Analise o risco. A automação pode salvar o esforço humano mas pode trazer consequências inapropriadas como instabilidade no serviço);

4- Programe entregas incrementais, tenha o controle do backlog de toil, dos itens em andamento e das entregas;

5- Ao entregar a automação, continue a medição para entender a efetividade da solução entregue;

6- E faça a melhoria contínua, redução de toil não é um projeto, é uma atividade contínua do time de SRE.

Toil é algo que corrói o dia a dia dos times de SRE. Sem o devido controle ele pode tomar conta da maior parte do tempo da equipe trazendo um trabalho bastante massante e sem visibilidade, baixando a moral do time. Invista tempo e dinheiro (com plataformas e workflow de automação) para eliminar o toil e aumente a moral do time e a eficiência da sua operação de TI.

Siga a série de conceitos básicos de SRE:

Para quem quer buscar mais informações, deixo alguns livros e sites interessantes sobre SRE:

Obrigado e até a próxima.

Marcelo Ortiz
Engenheiro da Computação, mestrando em Ciências da Computação.

--

--