U julu 2023. javio mi se klijent s malim, ali veoma poznatim problemom.

Excel fajl se ažurirao svakog mjeseca. Svaku novu verziju trebalo je preformatirati u tačno određen ciljni format. Klijent je tražio VBA ili Python stručnjaka koji bi taj korak automatizirao.

Ovakav zadatak je lako potcijeniti. Zvuči kao „formatiraj tabelu“, ali ispravno rješenje prvo mora odgovoriti na važnije pitanje:

Šta je samo vizuelni prikaz, šta je transformacija podataka, a koja pravila se nikada ne smiju promijeniti?

Početak su dva fajla

Izvorni i ciljni fajl bili su specifikacija.

Uporedio sam ih i podijelio posao u tri grupe:

  1. Struktura — sheetovi, kolone, njihov redoslijed i očekivani oblik izlaza.
  2. Pravila nad podacima — vrijednosti koje treba premjestiti, izvesti, standardizirati ili sačuvati.
  3. Prikaz — formati brojeva, fontovi, širine, obrubi i ostalo formatiranje workbooka.

Ta podjela je važna. Skripta može napraviti fajl koji izgleda ispravno, a da pritom neprimjetno promijeni identifikator, pogrešno protumači datum ili ukloni početnu nulu.

Pravila moraju biti eksplicitna

Prije automatizacije ponavljajućeg rada želim da se svaki važan korak može zapisati kao pravilo.

Naprimjer:

  • sačuvaj izvorni fajl bez izmjena;
  • jasno prekini proces ako nedostaje očekivani sheet ili kolona;
  • identifikatore sačuvaj kao tekst;
  • transformacije uvijek izvršavaj istim redoslijedom;
  • rezultat snimi u novi fajl;
  • potvrdi da izlaz ima očekivanu strukturu.

Implementacija može biti u VBA-u ili Pythonu. Izbor zavisi od toga gdje se fajl koristi, ko ga održava i koliko transformacija podataka postoji. Programski jezik je sporedan. Ponovljivost je stvarni rezultat.

Rješenje mora raditi i sljedećeg mjeseca

Mjesečni fajl će se kad-tad promijeniti.

Neko će preimenovati kolonu, pojavit će se nova kategorija ili će biti dodat novi sheet. Pouzdan alat u tom slučaju ne smije tiho proizvesti uvjerljiv, ali pogrešan rezultat.

Zato prije formatiranja dodajem kratku validaciju:

  • postoje li svi očekivani ulazi?
  • jesu li obavezna polja popunjena?
  • je li se broj redova neočekivano promijenio?
  • jesu li u izlazu sačuvane dogovorene kolone i tipovi?

Ove provjere pretvaraju skriptu za automatizaciju u proces koji se može pregledati i kojem se može vjerovati.

Šta je potvrđeno

Javni Upwork angažman trajao je od jula do augusta 2023. Recenzija klijenta bila je kratka:

„Hvala još jednom na odlično odrađenom poslu.“

Iz te rečenice neću praviti izmišljeni procenat uštede ili ROI. Ona potvrđuje nešto jednostavnije i korisno: isporučeno rješenje je ispunilo očekivanja klijenta i posao je uspješno završen.

Lekcija

Najveća vrijednost automatizacije nije uklanjanje nekoliko klikova. Vrijednost je u tome da proces koji postoji u nečijoj glavi pretvorimo u pravila koja se mogu ponovo izvršiti.

Zato veće projekte čišćenja ili izvještavanja obično počinjem auditom kvaliteta podataka. Prije automatizacije vidljivog koraka želim razumjeti šta fajl treba predstavljati i kako ćemo potvrditi da je rezultat tačan.

Mehmed Kadrić Osnivač, MESH Data Solutions

Pišem o konkretnim problemima s podacima i softverom: šta nije radilo, šta je napravljeno i šta bih sljedeći put promijenio.

TREBAJU VAM DOKAZI IZ VLASTITIH PODATAKA?

Pretvorite listu provjera u fokusirani audit.

Zatražite reviziju