Det grafiska gränssnittets framtid
Jag tänkte skriva en artikel om vad GUI är. Det blev en fundering över vad som händer med det grafiska gränssnittet när vi kan beskriva vad vi vill i stället för att klicka oss dit.
Jag tänkte egentligen skriva en artikel om grafiska användargränssnitt, GUI, för att stärka vår SEO. Ni vet, förklara vad GUI betyder, hur det fungerar och varför det är viktigt. Men som vanligt började jag fundera på vad människor egentligen söker efter. Vad säger andra om ämnet? Vad finns det för forskning? Och vad ska vi egentligen försöka ranka på?
Det resulterade i att jag sprang på ett par intressanta saker. Framför allt fick det mig att fundera vidare på något som jag har gått och tänkt på ett tag. Nämligen vad det egentligen är vi håller på med.
En kort bakgrund. Vi arbetar med att designa digitala gränssnitt och har gjort det i många år. Det är vårt jobb att göra interaktionen mellan människor och digitala system så enkel, begriplig och effektiv som möjligt. Vi ritar, bygger och förbättrar gränssnitt för webbplatser, appar, e-handel och andra digitala tjänster.
Men jag börjar misstänka att vi står inför ett ganska stort skifte. Ett skifte som på sikt kan förändra vad ett användargränssnitt är och hur vi använder det.
Vad är egentligen ett grafiskt gränssnitt?
Vi kan börja med att reda ut vad vi pratar om.
GUI står för Graphical User Interface, alltså grafiskt användargränssnitt. Det är den del av en dator eller digital tjänst som gör det möjligt för oss att interagera med systemet genom visuella element. Knappar, menyer, fönster, ikoner, formulär och annat som vi känner igen från våra datorer och telefoner.
Traditionellt har vi använt tangentbord och mus för att styra dessa gränssnitt. Senare har vi fått pekskärmar, där vi använder fingrar och gester för att göra ungefär samma sak.
Tangentbordet har egentligen funnits med hela tiden, även om mycket av interaktionen med grafiska gränssnitt har kommit att kretsa kring musen eller andra pekdon. Tangentbordsnavigering är fortfarande viktig, inte minst ur ett tillgänglighetsperspektiv. Det är också ett grundläggande krav i WCAG att funktioner ska kunna användas med tangentbord, med vissa undantag.
Musen och tangentbordet är egentligen ganska enkla saker. De registrerar våra handlingar och skickar signaler vidare till datorn. Detsamma gäller pekskärmen, mikrofonen och kameran. Alla fungerar som olika sätt att fånga in information eller instruktioner från oss människor.
Sedan tar programvaran vid.
Och vad är det egentligen vi styr?
I slutändan handlar det om datorkraft och lagrad information. Processorer utför instruktioner och data hämtas, bearbetas och lagras. Ibland sker det i vår egen dator, ibland på en server någon helt annanstans. Genom dessa system kommer vi också åt andra människor, företag, tjänster och i förlängningen stora delar av världen.
Det finns förstås mängder av lager mellan våra fingrar och det som faktiskt händer. Operativsystem, program, databaser, API:er och allt möjligt annat. Varje lager har sina egna gränssnitt mot nästa.
Men vi behöver inte förstå de lagren. Det är själva poängen.
Det grafiska gränssnittet är en abstraktion som gör att vi slipper förstå tekniken bakom.
Och det är här jag tycker att det börjar bli intressant.
Jag vill inte klicka längre
Det klassiska grafiska gränssnittet bygger till stor del på att vi klickar eller trycker oss fram till det vi vill åstadkomma.
Hur många klick krävs för att köpa ett par skidor, boka en resa eller skapa ett ärende i Jira? Hur mycket av tiden spenderar vi på att leta efter information, hitta rätt funktion eller förstå vad nästa steg är?
Vi som arbetar med gränssnitt har brottats med det här i decennier. Vi ska minimera antalet klick, men samtidigt förmedla vad som händer. Vi ska skapa tydliga vägar genom systemen, men också ge användaren ledstänger och skyddsnät så att ingen tappar bort sig eller råkar förstöra något.
Det är inte särskilt enkelt.
Och hur gärna vi än vill tro att användarna älskar de gränssnitt vi har ritat så tror jag att sanningen ofta är en annan.
De har använt våra gränssnitt för att komma åt någonting annat. Information, funktioner, andra människor eller världen utanför datorn.
De har tyckt om våra gränssnitt för att de inte har stått i vägen.
Jag tycker själv inte att det är särskilt roligt att klicka runt och leta efter saker. Det har jag nog aldrig tyckt. Och jag misstänker att jag inte är ensam.
Visst finns det situationer där själva interaktionen är en del av upplevelsen. Att redigera en bild, utforska en karta eller arbeta med något kreativt. Men att klicka mig genom fyra menyer för att hitta en inställning? Nej tack.
Och det är precis det här som jag tror håller på att förändras.
Från kommandon till avsikter
Under min research hittade jag en artikel av Jakob Nielsen från juni 2023: AI: First New UI Paradigm in 60 Years.
Den satte ord på mycket av det jag själv har funderat över.
Nielsen beskriver tre stora paradigm för hur människor interagerar med datorer.
Det första är batch processing, där man lämnade en samling instruktioner till datorn och fick tillbaka resultatet senare. Det andra är command-based interaction, där man ger datorn instruktioner steg för steg och får återkoppling mellan varje steg.
Det är i det andra paradigmet som vi befunnit oss under väldigt lång tid. Först genom kommandorader och textbaserade terminaler, senare genom grafiska användargränssnitt.
Det kan låta märkligt att kalla ett grafiskt gränssnitt kommandobaserat. Vi skriver ju inga kommandon när vi klickar på en knapp. Men det är precis vad vi gör. Vi ger datorn en specifik instruktion, väntar på resultatet och ger sedan nästa instruktion.
Klicka här. Välj detta. Öppna den här menyn. Fyll i fältet. Tryck på spara.
Det tredje paradigmet kallar Nielsen Intent-Based Outcome Specification.
I stället för att tala om för datorn hur den ska göra något beskriver vi vad vi vill åstadkomma. Datorn får själv räkna ut hur den ska ta sig dit.
Det är en fundamental skillnad.
Vi känner redan igen det här från ChatGPT, Claude och andra AI-tjänster.
"Hej Chattis, ge mig en bild på en kul katt."
Vi behöver inte öppna Photoshop, skapa ett dokument, välja verktyg, rita katten, färglägga den och exportera bilden. Vi beskriver vad vi vill ha och får ett resultat.
Och det märkliga är att vi inte ens behöver vara särskilt precisa. Vi behöver inte använda exakt rätt ord eller förstå hur systemet fungerar. Vi kan uttrycka oss ungefärligt, ändra oss, lägga till information eller förklara vad vi menade. Systemet försöker förstå vår avsikt.
Det är något helt annat än att klicka på rätt knapp.
Men det riktigt intressanta händer när vi tar med oss det här sättet att interagera till alla de digitala tjänster som redan finns.
Claude, kan du fixa det här i Jira?
Jag använder numera Claude i Chrome för att utföra uppgifter i olika digitala tjänster.
Jira är ett bra exempel.
Jag kan Jira. Jag vet hur man skapar ärenden, hittar rätt projekt och fyller i information. Men jag tycker inte att det är särskilt roligt och jag vill helst slippa.
Så i stället för att öppna Jira och klicka mig fram beskriver jag för Claude vad jag vill åstadkomma.
Sedan gör Claude det åt mig.
Under tiden kan jag fortsätta med något annat.
Det fungerar förvånansvärt bra. Och det är inte begränsat till Jira. Samma princip fungerar i många andra webbplatser och digitala tjänster. Claude kan läsa information, navigera, fylla i formulär och utföra uppgifter genom webbläsaren.
Det finns förstås begränsningar. Alla gränssnitt är inte lika enkla att tolka, och alla uppgifter är inte lämpliga att lämna över utan kontroll. Men tekniken fungerar redan tillräckligt bra för att jag ska ha börjat ändra mitt eget beteende.
Det är också lite komiskt.
Här har vi alltså byggt digitala tjänster med grafiska gränssnitt som människor ska kunna använda. Sedan använder vi en AI för att slippa använda dem själva.
Claude får klicka runt i stället.
Jag vet inte om Claude gillar att klicka runt i Jira heller. Men den klagar åtminstone inte.
Rent tekniskt kan sådana här agenter använda både information om sidans struktur och bilder av det visuella gränssnittet för att förstå vad som finns på sidan och hur de kan agera. De behöver alltså inte alltid se och klicka på samma sätt som en människa.
Men principen är densamma. Agenten använder ett gränssnitt som huvudsakligen har byggts för oss människor.
Och det är egentligen en omväg.
För om Claude redan vet vad jag vill åstadkomma, varför ska den behöva leta upp rätt knapp?
Vi behöver inte ens öppna produkten
Ett annat exempel är Netlify, som vi använder för att publicera webbplatser.
Netlify har ett grafiskt gränssnitt. Ett ganska bra sådant dessutom. Jag vet hur det fungerar och kan använda det utan några större problem.
Men ofta arbetar jag redan i Claude Code och vill exempelvis ändra en inställning eller hantera något som rör publiceringen.
Då ber jag Claude göra det.
I stället för att öppna Netlifys webbplats kan Claude kommunicera med tjänsten genom dess API eller andra integrationer. Jag behöver alltså inte gå via det grafiska gränssnittet över huvud taget.
Det är precis samma tjänst och samma funktioner. Men jag använder dem på ett helt annat sätt.
Och det här tycker jag är en ganska stor sak.
För många digitala produkter består gränssnittet till stor del av möjligheten att hitta, läsa och manipulera information. Det är menyer, tabeller, formulär och knappar som i sin tur anropar olika funktioner i systemet.
Om en agent kan anropa dessa funktioner direkt, varför ska vi då lägga ytterligare ett gränssnitt mellan agenten och systemet?
Det grafiska gränssnittet riskerar att bli ett hinder mellan min avsikt och det jag vill åstadkomma.
En ganska märklig tanke för oss som har arbetat hela våra yrkesliv med att designa just dessa gränssnitt.
En scen från Terminator
Det här påminner mig om en scen från Terminator 2 som jag alltid har tyckt är lite knasig.
I början av filmen kommer Arnold Schwarzeneggers T-800 in i en motorcykelbar. Han är naken och behöver kläder. Han skannar människorna i lokalen för att hitta någon som har rätt storlek.
Som publik får vi se världen genom robotens ögon. Det är en bild av omgivningen med ett grafiskt gränssnitt ovanpå. Text, markeringar och analyser som visar vad roboten ser och bedömer.
Det är förstås ett smart filmiskt grepp. Vi som tittar på filmen behöver förstå vad roboten håller på med.
Men varför skulle en robot från framtiden behöva ett grafiskt gränssnitt som presenterar information på en skärm?
Är det någon som sitter där inne och läser texten? Finns det ytterligare en kamera bakom skärmen som tittar på gränssnittet och försöker tolka det?
Självklart inte.
Roboten borde rimligen kunna behandla informationen direkt, utan att först behöva presentera den visuellt för sig själv.
Och det är lite så Claude i Chrome fungerar idag.
Vi har ett system som kan förstå vad vi vill åstadkomma. Men för att utföra uppgiften får vi det att läsa och manipulera ett gränssnitt som ursprungligen skapades för människor.
Det är som om vi har byggt en robot som först måste titta på en skärm för att kunna använda en annan dator.
Det fungerar. Men det känns knappast som slutmålet.
Tänk om vi utgår från avsikten i stället
Det är här jag börjar fundera på hur vi egentligen borde bygga framtidens digitala tjänster.
Om vi betraktar AI som ett nytt sätt att kommunicera med datorn förändras en del av förutsättningarna.
En mus registrerar rörelser och klick. Ett tangentbord registrerar tangenttryckningar. En mikrofon registrerar ljud. AI är inte en sensor på samma sätt, men den kan tolka det vi skriver eller säger och försöka förstå vad vi vill åstadkomma.
Det gör att vi inte längre behöver översätta våra avsikter till en lång serie exakta handlingar.
Ta något så enkelt som att betala en räkning.
Idag behöver vi kanske öppna banken, logga in, leta upp rätt funktion, mata in uppgifter, kontrollera belopp och godkänna betalningen.
Vi har översatt vår ganska enkla avsikt till en mängd olika handlingar med händer och fingrar.
Men min avsikt var aldrig att öppna en meny eller fylla i fem formulärfält.
Min avsikt var att betala en räkning.
Om jag i stället säger "Betala den där räkningen" behöver systemet förstå vilken räkning jag menar, vad som ska betalas och när. Om någonting är oklart kan det fråga mig.
Sedan kan det presentera sin tolkning och be mig godkänna betalningen.
Jag har fortfarande kontroll. Jag kan kontrollera uppgifterna och korrigera eventuella missförstånd. Men jag behöver inte utföra alla stegen själv.
Det finns förstås goda skäl att vara mer noggrann när pengar ska flyttas än när vi skapar en bild på en katt. Alla handlingar ska inte automatiseras utan kontroll.
Men det är ju precis det som är intressant.
Det grafiska gränssnittet skulle kunna få en annan roll.
I stället för att i första hand användas för att navigera fram till en funktion skulle det kunna användas för att presentera information, skapa förståelse och ge oss möjlighet att bekräfta eller korrigera det systemet tänker göra.
Gränssnittet behöver inte försvinna. Det behöver bara inte vara vägen till allting.
Och vi behöver inte ens skriva
Det finns ytterligare en aspekt som jag tror kommer att få stor betydelse.
Om jag kan skriva vad jag vill åstadkomma kan jag också säga det.
Det är faktiskt så jag själv använder AI allt oftare. Jag pratar och låter systemet tolka vad jag säger.
Och till skillnad från äldre röststyrda system behöver jag inte använda exakt rätt kommando.
Jag kan börja prata om något, komma på att jag glömt en detalj, lägga till den, ändra mig och sedan fortsätta. Lite som när jag pratar med en kollega.
Det fungerar därför att AI inte bara försöker känna igen orden. Den försöker förstå sammanhanget och vad jag menar.
Det här betyder att vi kanske är på väg mot en situation där tangentbordet, musen och pekskärmen inte längre är de självklara förstahandsvalen när vi vill få något gjort.
Vi kan helt enkelt prata med datorn.
Och återkopplingen behöver inte vara muntlig. Tvärtom tror jag att det grafiska gränssnittet fortfarande kommer att vara väldigt användbart.
Jag kan säga vad jag vill göra och få tillbaka ett visuellt förslag. Jag kan granska, korrigera och godkänna. Ibland kanske jag gör det genom att prata, ibland genom att klicka eller dra i ett reglage.
Det finns ju ingen anledning att sluta använda något som fungerar bra.
Men det är en skillnad mellan att använda ett grafiskt gränssnitt för att hitta en funktion och att använda det för att förstå eller påverka ett resultat.
Vad innebär det här för framtidens grafiska gränssnitt?
Jag vet inte. Och det är väl egentligen därför jag skriver den här artikeln.
Men jag tror att vi kommer behöva tänka annorlunda kring hur vi bygger digitala produkter.
Idag utgår vi ofta från att användaren själv ska navigera fram till funktionerna. Därför lägger vi mycket arbete på informationsarkitektur, navigering, menyer, formulär och användarflöden.
Det kommer fortfarande att behövas. Det finns mängder av situationer där det är både enklare och bättre att arbeta direkt i ett visuellt gränssnitt.
Men kanske blir det inte längre självklart att varje funktion i en digital tjänst måste ha en egen väg genom det grafiska gränssnittet.
Kanske behöver vi i högre grad bygga produkter med två olika typer av gränssnitt. Ett som låter andra system och AI-agenter komma åt information och funktioner direkt. Ett annat som hjälper oss människor att förstå, utforska, granska och fatta beslut.
API:er är förstås inget nytt. De har funnits länge. Men det nya är att en vanlig användare inte behöver förstå ett API för att dra nytta av det. En AI-agent kan översätta användarens avsikt till de anrop som behövs.
Och vad händer då med alla de digitala produkter vars gränssnitt huvudsakligen består av menyer och formulär för att manipulera data?
Om jag kan få samma arbete utfört genom att beskriva vad jag vill åstadkomma, hur ofta kommer jag då att besöka själva produkten?
Det är en ganska intressant fråga för hela SaaS-branschen.
Det är också en intressant fråga för oss som arbetar med UI och UX.
Vi kanske behöver lägga mindre tid på att fundera över hur användaren ska hitta fram till en viss funktion och mer tid på hur användaren ska kunna förstå, kontrollera och påverka det som faktiskt händer.
Och vi kanske behöver bli betydligt bättre på att skapa gränssnitt som fungerar både för människor och för de agenter som människor börjar använda.
Förresten skulle det kunna bli ett ganska intressant användartest av en befintlig produkt. Be Claude genomföra några vanliga uppgifter och se hur det går. Var kör den fast? Vad är otydligt? Vad kan den inte förstå? Ett gränssnitt som är svårt att tolka för en agent kan mycket väl ha problem som också påverkar människor.
Det ersätter förstås inte riktiga användartester, men det skulle kunna avslöja en del.
Vad är det egentligen vi ska designa?
Jakob Nielsen spekulerade redan 2023 i att AI skulle kunna innebära det första stora paradigmskiftet inom användargränssnitt på omkring 60 år. Han trodde samtidigt att framtidens användargränssnitt sannolikt skulle bli en kombination av avsiktsbaserad interaktion och traditionella grafiska gränssnitt.
Det låter rimligt.
Jag tror inte att det grafiska gränssnittet kommer att försvinna. Människor behöver fortfarande se, förstå, jämföra och påverka saker. Det finns goda skäl till att vi tycker om kartor, diagram, bilder och andra visuella representationer av information.
Men jag tror att själva navigeringen kommer att få en mindre central roll.
Vi har ägnat decennier åt att göra det enklare för människor att använda digitala gränssnitt. Vi har försökt minska antalet klick, förenkla menyer och göra vägen till målet så kort som möjligt.
Nu håller vi på att utveckla teknik som i många fall kan ta bort behovet av den vägen helt och hållet.
Och det är kanske det som gör mig lite fundersam.
Om det grafiska gränssnittets viktigaste uppgift hittills har varit att göra datorns funktioner tillgängliga för människor, vad händer då när vi kan komma åt samma funktioner genom att bara beskriva vad vi vill?
Vad ska vi lägga vår tid på att designa?
Jag har inga färdiga svar. Men jag tycker att det börjar bli ganska tydligt att vi behöver fundera på frågan.
Fattar ni nu varför jag undrar vad vi sysslar med?