”Software is eating the world”, säger många och tänker på hur Google och andra jättar tar över IT-världen på hårdvarubolagens bekostnad – viktigt att betänka är dock att mjukvaran inte gör detta på egen hand.
Programvara spelar en allt viktigare roll i vårt dagliga liv, eftersom den är inbäddad i de produkter vi använder varje dag. Moderna bilar har exempelvis hundra gånger så mycket kod som F22-stridsflygplanet, och denna siffra fortsätter öka tack vare anslutna bilar, övergången till självstyrande fordon och hybrid- och elfordon.
– För ett decennium sedan svarade mjukvaran för mindre än 20 % av kostnaden för ett fordon och gjorde inte mycket för att en modell skulle skilja sig från en annan. Idag kommer 80 % av all produkt-utveckling och differentiering från kombinationen av programvara, elektronik och elsystem – inte traditionell mekanik, säger Siegmar Haasis, chef för forskning och utveckling för Mercedes Benz vid Daimler.
När nu programvaran är en sådan central del av produktutvecklingen måste mjukvaruutvecklingen integreras nära den övriga design- och tillverkningsprocessen. Detta är inte helt lätt då programvaran följer en snabbare, mer följsam och iterativ utvecklingsprocess som sällan är anpassad till hårvaruutvecklingen, som oftast tar längre tid.
För att kunna sammanföra dessa olika världar behöver verktygen för programvaruutveckling vara nära integrerade med processen för produktutveckling, men de måste också låta utvecklare koda i den miljö där de känner sig bekväma och produktiva. Genom att föra samman applikationsverktyg och verktyg för Product Lifecycle Management kan olika konsultgrupper samarbeta effektivt inom flera områden. Behovet av denna nära integration mellan ALM och PLM blir allt viktigare.
Samspelet mellan programvara och annan funktionalitet i produkten innebär att smarta produkter kan drabbas av mycket mer komplexa defekter när system som utformats av olika grupper inte fungerar bra tillsammans. Det kan innebära att man får felmeddelanden för ett system som inte ens installerats i fordonet. Det kan också medföra att man tar en helt ny lastbil tillbaka till återförsäljaren för att få navigationsprogrammet installerat och kör hem bara för att finna att programvaruuppdateringen har avaktiverat knappen på fordonets instrumentpanel som öppnar din garageport.
Programvaruproblem kan medföra betydligt värre problem än enkel irritation. Återkallelser av fordon och garantikrav är dyrt och kostnaderna ökar. 2016 sattes ett rekord då 927 återkallningskampanjer ledde till att 53,2 miljoner fordon plockades bort från vägarna bara i USA, och det är i allt högre grad problem med mjukvaran som är orsaken till återkallningarna.
Mellan 2011 och 2016 inträffade 189 olika programvarurelaterade återkallelser för fordon enligt undersökningsföretaget J. D. Power. Problemen omfattade allt från säkerhetsfel i underhållningssystem som låter säkerhetsforskare styra fordonssystem på distans, till programvaruproblem som gjorde att några SUV-dörrar öppnades oväntat, eller att motorn i vissa fordonstyper stannar och startar igen mitt under körning.
Före 2011 nådde antalet fordonsåterkallelser, orsakade av mjukvaruproblem, sällan upp till 5 % av den totala volymen. 2015 var nästan 15 % av återkallelserna programvarurelaterade. Siffrorna är ännu värre i andra branscher; år 2014 gjordes 24 % av alla återkallelser av medicintekniska produkter på grund av programvara.
Mjukvara och hårdvara skiljer sig inte bara åt under utveckling. Konsumenterna kan vara vana vid att byta ut sin smartphone vartannat år, medan fordon håller sig på vägen eller i luften länge. B52-bombaren har flugit i mer än 50 år och får programvaruuppdateringar varje månad, för många olika versioner av flygplanet och elektroniken. Det betyder att du har valet att göra kunderna besvikna och riskera en upprepad försäljning eller att uppdatera programvaran i en bil långt efter det att hårdvaruproduktionen är slut. Programvaruproblem som orsakas av uppdateringarna kan komma att orsaka problem flera år senare. Eller så kan du använda programvaruuppdateringar för att hantera andra problem. GM kunde använda en mjukvaruuppdatering för att automatiskt stänga av motorn i en Chevy Volt om den hade kört på tomgång under en längre tid. Det sparade inte bara bränsle och batteriet, det räddade livet på människor som hade lämnat motorn på i sina garage och riskerade förgiftning av kolmonoxid, eftersom fordonstypen är så tyst att de glömde att stänga av motorn.
För tio år sedan kunde du komma undan med att designa din produkt och sedan utveckla programvaran för att driva den, eller överlämna programvaruutvecklingen till en annan avdelning för att arbeta på, eftersom programvaran styrde diskreta, isolerade komponenter. Nu när elektromekaniska system är integrerade och sammankopplade är det inte längre hållbart. Integrationen måste inledas i början av en designprocess, när du fortfarande samlar in krav och förväntningar.
Dessa krav måste kombinera de regler som styr din bransch, produktkraven som du förmodligen redan hanterar i ett PLM-system och de olika kraven för hårdvara, mjukvara, elektronik och tillverkning som kommer att finnas i en rad olika verktyg, inklusive ALM. Alla dessa måste integreras och kopplas till implementeringsdetaljer och test- och simuleringsresultat. Att sammanföra mjukvarutestning och fysisk simulering kan minska antalet fysiska prototyper du behöver och samtidigt undvika dyra och farliga problem.
ALM- och PLM-system hanterar båda förändring, och det är ett av de viktigaste områdena att integrera, vilket innebär att man tydligt förstår förhållandet mellan olika moduler. Förändrings- förfrågningar under produktutvecklingscykeln måste analyseras för deras inverkan på både programvaru- och hårdvarukomponenter, och införandet av dessa förändringar måste samordnas mellan de grupper som är involverade i utvecklingen för att effektivisera verksamheten. Mindre skillnader i hårdvaran kan påverka programvarans prestanda väsentligt och programvarumodulerna kommer att ha olika funktioner beroende på hårdvaruplattformens konfiguration, så du måste kunna säkerställa rätt kombination av programvara och hårdvara.
Spårbarheten i olika system – hela vägen tillbaka till källdatan för alla olika varianter av en produkt – är nyckeln för att hantera beroendet mellan systemen, för att producera exakta materialräkningar som ska byggas ut och för att förstå varför beslut togs eller för att kunna gå tillbaka och spåra hur och varför problem uppstod.
Programvaruutvecklare och produktingenjörer vill inte lära sig nya system för att kunna göra detta arbete, och de vill verkligen inte ha ett enda system som inte passar deras olika behov och kulturer. De behöver ha all den information de ska ha för att kunna arbeta produktivt i den miljö de är bekanta med.
Vi håller nu på att utvecklas till en värld där allt ska anpassas individuellt, något som drivs av övergången till additiva tillverkningsprocesser som exempelvis 3D-utskrifter. Detta kommer göra att spårningsmöjligheten av en exakt kombination av hårdvaru- och programvarukomponenter i en produkt blir avgörande för service och support. Snabba prototyper blir norm och förkortar maskinvaruutvecklingsprocessen. Dessa trender kommer att göra integrationen av mjukvaru- och hårdvaruutveckling med verktyg som ”digitala tvillingar” ännu viktigare.
En digital tvilling av de fysiska komponenterna som integreras med software management-verktyg ger dig en levande version av produkter som kan göra tillverkning och support mycket flexiblare och responsiva men det fungerar bara om du har verktyg som kan fungera tillsammans för att göra det möjligt.
Om du inte tänker så långt framåt kan integrering av mjukvaru- och hårdvaruutveckling få en betydande inverkan på ditt slutresultat mycket snabbt. Genom att veta vilka hårdvaru- och programvarukomponenter som används i vilka varianter och serier av specifika fordonsprogram i olika territorier runt om i världen, ner till det enskilda fordonsidentifikationsnumret, har Ford kunnat uppdatera elektroniska styrenheter med mjukvaruproblem istället för att ersätta hårdvaran. Under tre år räddade företaget 100 miljoner dollar i garantikostnader – en stor avgift för ett system som också ökar kundtillfredsställelsen.