Dúfam, že som sa vrátil k písaniu. Nevedel som nájsť čas na nič iné ako na projekt, ktorý som sa príliš snažil dokončiť. Tento deň dúfam označuje ten sladký malý pocit opísaný ako projekt je hotový, ktorý možno ochutnať na krátku chvíľu, kým sa človek nezapojí do ďalšieho projektu. Pocit projekt je hotový je sporovateľne jedna z mála emócií, ktoré programátor dokáže vyjadriť navonok. Žartujem. Určite sa viem aj smiať, a to hlavne v tých najnevhodnejších situáciách.

Každý projekt odhalí rôzne nepredvídané problémy. Niektoré problémy sú s vybraným tech stackom a niektoré sú kvôli chybám v dátach. Pri každej aplikácii na manipuláciu s dátami musia byť dáta najprv načítané do pamäti. Na to musia byť vytvorené dátové štruktúry na ubytovanie dát. Toto funguje dobre, kým nefunguje – čo znamená, kým nie je nesúlad s dátami. Alebo inými slovami, keď dátová štruktúra nespĺňa očakávania.

V mojej situácii jeden malý nadbytočný vzťah medzi zúčastnenými entitami viedol k takému množstvu redesignu a prepisovania, že som naozaj rád, že je to za mnou. Keď zákazník pre seba potvrdil, že dátová štruktúra je skutočne súčasťou ich databázy, bol prekvapený spôsobom pripomínajúcim „toto by ani nemalo byť možné”. Čo je horšie, teraz keď o probléme vedia, pravdepodobne už pracujú na zmene dát tak, aby spĺňali očakávané kritériá. Takáto zmena by odstránila vzťah dátovej entity spôsobujúci oneskorenia, čím by všetky implementované funkcie zamerané na obídenie nesúladu stali zbytočnými.

Nakoniec je to celé moja chyba, že som dáta dôkladne nepreskúmal hneď na začiatku, ale čo je správna vec urobiť? Posadnúto skúmať dáta a odkladať produkt? Urobil som krátke preskúmanie dát a šiel ďalej programovať. Projekt bol zamýšľaný ako proof-of-concept (PoC), mohol som zistiť, že hlavný cieľ projektu sa nedá uskutočniť zamýšľaným spôsobom, čo by urobilo chybu v dátach irelevantnou oveľa skôr, ako by bola nájdená. Spoliehal som sa na svoju schopnosť prispôsobiť kód tak, aby importoval poskytnuté dáta v jednom bode vývojového cyklu projektu, v ktorom práve som problém objavil. Čo bolo po tom, čo PoC bol definitívne potvrdený, ale po tom, čo nejaký kód musel byť zahodený.

Dnes sme rozmaznaní bohatými funkciami na generovanie falošných dát, ktoré nám umožňujú predplniť aplikáciu rozmanitými dátami na testovanie čo najviac okrajových prípadov pred spustením do produkcie. No zjavne existuje aj druhá strana, pretože generované dáta sú veľmi statické a medzi ich entitami všeobecne nie sú žiadne neočakávané vzťahy. Záverečné ponaučenie z tohto príbehu je nespoliehať sa príliš na dáta generované cez Faker alebo podobný nástroj a snažiť sa čo najskôr použiť reálne dáta. Môže to ušetriť nejaké bolesti hlavy.