Feedback-ul utilizatorilor despre Splync
La aproximativ o lună și jumătate după lansarea Splync v1.5 — actualizarea care a permis în sfârșit proporții personalizate pe proiect și categorie — a sosit un nou val de feedback. Actualizarea v1.5 a necesitat schimbări majore pe partea de server, așa că la momentul respectiv am crezut că detalierea era „suficient de bună” pentru majoritatea utilizărilor. Apoi, câțiva utilizatori noi au pus o întrebare simplă, foarte rezonabilă: „Putem seta proporții personalizate pentru fiecare cheltuială în parte?” Proiectul lor de călătorie avea momente în care doar doi membri trebuiau să împartă un cost specific, și alte momente când toți trei doreau să împartă ceva. Sub Splync v1.8, răspunsul era, din păcate, nu. Am explicat că puteau crea categorii suplimentare cu proporții personalizate adaptate acelor cazuri specifice — o soluție de ocolire, nu una autentică.
Pădurea fractală părea copleșitoare
A fost puțin copleșitor să-mi amintesc cât de multă muncă a intrat în v1.5. Mai întâi trebuia să permit proiectelor să aibă propriile proporții. Apoi, categoriile aveau nevoie și ele de proporții personalizate. În acel moment am crezut că am acoperit tot arborele — culegând fiecare fruct de pe fiecare ramură. Dar lucrul la proporțiile pe cheltuială a fost diferit. Părea că de fiecare dată când culegeam un fruct, un nou arbore apărea din acel loc. Nu o pădure fractală infinită, ci o structură clară pe două niveluri: un strat dând naștere următorului. În logica v1.5, o cheltuială moștenea mai întâi proporția proiectului. Dacă categoria sa avea proporții personalizate, acestea suprascriau valorile proiectului. Așa că, atunci când am adăugat proporții pe cheltuială, m-am trezit încercând să adaug o altă suprascriere peste acea suprascriere. Structura a devenit o scară de suprascrieri — tehnic corectă, dar mental dezordonată. A fost greu să justific construirea unui alt strat de logică improvizată.
Schimbări de paradigmă în Splync v1.9
Descoperirea a venit în cele din urmă prin răsturnarea structurii. În loc de a face „proiect → categorie → cheltuială” și a suprascrie fiecare strat cu următorul, de ce să nu gândim în direcția opusă? Proporții pe cheltuială → proporții pe categorie → proporții pe proiect. Această ordine reflectă cum ar putea gândi oamenii reali: dacă o cheltuială specifică are propriile reguli, ar trebui pur și simplu să le urmeze. Dacă nu, modelul categoriei are sens. Dacă nici asta nu funcționează, se revine la valoarea implicită a proiectului. Fără mai multă scară de suprascrieri — doar o ierarhie curată de priorități. Odată ce am văzut astfel structura, ceața pădurii pseudo-fractale s-a risipit instantaneu. Calea de implementare a devenit evidentă: „Fiecare cheltuială este verificată pentru proporții personalizate. Dacă sunt prezente, se folosesc. Dacă nu, se verifică proporțiile pe categorie. Dacă nu, se folosește valoarea implicită a proiectului.”
Plimbare sub cerul liber
Noua logică părea simplă, previzibilă și matematic corectă. Pentru a susține acest sistem de priorități, am adăugat o tabelă MariaDB dedicată pentru împărțirile pe cheltuială, oglindind oarecum tabela pentru împărțirile pe categorie. Tabela de detalii ale cheltuielilor a necesitat și ea extindere, la fel cum a făcut cea de detalii ale categoriilor în v1.5. Odată ce designul subiaccentuat pe „două niveluri” a devenit clar, restul a fost doar codare atentă — atât în aplicație, cât și pe server. Totuși, calea părea riscantă în anumite locuri, ca o plimbare printr-o pădure întunecată fără hartă. Am vrut să-mi limpezesc mintea și am ieșit afară. Aerul era ascuțit și curat. În timp ce mă plimbam prin cartierele mele, am văzut Muntele Fuji ridicându-se în depărtare, albastru cristal sub un cer perfect albastru. Era la aproape 100 km distanță, dar părea destul de aproape pentru a-l atinge. Momentul părea un memento: chiar dacă cred că mă plimb într-o pădure, de fapt mă plimb sub cerul liber.
Ce poți face cu Splync v1.9 — Împărțire personalizată pentru fiecare cheltuială
Splync v1.9 s-a născut din acel moment de claritate. Am revenit acasă, am terminat de conectat noile puncte finale, am pregătit noua logică de server, am organizat interfețele aferente, am trimis v1.9 la Apple și, în sfârșit, am adormit. Revizuirea s-a încheiat mai devreme decât de obicei. Când m-am trezit, Splync v1.9 fusese deja aprobat și lansat automat pe App Store. De la această versiune înainte, împărțirea devine mult mai flexibilă. Dacă călătorești cu John și Kate, poți împărți cheltuielile de bază în mod egal între voi trei. Dar pentru mâncare, ai putea trece la o împărțire „25% : 50% : 25%” pentru că John, de obicei, mănâncă de două ori mai mult. Și dacă John sare peste o cină—să zicem, la un restaurant de stridii—poți seta acea masă specifică la „50% : 0% : 50%” astfel încât să nu plătească pentru ce nu a mâncat. Cu v1.9, Splync susține acum proporții pe proiect, pe categorie și pe cheltuială într-o logică unificată. Fundamentele sunt stabile și matematic corecte. Următoarea provocare este interfața: alte aplicații de împărțire oferă modalități mai fluide și mai elegante de a ajusta aceste proporții. Splync are acum puterea backend-ului să susțină astfel de îmbunătățiri. Vom lucra la ele pe rând.