Många organisationer lider av att ha ett för komplext applikationslandskap. Det får en stor inverkan på dess förmåga att ha kontroll över IT-kostnader, såväl som att effektivt kunna svara på förändrade affärskrav. Att lära sig och förstå hur komplexiteten kan minskas är ofta ett bra utgångsläge för den som vill sänka sina IT-kostnader och samtidigt öka verksamhetens effektivitet och flexibilitet.
Faktor X
Många IT-organisationer delar idag samma typer av problem - problem som har negativ effekt både på IT-organisationen själv och på verksamheten som den stödjer. Ett av de vanligaste och viktigaste problemen är att den löpande årliga kostnaden för att underhålla IT-tillgångar som applikationer och infrastruktur är för hög i förhållande till hur mycket pengar som läggs på strategisk utveckling. Många företag vill sänka både den absoluta och relativa kostnaden för underhåll, för att kunna frigöra medel och resurser till att bemanna utveckling, eftersom detta ofta ökar affärsvärdet, åtminstone från ett strategiskt och konkurrensmässigt perspektiv.
Dessutom är många företag bekymrade över dyra, segdragna och riskabla förändringar i IT-miljön. Ofta har man dålig kännedom om hur det totala applikationslandskapet ser ut, och kunskapen är ofta låg för hur förändringar i applikationer, informationsmodeller och integrationer påverkar varandra. Det här leder till att man har svårt att isolera förändringar, d.v.s. det kan vara svårt att förutse vilka problem som en förändring kan leda till. Resultatet kan bli ökad ”time-to-market”, vilket kan vara förkrossande för företaget.
Från verksamhetens sida uttrycks problemen ofta på ett annat sätt. Det är inte ovanligt att höra klagomål som ”vi är tvingade att använda så många olika applikationer för att klara vårt dagliga arbete”, ”det är för svårt att få tillförlitlig, förstålig och övergriplig information från våra system” eller ”varför tar det så lång tid att införa förändringar i vår IT-miljö?”. Sådana här uttalanden tyder ofta på svagheter i ett IT-landskap, som på sikt leder till minskat affärsvärde från IT.
Den här typen av IT-relaterade problem är väldigt vanliga och finns i många organisationer som använder IT i sin kärnverksamhet. Låt oss anta att alla dessa problem egentligen är symptom på en gemensam faktor. Skulle det då inte vara sunt att försöka eliminera den här faktorn? Det skulle definitivt hjälpa att lösa ovanstående problem och resultatet skulle bli mindre slöseri av resurser och tid och samtidigt ökat affärsvärde.
Acandos ståndpunkt är att en sådan faktor finns, m.a.o. det finns en gemensam bakomliggande orsak till många och ofta stora problem för både IT-organisationen och verksamheten. Den faktorn är ett komplext applikationslandskap.
Ett komplext applikationslandskap har många aspekter
Komplexitet är aldrig en fördel, och bör alltid bekämpas. Detta är särskilt sant när det gäller ditt applikationslandskap. Ett enkelt, väldefinierat och lättförståeligt applikationslandskap skulle inte orsaka de problem som beskrivs ovan, eller åtminstone försvaga dem. Därför är det viktigt att veta vad som gör ett landskap komplext, så att vi vet hur det kan förenklas.
Allmänna definitioner av komplexitet säger ofta att graden av komplexitet i ett visst system bestäms av:
antalet enheter i systemet
graden av förhållanden mellan enheterna
graden av likformhet mellan enheterna
Enheter i ett system kan vara anställda i ett företag, stationer i ett tunnelbanenätverk, transistorer i en CPU etc. I vårt fall betyder definitionen att komplexitet till stor utsträckning bestäms av antalet applikationer, hur många integrationer det finns mellan dessa applikationer, och hur lika applikationerna är – med tanke på teknisk plattform, programmeringsspråk, gränssnitt etc.
Historiskt sett har många företag fokuserat på att implementera nya applikationer för att stödja verksamhetens nya krav. Att utöka funktionalitet i redan befintliga applikationer har ofta kommit i andra hand, och att avveckla system har varit ännu mer ovanligt. Det är fortfarande många fler projekt som heter ”Implementera systemet X” än ”Avveckla systemet Y”. Resultatet av ett sådant beteende leder ofta till ett stort antal applikationer. Många stora företag kan ha tusentals olika applikationer.
Den mest kraftfulla metoden att förenkla landskapet är att minska antalet applikationer. Samtidigt som det är den mest effektiva metoden är den ofta också möjlig att använda då många organisationer har en stor potential att förminska applikationsdensiteten. En väg att gå är att konsolidera applikationer. Konsolidering kan göras från olika perspektiv, till exempel över geografiska områden, över processer, funktioner, eller en kombination av dessa. Vad som är bäst beror ofta på det enskilda fallet och vilka faktorer som driver konsolideringsbehovet.
Att avveckla system är ett resultat från konsolidering, men kan också vara en separat strategi. Behovet hos en specifik applikation kan avta, delvis eller helt, på grund av ändringar i verksamheten eller i teknologi. Även om behovet för applikationen är försumbart, är den fortfarande installerad och tar personal- och infrastrukturresurser i anspråk. En annan motivering till att pensionera en applikation är att det värde den levererar är för litet i förhållande till dess kostnad.
I stora organisationer är det vanligt att hitta flera instanser av en och samma applikation. Det här problemet är ofta bundet till geografi, där uppfattningen är att faktorer som prestanda, språk i användargränssnitt och lokala avvikelser kräver separata instanser av applikationen. Till exempel kanske varje säljföretag inom en global organisation har en egen lokal instanser av den globala CRM-applikationen, med syfte att säkerställa prestanda och ha möjlighet att få användargränssnittet i det lokala språket.
Multiplicering av instanser gör underhållet av applikationen svårt och tidskrävande. Acandos erfarenheter från olika företag visar dock att det går att förebygga dessa problem i en singelinstansmiljö genom att använda modern teknik och en anpassad systemarkitektur. I dessa fall bör man alltså satsa på att konsolidera instanser.
Med ett minskat antal applikationer behöver man också ofta ett färra antal integrationer. Integrationer måste utvecklas, underhållas och supportas, vilket driver kostnader. Integrationer är dessutom ofta felkällan till informationsfel. Om vi återkopplar till den allmänna beskrivningen av komplexitet, ser vi att en reducering av antalet beroenden mellan enheter kommer att förenkla systemet. Med andra ord: En arkitektur som leder till ett förminskat antal applikationsintegrationer resulterar i ett enklare och mindre komplext applikationslandskap. Att eliminera punkt-till-punkt-integrationer genom att implementera en gemensam integrationsplattform är väldigt viktigt för att kunna kontrollera och minska problemen som orsakas av ett komplext applikationslandskap.
En annan effektiv strategi för att minska komplexitet i ett allmänt system är att isolera enheter från varandra. Översatt till applikationslandskapet innebär isolera applikationer att göra dem så självständiga som möjligt, d.v.s. att en applikation skall kunna fungera för sig själv utan att vara beroende av någon annan applikation. Det här kan vara svårt att uppnå, då många applikationer är beroende av information från andra applikationer. Med smarta arkitekturbeslut kan graden av självständighet öka.
Att använda många olika applikationsplattformar och teknologier tenderar också till att accelerera komplexiteten. Landskap som är byggda på både legacysystem och moderna teknologier är ofta svårare att drifta och underhålla, speciellt vad gäller integration och användarupplevelse. Konsolidering av teknologier och plattformar är en bevisad väg att reducera grundläggande komplexitet i ett applikationslandskap. Genom att utveckla och implementera applikationer som är byggda med samma teknologi och plattform blir de lättare att utveckla, underhålla och använda, eftersom de kommer att kräva kompetens i färre områden, de kommer ha liknande look-and-feel, färre plattformslicenser etc. En annan fördel är också att integration mellan applikationerna ofta underlättas.
Ett något annorlunda perspektiv, men med samma effekt, är att förenkla applikationen. Alltför många applikationer är utvecklade för att möta funktionella krav som har gått ur tiden, eller kanske aldrig ens varit relevanta. Att analysera nuvarande användning av de centrala och mest använda applikationerna kan vara en mycket bra startpunkt i en förenklingsprocess. En förenklad applikation kommer minska onödig tidsåtgång för både slutanvändare och IT-organisationen.
Den ökade tillgängligheten och appliceringen av “Software-as-a-Service” och molntjänster kan både förvärra och förminska komplexiteten. Dessa relativt sett nya metoder att leverera IT-tjänster gör det mycket lättare för en anställd eller gruppering att börja använda nya applikationer utan att involvera IT-organisationen. Detta ökar antalet applikationer i landskapet, men om en större del av verksamheten börjar använda tjänsten kommer IT-organisationen till slut att behöva supportera den, integrera den etc. Å andra sidan, att aktivt migrera flera applikationer in i en molnmiljö på ett strukturerat sätt kan hjälpa att förenkla det interna applikationslandskapet, eller åtminstone flytta problemen med komplexitet utanför organisationen.
Som vi sett finns det alltså flera olika faktorer som bidrar till komplexiteten hos ett applikationslandskap. För att förminska komplexiteten är det därför dessa faktorer som måste åtgärdas.
Investera i EA och PPM
Två välkända discipliner kan effektivt motverka faktorer som bidrar till komplexitet: Enterprise Architecture (EA) och Project Portfolio Management (PPM).
Att förstå det kompletta applikationslanskapet, dess styrkor och svagheter, och hur det bistår verksamheten är avgörande för att effektivt kunna kontrollera och förminska komplexitet. Lösningen på denna utmanande uppgift är EA. Det huvudsakliga syftet med EA är att optimera process-, organisations-, informations- och applikationsstruktur och relationer för att underlätta önskade verksamhetsförändringar. Därmed blir det tydligt att en effektiv, välfungerande EA-funktion är väldigt viktig, och ibland nödvändig, för att optimera applikationslandskapet och bekämpa komplexitet.
EA kan hjälpa till att förändra ett komplext landskap till ett mindre komplext landskap, men lika viktigt, EA innehåller också metoder för att förhindra att man åter faller tillbaka till utgångsläget präglat av komplexitet. Om EA inte implementeras korrekt, finns en stor risk att fortsatta förändringar resulterar i gradvis ökad komplexitet. Den viktigaste delen av lösningen för att motverka detta är EA-styrning. EA-styrning säkerställer att förändringar i applikationslandskapet är sunda, genom att validera varje förändring mot arkitekturmålplaner samt EA-principer och standarder.
Följaktligen är det uppenbart att det är en förutsättning att ha god kunskap om alla nya och pågående projekt, för att göra EA-arbetet effektivt. Det är här som PPM kommer in i bilden. Huvuduppgifterna för PPM är att se till att organisationen ”gör rätt saker” – alltså att bra projekt prioriteras före dåliga projekt, och att ”saker görs på rätt sätt” – alltså att de utvalda projekten genomförs effektivt.
Genom att låta PPM-funktionen samarbeta och utdela information med EA, kommer tydliga effekter att uppnås. PPM kan förse EA med viktig information om projektinitiativ och pågående projekt, där EA snabbt kan identifiera projektbeslut som inte går i linje med EA-planen. EA kan också enklare hitta projekt som behöver ytterligare arkitekturstöd eller arkitekturgranskning. En annan fördel med att integrera EA och PPM är att portföljen med EA-förändringsprojekt kan optimeras med hjälp av PPM, vilket kommer att snabba upp implementationen och reducera den totala riskbilden. Dessutom kan EA-principer och standarder användas i projektprioriteringsprocessen, vilket är ett kraftfullt sätt att förhindra komplexa applikationslandskap.