“Kan jag inte bara bygga min egen kontrollpanel?” blev början på Relay 7 Kontrollcenter.
Vid någon punkt blev det tydligt att jag redan byggde runt den färdiga radioplattformen på så många ställen att jag i praktiken hade börjat bygga en egen kontrollnivå.
Jag ville kunna se bibliotek, queue, show, aktuell värd, historik, analyssvar, nästa låt och talstatus på samma ställe. Jag ville kunna trigga ett station-ID manuellt, testa en feature och se exakt vilken regel som gjorde att ett segment stod över.
Där föddes idén till Relay 7 Kontrollcenter. Inte som ett skin och inte som en ny startsida, utan som den del som faktiskt äger reglerna.
Jag började också tänka annorlunda om konfiguration. En inställning ska helst ha en enda ägare. Om “prata bara mellan låtar” finns på tre ställen kommer de tre ställena förr eller senare tolka den olika.
Kontrollcenteridén ändrade hur jag skrev nya funktioner
Före Kontrollcenter tänkte jag ofta “var kan jag lägga in den här fixen?”. Efter Kontrollcenter började jag fråga “vilken modul borde äga detta?”. Det är en mycket bättre fråga.
Det är exempelvis därför weather state inte ligger i promptkoden och varför Picker inte ligger i röstkedjan. Jag försöker placera regler där deras data redan finns och exponera ett enkelt resultat till nästa lager.
Kontrollcenter blev platsen där jag kunde se varför, inte bara vad
Ett vanligt radiogränssnitt visar ofta vilken låt som spelar och vad som ligger i kö. Jag ville dessutom se varför nästa beslut togs. Vilken pool valdes? Vilket showfilter var aktivt? Varför stod en skill över? Vilken talk-slot blockerade en annan?
Det gör Kontrollcenter till mer än en fjärrkontroll. Det är också ett förklaringslager. När en automatisk station beter sig konstigt är “varför” den viktigaste informationen.
Jag försöker därför få nya funktioner att lämna diagnostiska spår. En policy som returnerar false bör helst kunna ge en anledning. En scheduler som väntar ska kunna säga vad den väntar på.