Brugerfeedback om Splync
Omkring halvanden måned efter lanceringen af Splync v1.5—opdateringen der endelig gav mulighed for tilpassede fordelingsforhold pr. projekt og kategori—kom der en ny bølge af feedback. V1.5-opdateringen krævede store ændringer på serversiden, så jeg troede dengang, at detaljegraden var "god nok" til de fleste brugsscenarier. Så spurgte et par nye brugere et simpelt, men rimeligt spørgsmål: "Kan vi sætte tilpassede delingsforhold for hver enkelt udgift?" Deres rejseprojekt havde tidspunkter, hvor kun to medlemmer skulle dele en specifik udgift, og andre, hvor alle tre ville dele noget. Under Splync v1.8 var svaret desværre nej. Jeg forklarede, at de kunne oprette ekstra kategorier med tilpassede forhold tilpasset de specifikke tilfælde—en løsning, men ikke en ægte løsning.
Fraktalskov virkede overvældende
Det føltes lidt overvældende at huske, hvor meget arbejde der gik ind i v1.5. Først skulle jeg lade projekter have deres egne fordelingsforhold. Så skulle kategorier også have deres egne tilpassede forhold. På det tidspunkt troede jeg, at jeg havde dækket hele træet—samlet hver frugt fra hver gren. Men arbejde på fordeling pr. udgift var anderledes. Det føltes, som om hver gang jeg plukkede en frugt, voksede der et nyt træ op på det sted. Ikke en uendelig fraktalskov, men en klar to-etagers struktur: et lag føder det næste. I v1.5-logikken arvede en udgift først projektets forhold. Hvis dens kategori havde tilpassede forhold, ville de overskrive projektets værdier. Så da jeg tilføjede forhold pr. udgift, fandt jeg mig selv i at forsøge at tilføje endnu en overskrivning ovenpå den overskrivning. Strukturen blev en trappe af overskrivelser—teknisk korrekt, men mentalt rodet. Det var svært at retfærdiggøre at bygge endnu et lag af lappelogik.
Paradigmeskift i Splync v1.9
Gennembruddet kom til sidst ved at vende strukturen på hovedet. I stedet for at gøre "projekt → kategori → udgift" og overskrive hvert lag med det næste, hvorfor ikke tænke i den modsatte retning? Andele pr. udgift → andele pr. kategori → andele pr. projekt. Den rækkefølge afspejler, hvordan rigtige mennesker måske tænker: hvis en specifik udgift har sine egne regler, skal den bare følge dem. Hvis ikke, giver kategorimønsteret mening. Hvis det også fejler, falder man tilbage til projektets standard. Ikke mere trappe af overskrivelser—bare en ren hierarki af prioritet. Da jeg så strukturen på denne måde, forsvandt tågen fra den pseudo-fraktalskov øjeblikkeligt. Implementeringsvejen blev åbenlys: "Hver udgift kontrolleres for tilpassede delinger pr. udgift. Hvis til stede, brug dem. Hvis ikke, tjek delinger pr. kategori. Hvis ikke, brug projektets standard."
At gå under himlen
Den nye logik føltes enkel, forudsigelig og matematisk korrekt. For at understøtte dette prioritetsystem tilføjede vi en dedikeret MariaDB-tabel til delinger pr. udgift, som spejler tabellen for delinger pr. kategori. Udgiftsdetaljetabellen krævede også udvidelse, ligesom kategoridetaljetabellen gjorde i v1.5. Når først den underliggende "to-etagers" design blev klar, var resten bare omhyggelig kodning—både i appen og på serveren. Alligevel føltes vejen risikabel nogle steder, som at gå gennem en mørk skov uden kort. Jeg ønskede at rydde mit hoved og gik udenfor. Luften var skarp og ren. Mens jeg gik gennem mit nabolag, så jeg Mt. Fuji rejse sig i det fjerne, krystalklar under en perfekt blå himmel. Det var næsten 100 km væk, men det så ud til at være tæt nok til at røre. Øjeblikket føltes som en påmindelse: selvom jeg tror, jeg går i en skov, går jeg faktisk under den åbne himmel.
Hvad du kan gøre med Splync v1.9—tilpasset fordeling for hver udgift
Splync v1.9 blev født ud af det øjeblik af klarhed. Jeg vendte hjem, færdiggjorde de nye endpoints, forberedte den nye serverlogik, organiserede de relaterede grænseflader, indgav v1.9 til Apple og faldt endelig i søvn. Gennemgangen blev færdig tidligere end normalt. Da jeg vågnede, var Splync v1.9 allerede blevet godkendt og automatisk frigivet på App Store. Fra denne version og frem bliver opdeling meget mere fleksibel. Hvis du rejser med John og Kate, kan du dele basale udgifter jævnt mellem jer tre. Men for mad kan du skifte til en "25% : 50% : 25%" fordeling, fordi John normalt spiser dobbelt så meget. Og hvis John springer en middag over—for eksempel på en østersrestaurant—kan du sætte det specifikke måltid til "50% : 0% : 50%", så han ikke betaler for noget, han ikke har spist. Med v1.9 understøtter Splync nu fordelinger pr. projekt, pr. kategori og pr. udgift i en samlet logik. Fundamentet er stabilt og matematisk korrekt. Den næste udfordring er grænsefladen: nogle andre delingsapps tilbyder mere glidende, stilfulde måder at justere disse forhold på. Splync har nu backend-styrken til at understøtte sådanne forbedringer. Vi vil arbejde på dem én efter én.