Kuusi riviä liikkui ilman tekstejään
Rivien järjestely vei kolme siirtoa, ja se olisi tuottanut virheetöntä tekstiä väärille tuotteille. Näin viittaat taulukkoon ja tekoälyn ohjeeseen niin, ettei järjestely riko mitään.

Kolme siirtoa, kuusi riviä. Se oli päivän pienin muutos, ja se oli vähällä sotkea 59 tuotetekstiä.
Jos olet koskaan liittänyt taulukon tekoälylle ja kertonut, mitä tehdään riveille 12-40, sama sidos on sinunkin taulukossasi.
Tehtävä itsessään oli triviaali. Taulukossa oli 59 tuoteriviä, ja saman mallin variantit olivat eri puolilla listaa. Siirsin ne peräkkäin, jotta lukija näkee yhdellä silmäyksellä, mitkä rivit kuuluvat yhteen. Siirto vei mukanaan sekä arvot että muotoilut, joten ryhmävärit seurasivat tuotetta eikä väritystä tarvinnut ajaa uudelleen. Kuusi riviä vaihtoi paikkaa.
Yksi asia ei seurannut mukana.
Skripti tunsi rivit numeroina
Tuotetekstit kirjoitti taulukkoon oma skripti, ja sen avaimet olivat rivinumeroita. Teksti, joka kuului riville 34, oli tallennettu nimellä 34. Kun rivit vaihtoivat paikkaa, numerot pysyivät ja sisältö liikkui niiden alta.
Tämä on se virheluokka, joka ei näy mistään. Tekstit olisivat olleet virheetöntä suomea, oikean mittaisia ja oikean näköisiä, ja ne olisivat olleet väärällä tuotteella. Yksi malli olisi saanut naapuririvin tekniset tiedot omalle riville. Mikään automaattinen tarkistus ei huomauta tästä, koska jokainen kenttä on muodollisesti kunnossa: Teksti on olemassa, se on oikeaa suomea ja se mahtuu merkkirajaan. Virhe löytyy vasta, kun joku lukee rivin ja tuntee tuotteen.
Korjasin avaimet ja todensin korjauksen vertaamalla jokaisen generoidun tekstin taulukon omaan sisältöön rivi riviltä. Eroja oli nolla 59 rivillä. Sen jälkeen lisäsin kirjoitusskriptiin pysyvän tarkistuksen, joka varmistaa ennen kirjoittamista, että teksti ja rivi kuuluvat yhteen.
Sama taulukko, toinen lopputulos
Samaan taulukkoon oli lisätty aiemmin yksi sarake, ja kaikkien sen jälkeisten sarakkeiden kirjaimet siirtyivät silloin yhdellä. Tuotekuvaus vaihtui M:stä N:ään, ja kolme muuta kenttää liikkui perässä. Mikään ei rikkoutunut.
Ero on pelkästään siinä, mihin viitataan. Kaavat ja skriptit hakevat sarakkeen otsikon nimellä, eivät kirjaimella. Sarake saa liikkua, nimi ei liiku. Sama taulukko, sama siirto, kaksi täysin eri lopputulosta.
Yksi kohta oli silti jäljessä, ja se oli ohje. Projektin ohjetiedostossa luki yhä vanhat sarakekirjaimet, eli juuri ne, joita ei enää ollut. Ohje oli kirjoitettu kerran oikein, ja se vanheni hiljaa, koska se osoitti paikkaan eikä nimeen.
Kolme kohtaa omaan työhön
- Viittaa nimeen, älä paikkaan. Kerro mallille sarakkeen otsikko, tuotekoodi tai muu tunniste, älä riviä 34 tai saraketta L. Nimi kestää järjestelyn, paikka ei.
- Kysy jokaisen järjestelyn jälkeen, mikä oli sidottu vanhaan järjestykseen. Taulukon sisällä olevat asiat seuraavat riviä mukana. Rikkoutuvat ne, jotka elävät taulukon ulkopuolella ja osoittavat paikkaan: Skriptit, muistiinpanot ja tekoälylle kirjoitetut ohjetiedostot.
- Poista riippuvuus, kun voit, ja vartioi sitä, kun et. Loput kentät rakennettiin niin, että ne johdetaan rivin omasta datasta eikä erillisestä rivinumerokartasta. Rivien siirtäminen ei voi enää rikkoa niitä. Herkkyys jäi vain siihen yhteen kohtaan, jota tarkistus nyt vartioi.
Oikean näköinen väärä teksti on kallein virhelaji, koska sen löytää vain ihminen, joka lukee rivin ja tuntee tuotteen. Juuri sellaisen tarkistuskierroksen poistaminen on se kohta, jossa rutiinityön hinta oikeasti putoaa.