Tankar om programvaruutveckling

Intervju med Per Runeson (LTH)
Av Nicolas Martin-Vivaldi
Vi fortsätter vår intervjuserie, där Sveriges akademi inom programvaruteknik reflekterar över industrins utveckling, med Per Runeson.

Kort introduktion av Per Runeson
Per Runeson är professor i programvarusystem vid Lunds Universitet, LTH, där han firar 20-årsjubileum som heltidsanställd i år. Dessförinnan jobbade han på Addalots föregångare, Q-Labs. Per är för närvarande prefekt för institutionen för datavetenskap och har sedan tio år varit ledare för det industriella excellenscentret EASE (Embedded Applications Software Engineering). Hans forskning bygger på tät industri-akademi-samverkan och har berört olika aspekter av test och kvalitet, men också om öppen innovation och hur det digitala samhället utvecklas.

Vad är det viktigaste som har hänt inom software engineering de 10 sista åren?
Inom näringsliv och samhälle har det varit enorm expansionen av mjukvara som vi använder och är beroende av varje dag. Att det är så många funktioner som trots allt fungerar så bra är fantastiskt. Det som möjliggjort utvecklingen är de robusta och distribuerade system som ligger till grund för internet. Blir det problem, så hålls det oftast lokalt. Samtidigt finns hela tiden risken att vi bygger ihop systemen så att de blir mer och mer beroende av varandra, och då ökar riskerna för problem.

En annan trend är tillgången på användardata. Stora aktörer som Google, Facebook och Apple har skapat fantastiskt bra tjänster, baserat på att användarna inte insett och värderat att vi betalar för tjänsterna med vår integritet. Balansen mellan integritet och tillgång till användardata har nu satts i fokus inom EU genom GDPR, medan det till exempel i Asien går på helt andra hållet och totalitära regimer skapar övervakningssamhällen som får DDR att blekna.

Vilka är de viktigaste trenderna just nu?
Det pratas oerhört mycket om artificiell intelligens (AI) och maskininlärning (ML). Hur mycket verkstad det kommer bli av snacket återstår att se, men det oroar mig att man inte pratar mer om utmaningarna med den mjukvara som ska realisera AI och ML. Hur verifierar man ett system som inte är definierat vid systemrelease, utan ska automatiskt utvecklas över tid? Det handlar inte bara om funktionella egenskaper, utan kan involvera frågor om etik och värderingar. Ett exempel är Microsofts försök med en twitter-bot som blev rasistisk, eftersom den speglade och lärde sig av kommunikationen på twitter. Hur definierar vi att ett system ska vara icke-rasistiskt och icke-diskriminerande, och hur verifierar vi att det är och förblir så?

Andra frågor som jag själv forskat på de senaste åren, är hur företag kan stimulera och leda öppen innovation i öppen-källkods-projekt. Volymen kod växer och därmed underhållskostnaden. För att hålla den på en rimlig nivå och få resurser över till ny innovation, måste man dela kostnaderna för det som är ”commodity” – koden som alla behöver men ingen har någon konkurrensfördel av. Att hantera detta gränsland mellan proprietärt och öppet är inget nytt, men allt bransch efter bransch blir beroende av att lära sig att hantera det, både när det gäller kod i produkterna och i utvecklingsverktyg.

Hur skall Sveriges lärosäten möta dessa utmaningar?
Först och främst behöver vi förmedla förmågan till kritiskt tänkande till våra studenter. Om mjukvaruutveckling ska bli mindre modenycker och mer baserat på faktakunskap om vad olika metoder och tekniker kan åstadkomma, så måste kommande generationers ingenjörer vara bättre på att utvärdera och bedöma dessa. Vi har sådana inslag i våra utbildningar, men det borde vara mycket mer. Vidare behöver ingenjörerna förstå mer om hur tekniken samspelar med sin omgivning, lagar och regler, etik och normer.

Forskningen kan bidra med ett alternativt perspektiv, som ifrågasätter industrins invanda mönster. Genom att se på mjukvaruutvecklingen lite från sidan, kan forskarna bidra till nya insikter. Däremot tror jag inte forskarna i första hand kommer att komma med nya innovationer – akademin kommer aldrig i närheten av näringslivets innovationsvolym och finansiella styrka – men vi kan bidra med att utvärdera och förstå.

Hur kan Sveriges industri möta dessa utmaningar?
Mjukvara, mjukvara, mjukvara. Industrin måste så snabbt som möjligt förstå att bransch efter bransch blir kritiskt beroende av mjukvara för sina produkter och tjänster, och att kompetensen bland såväl medarbetare som chefer måste avspegla detta. Det finns också en stor potential i att samverka mellan branscher – dels för att mjukvarans utmaningar är ganska lika tvärs över domäner, dels att det skapar en möjlighet till innovationer som går mellan traditionella branscher. Där ger digitaliseringen nya möjligheter, som bygger på att mjukvarusystemen blir branschöverskridande och inte inlåsande.

Hur passar din forskning in i detta?
Vår forskning kring öppen innovation har gett oss insikter i hur företag kan tjäna pengar på att ge bort mjukvara, men att det behövs medvetna strategier för att man ska åstadkomma det. Jag har också ett projekt inom WASP (Wallenberg AI, Autonomous Systems and Software Program) där min doktorand jobbar med kontinuerlig experimentering och närmar oss frågor om hur sådana lärande system ska designas och verifieras. Sedan kvarstår samma utmaningar som vi jobbat med i 50 år sedan 1968 då begreppet Software Engineering lanserades: kravhantering, testning, arkitektur, utvecklingsmetoder, programspråk, etc. Det har vi jobbat med inom EASE i 10 år, och har fortfarande många utmaningar framför oss. När vi flyttar fram kunskapsfronten ett steg så bygger vi genast lite mer avancerade och komplexa system, som gör att vi behöver ta ytterligare steg framåt i forskningen.

Vem vill du sända stafettpinnen vidare till?
Inom WASP har det rekryterats nya, internationella forskare inom mjukvara med fokus på framtidens utvecklingsverktyg, som Martin Montperrus på KTH. Jag skulle vilja höra hans internationella perspektiv på svenskt näringsliv och forskning.

Nicolas Martin-Vivaldi
Nicolas Martin-Vivaldi
nicolas.martin-vivaldi@addalot.se