Automatizzare — Come

Carlo Denaro
3 min readApr 22, 2019

--

Dopo aver categorizzato le attività automatizzabili e aver compreso il motivo, il perchè bisogna automatizzare, possiamo cercare di immaginare come procedere nell’automatizzazione di attività ripetitive.

Ho una attività che devo automatizzare

Dunque come procedi? Bisogna seguire un flow ben ordinato per evitare di sovra-ingegnerizzare il processo.

Come mai ci poniamo questo problema? È sempre una questione di RoI (ritorno di investimento). Se l’effort per automatizzare l’ultimo 10% del processo è molto alto (magari perchè é complesso), vale la pena automatizzarlo? Direi no. Perchè decade uno dei motivi che ci porta al voler automatizzare, ovvero il risparmio di tempo/soldi.

Partiamo da una storia vera.

Nella mia azienda attuale (lastminute.com) veniva usato un provider esterno per servire advertising. Tutte le applicazioni aziendali che servivano contenuti al pubblico utilizzavano questo provider. Quando si è posta la necessità di voler cambiare provider potete ben immaginare cosa vuol dire sdradicare quest’ultimo da tutte le applicazioni. Da li una intuizione geniale corale della forza lavoro aziendale, creare un wrapper, in casa, che nascondesse al suo interno l’implementazione di uno o più provider esterni.

Geniale! Eureka!

La trovata geniale era che, le applicazioni usando questo singolo servizio non avrebbero più dovuto cambiare provider (tutte insieme) ma sarebbe stato il provider centralizzato interno a cambiare per loro, e in maniera globale e unica.

Effettuare il porting di configurazioni dal vecchio provider al nuovo richiedeva un lavoro manuale enorme, disumano. Bisognava fare materialmente cerca&sostituisci dei div e delle configurazioni dal vecchio al nuovo contesto, ma bisognava controllarli e testarli manualmente. Esistevano diverse eccezioni e diversi casi. Non era un mero cerca&sostituisci.

Quindi la persona adibita al recupero delle informazioni (non tecnica) non era quella che avrebbe materialmente effettuato il transpiling da un provider a un altro.

Voleva dire impegnare più persone e sopratutto voleva dire impegnare un tecnico nell’eseguire task manuali ripetitivi (col rischio di sbagliare).

E li entro in scena io, dopo aver fatto un paio di volte manualmente il transpiling e aver mappato tutte le eccezioni, mi sono creato una web app locale (e una cli) per effettuare in sicurezza il transpiling.
Dopo una normale fase di testing e di controllo manuale con il responsabile dei dati, il tool venne adottato internamente al team IT per offrire il servizio di transpiling di configurazioni in maniera precisa a puntuale.

All’inizio il servizio effettuava un mero transpiling di configurazioni.
Successivamente venne integrato il generatore di query MySQL da passare ai DBA tramite apposito task nel formato gradito a loro.
Infine dopo parecchi mesi di onorato servizio, il tool ha ricevuto la giusta attenzione dal business che ha ritenuto profittevole evolverlo in maniera seria. Un team dedicato ha costruito un set di API Rest e ha connesso il generatore di query al database di produzione (con opportune validazioni, check sicurezza, sistemi di login, etc).
Alla fine della fiera, venne dato accesso al responsabile (non IT) delle configurazioni e dopo un training di qualche giorno, suddetto collega era assolutamente autonomo nel transpilare o caricare nuove configurazioni. Senza l’ausilio di un tecnico IT.

Cosa portiamo a casa?

A casa portiamo che, non è stato creato al momento zero un tool completo che era in grado di far tutto. Il tool partito da una draft brutta per uso personale è stato evoluto con iterazioni progressive valutando di volta in volta il RoI che l’evolutiva garantiva.

Di conseguenza il giusto flow per automatizzare una attività potrebbe essere:

  1. individua delle sotto-attività semplici che puoi automatizzare (sicuramente sarà più di una)
  2. aggrega più sotto-attività in macro utili (potresti avere diversi scenari, avere dei mini-task ti permette di aggregarli in modo diverso e creativo)
  3. valuta se evolvere il processo di automazione, chiediti sempre se conviene e se garantisce un RoI che giustifica le ore di lavoro che impiegni nel cercare di automatizzare un determinato processo

Adesso che sappiamo cosa e come effettuare il processo di automatizzazione e sopratutto perchè lo facciamo, possiamo chiederci, quando automatizzare?

--

--