1.0.0
De siste månedene har jeg jobbet med et veldig stort og veldig spennende prosjekt for et stort selskap, med mange forskjellige datasystemer og løsninger. Jeg anser meg selv som veldig heldig som har fått jobbe med noe av det jeg interesserer meg aller mest for: designsystemer.
Å lage et designsystem er en stor, fantastisk jobb. Det handler om å kombinere mange disipliner under én paraply - designprosesser, UX, programmering, kommunikasjon, samarbeid mellom team og endringer på organisasjonsnivå rullet inn i én stor bolk. Det handler ikke bare om komponentbiblioteker, men også om hvorfor vi lager dem, hvordan vi bruker dem, hvordan vi videreutvikler dem, og ikke minst at kode bare er en ørliten del av bildet.
Spesielt det tverrfaglige samarbeidet er spennende. Organisasjoner er gjerne delt opp i flere mer eller mindre organiserte bestanddeler; produktteam, avdelinger, faggrupper og seksjoner. Ikke bare er vi delt i siloer der utviklere, designere, UXere, arkitekter og prosjektledere sitter i hvert sitt fagområde der de skal ha en tilhørighet, men ofte blandes folk fra hver av disse inn i autonome, mindre team som har fullstendig ansvar for sin egen løsning.
Alle gjør ofte ting på sin måte. Det kommer an på hvem som sitter i teamene, og hvilken erfaring de har fra tidligere. Kompetansen er ofte vidt forskjellig, erfaringsnivået likeså. Metodologier blandes og måten vi jobber med løsninger på blir til slutt så forskjellig at det ene teamet aldri er det andre likt. Teknisk gjeld bygger seg opp på forskjellig måte fordi teamene må støtte forskjellige brukergrupper. Design bygges forskjellig fordi brukerene har vidt forskjellige fysiske enheter, og vidt forskjellige krav til for eksempel informasjonstetthet.
Løsningene er også mange. I en stor organisasjon kan det være titalls - hundretalls, i noen tilfeller. Ikke alle av løsningene har like stor brukerbase, men for den brukerbasen er løsningen kritisk og må fungere. De er laget på forskjellig tidspunkt, over forskjellig lest. Noen med React. Noen med Angular. Noen med JQuery i bunnen, noen uten noe JavaScript-rammeverk i det hele tatt. Noen løsninger er kun avhengige av et CMS.
Universell utforming blir stadig viktigere, også i interne systemer og fagsystemer, fordi ny lovgivning trer i kraft like over nyttår. Nå må også intranett og ekstranett være universelt utformede, og loven er streng. Avvik i løsninger må dokumenteres gjennom en tilgjengelighetserklæring. Vi kan ikke lenger trekke på skuldrene over universell utforming og si "vel, det gjelder jo ikke for oss så lenge det ikke er en publikumsløsning" sånn som vi gjorde i gamle dager. Og det er jammen på tide også.
Å jobbe med designsystemer er spennende fordi vi må hjelpe til med å løse alle disse utfordringene.
Vi må være med på å håndtere designutfordringer de ulike teamene har, uansett hvor store eller små de er, og uansett hvor liten nisjen de fyller er. Kan vi ikke hjelpe direkte, så kan vi bistå. En helhetlig brukeropplevelse krever at man ikke bare lager et fysisk produkt med tannhjul og knapper og små bestanddeler som sammen utgjør en større helhet - man må også tilby kunnskap om hvordan det skal settes sammen.
Det samme gjelder for kode, der vi skal lage noe som fungerer på tvers av løsninger, og som tilrettelegger for enkel bruk. Selv om vi ikke kan støtte alle rammeverk, teknologier og nettlesere som finnes, så kan vi lage en kodebase som åpner for videreutvikling og tilpasninger der det trengs.
Vi må også lage noe som gjør det mulig å lage tilgjengelige løsninger. Vi kan ikke garantere at løsninger vil være tilgjengelige bare fordi designsystemet vårt er det, og fordi komponentene våre møter WCAG 2.1. Så fort komponentene brukes i en kontekst, er det konteksten som må være universelt utformet. Men vi må bidra til å komme dit.
Stikkordet er tilrettelegging. Designsystemer handler om å tilrettelegge for å bygge gode løsninger i organisasjoner med mange forskjellige mennesker, løsninger, brukere og behov. Designsystemer er en tverrfaglig øvelse som handler om identitet, avsender, språk, form og farge, teknologi, tilgjengelighet, og så utrolig mye mer om hverandre.
I dag kunngjorde vi versjon 1.0.0 av designsystemet jeg har vært med på å bygge helt fra scratch, den aller første helt stabile versjonen. Reisen har vært lang, og den er langt fra over. For designsystemer er levende, pustende entiteter som må jobbes med og holdes ved like over tid om man skal ha noen nytte av dem. De som jobber med dem og bruker dem må være med på å bidra til evolusjonen.
Det er en komplisert øvelse, det å lage et designsystem, for det er nesten et livsverk i seg selv.