Net-Base Magasin

14.07.2026

Refaktorere Legacy-kode i Delphi: redusere risiko, auke vedlikehaldbarheit, sikre drift

Etablerte Delphi-applikasjonar er ofte forretningskritiske – men kvar lita endring blir dyrare. Denne artikkelen visar korleis du kan refaktorisere Legacy-kode i Delphi utan å setje drifta i fare: med tydeleg tilstandskartlegging, prioriterte tiltak, testar, data- og...

14.07.2026

Frå magasinetema til prosjektpraksis

Passande teneste- og tekniske sider til innlegget

Video-Botschaft

Refaktorere Legacy-kode i Delphi: redusere risiko, auke vedlikehaldbarheit, sikre drift

Kurze Einordnung, warum kontrolliertes Refactoring bei geschäftskritischen Delphi-Systemen Betriebssicherheit und Änderungsfähigkeit verbessert, ohne einen riskanten Rewrite zu starten.

Video mit KI erstellt

Transkript anzeigen

Hallo. Kurz ein Thema, das im Betrieb schnell teuer wird.

Der Beitrag heißt: „Legacy-Code in Delphi refactoren: Risiken senken, Wartbarkeit erhöhen, Betrieb sichern“. Wenn jede kleine Änderung ein potenzieller Ausfall ist, werden Releases langsam, und niemand fasst das System gern an.

Legacy heißt hier nicht nur „alt“. Es heißt: schwer erklärbar, stark verknüpft, und dadurch riskant.

Refactoren bedeutet: umbauen, ohne das Verhalten zu ändern. Also kein Rewrite, sondern ein kontrollierter Umbau am fahrenden System.

Wichtig für Admins und IT-Leitung ist die Reihenfolge: erst Bestandsaufnahme. Was ist geschäftskritisch?

Wo hängen Datenbank, Schnittstellen und Jobs dran? Dann kleine, priorisierte Schritte, abgesichert durch Tests und sauberes Logging, damit Fehler auffallen, bevor Nutzer sie melden.

Wenn Sie dazu Fragen haben, schauen wir es gern gemeinsam an.

Delphi-applikasjon, kjenner dette spenningsfeltet: Ho køyrer stabilt, dekkjer kjerneprosessar og er djupt integrert i databasar, grensesnitt og arbeidsflytar. Samstundes aukar endringsomfanget og risikoen for kvart release, fordi kompromiss, spesialtilfelle og avhengigheiter har bygd seg opp over år. Det er her Refaktorering av Legacy-kode i Delphi kjem inn: ikkje som eit «Rewrite»-prosjekt, men som ei kontrollert ombygging på eit system i drift – med målbare effektar på vedlikehaldsvennlegheit, releasesikkerheit og drift.

I praksis feilar refaktorering sjeldan på Delphi sjølv, men på manglande transparens: Kva er fagleg kritisk? Kvar ligg teknisk gjeld (det vil seie strukturelle manglar som gjer seinare endringar dyrere)? Kva delar kan handterast i vedlikehaldsvindauge, og kva ikkje? Og korleis blir det forhindra at «opprydding» skapar nye feil eller ytelsesproblem i produksjon? Denne artikkelen skildrar ein praksisnær tilnærming som tek med IT-leiing og administrasjon: frå kartlegging via arkitektur- og dataemne til testar, release-prosess og tryggingsspørsmål.

Kva betyr «Legacy» i Delphi-prosjekt eigentleg?

«Legacy» blir ofte likstilt med «gammal». I ein bedriftskontekst er legacy-kode derimot først og fremst kode med høg endringsrisiko og med åtferd som berre delvis kan forklarast. Det kan vere ein VCL-applikasjon (Visual Component Library, klassisk Windows-desktop-UI), men òg ein teneste, ein scheduler eller eit klient-server-system.

Typiske legacy-kjenneteikn i Delphi-omgjevnader er:

  • Sterk kopling: UI, datatilgang og forretningslogikk er blanda; endringar fører til sideeffektar.
  • Implisitte reglar: Faglogikk ligg i hendingar, globale variablar eller database-triggers, ikkje i tydelege moduler.
  • Gamle datatilgangar: til dømes BDE (Borland Database Engine) eller proprietære komponentar; manglande pooling-/timeout-strategiar.
  • Uensartet feilhandsaming: unntak blir svelgde, meldingar blir ikkje sendt til sentralt logging.
  • Build- og release-følsamheit: avhengigheiter, problem med filstiar, ulike kompilator-innstillingar, manuelt etterarbeid.
  • Manglande testar: kunnskap ligg i hovuda eller i «klikk-rutinar» til erfarne brukarar.

Viktig: Legacy-kode er ikkje automatisk «dårleg». Oftast er han resultat av tidspress, teknologisyklusar og pragmatiske val. Refaktorering blir då ein investering i handterbarheit – frå perspektivet til drift, tryggleik, etterleving og endringstempo.

Refaktorering vs. Rewrite: Kva endrar seg for drift og risiko

Eit Rewrite (nyutvikling) lovar ein rein start, men fører ofte med seg lange parallelle fasar, nye feiltypar og høge migrasjonsrisikoar. Refaktorering derimot sikter mot inkrementell forbetring med kontinuerleg leveringskapasitet. For IT-drift og fagavdelingar er dette ofte den avgjerande skilnaden: Systemet held produksjon, og forbetringar blir leverte i overkomelege pakkar.

Praktisk avgrensing:

  • Refaktorering: Strukturen blir forbetra, det ytre åtferda skal vere uendra. Fokus: vedlikehaldsvennlegheit, testbarheit, stabilitet, ytelsesreserve.
  • Restrukturering/Modernisering: i tillegg målretta åtferdsendringar, t.d. nye grensesnitt, ny database, nye plattformmål.
  • Omskriving: ny kodebase, vanlegvis ny UI/arkitektur; krev migrasjon av data, prosessar, grensesnitt – ofte „Big Bang“ eller lang overgangsfase.
  • For beslutningstakarar er punktet sentralt: Refaktorering er ikkje eit mål i seg sjølv, men ein spak for å redusere endringsrisiko. Det er direkte relevant for drifta når applikasjonen påverkar 24/7-prosessar, produksjonsnære arbeidsflytar eller kundeberørte portalar.

    Legacy-kode i Delphi refaktorere: Start med ei påliteleg statuskartlegging

    Det første steget er ikkje eit verktøy, men ei felles forståing av risiko og mål. Utan denne forståinga endar refaktorering raskt i „vi ryddar litt her“ – og nett dette er vanskeleg å rettferdiggjere i drift.

    1) Kritikalitet og driftsrealitet kartleggje

    Kartlegg kva delar som verkeleg er forretningskritiske: dagsavslutning, grensesnitt til ERP/DMS/CRM, innsamling av produksjonsdata, avrekning, rettigheitsstyring. Legg til driftsparameter: vedlikehaldsvindauge, rollback-moglegheiter, overvaking, datavolum, latenskrav.

    Nyttige rettleiande spørsmål:

    • Kva funksjonar må halda fram å køyra ved delvise feil (degraderingsevne)?
    • Kvar finst „Single Points of Failure“ (t.d. ein sentral Scheduler)?
    • Kva data er reguleringsmessig eller personvernrettsleg sensitive?
    • Kva integrasjonar er mest feilsensitive (filimportar, TCP/IP, SOAP/REST, messaging)?

    2) Gjere teknisk gjeld synleg – ikkje berre kodestil

    I Delphi-prosjekt er teknisk gjeld ofte arkitektonisk: globale tilstandar, sykliske avhengigheiter mellom einingar, vanskeleg testbare dataaksessar, eller UI-hendingar som „Orchestrierung“. Metriar (t.d. kompleksitet, einingsstorleik, avhengigheitsgraf) hjelper, men er berre verdifulle når dei blir omsette til tiltak.

    Eit praktisk rammeverk er ei 2×2-vurdering:

    • Ofte endra & risikofylt: høgaste prioritet for refaktorering.
    • Ofte endra & lite risikofylt: forbetre prosessar/testar, mindre strukturelle tiltak.
    • Sjeldan endra & risikofylt: stabilisering/sikring (testar, logging), ikkje nødvendigvis „schön machen“.
    • Sjeldan endra & lite risikofylt: la medvite liggje.

    3) Inventariser avhengigheiter: data, grensesnitt, køyringstid

    For administrasjon og prosjektansvarlege er det avgjerande kva som heng utanfor koden: database-backends, ODBC/OLE DB, fil-delingar, utskrift- og PDF-flytar, COM/ActiveX, Office-automatisering, Windows-tenester, planlagde oppgåver, sertifikat, proxy-konfigurasjonar.

    Her oppstår kostnader ved refaktorering ofte indirekte: Ein „klein“ endring kan tvinge fram ny installasjonslogikk, nye rettar eller nye firewall-reglar. Desse sideeffektane bør tidleg dokumenterast i eit teknisk kart.

    Typiske problemområde i Delphi-legacy og korleis ein går målretta til verks

    Refaktorering blir handterleg når den rettar seg mot gjentakande mønster. Følgjande område er i praksis ofte dei største risiko- og kostnadsfaktorane.

    Monolittiske Forms: Når UI held systemet saman

    Mange VCL-applikasjonar er historisk «Form-driven» veksne fram: Skjemaet lastar data, kontrollerer reglar, skriv tilbake, triggar rapportar og oppdaterer andre skjermar. Det fungerer – inntil fleire team eller fleire år med endringshistorikk treff på det.

    Ein driftsmessig vellukka tilnærming er å avlaste UI trinnvis:

    • Use-case-nære tenester etablere: faglege operasjonar som klart namngjevne metodar i staden for event-kjeder.
    • Kapsle inn datatilgang: spørringar/transaksjonar ikkje i UI-hendingar, men i datatilgangslag.
    • DTOar/Modellar (enkle dataobjekt) nytte for å skilje tilstanden i skjemaet frå tilstanden i databasen.

    Målet er ikkje «Pattern-Reinheit», men betre testbarheit og færre sideeffektar: Ei endring i validering eller berekning skal ikkje setje heile UI-klikksekvensen i fare.

    Modernisere datatilgang: BDE avløyse, FireDAC konsekvent ta i bruk

    Hvis framleis BDE eller ujamne datakomponentar er i bruk, er refaktorering ofte samstundes ei modernisering av driftsrisikoen. BDE er ikkje berre gamal, men ofte vanskeleg å drifte: drivarar, konfigurasjon, 32-Bit-avhengigheiter og manglande moderne sikkerheitsmekanismar.

    BDE-Ablösung mit nativer Anbindung (Delphis moderne datatilgangsbibliotek) er i mange scenario ein fornuftig standard når ein arbeider konsekvent: eintydige tilkoblingsparameter, klare transaksjonsgrenser, timeouts, pooling og ryddig exception-handtering. Typiske refaktoreringstiltak i dette området:

    • Samordne tilkoblingshandtering: sentral Factory/Provider i staden for „jede Form hat ihre Connection“.
    • Gjer transaksjonar eksplisitte: Begin/Commit/Rollback som del av Use-Case, ikkje skjult i UI.
    • Parameteriserte spørringar nytte konsekvent for å redusere SQL-Injection-risikoar og problem med spesialteikn.
    • Definere Timeouts og Retries, slik at heng i nettverket ikkje fører til «innfrosne» skjermar.

    For IT-drift er det viktig at nye tilkoblingsstrategiar blir samkjørte med databasedrift (t.d. maksimale forbindelsar, pool-størrelsar, Deadlock-Handling, vedlikehaldsvindauge for skjemaendringar).

    Unit-Abhängigkeiten und „globale Zustände“ als Hauptursache für Seiteneffekte

    Delphi-Units med store interface-seksjonar, mange Uses-oppføringar og globale Singletons er typiske akseleratorar for sideeffektar. Ei lita endring i ei Unit fører til Rebuild-Kaskaden eller bryt skjulte Initialisierungsreihenfolgen.

    Pragmatiske tiltak som har vist seg å fungere i Legacy-Projekten:

    • Fastsetje avhengigheitsretningar: t.d. UI → Application Services → Domain/Logik → Data Access → Infrastruktur.
    • Sentralsisere initialisering: klar Startup-Sequenz i staden for Unit-Initialization som skjult styring.
    • Redusere globale variablar: hald tilstand i objekt, avklar levetid og Ownership.

    Det betrar stabiliteten: Når oppstarten er deterministisk, er feil etter oppdateringar eller konfigurasjonsendringar lettare å handtere.

    Threading und Synchronisation: Stabilität vor „Performance-Optimierung“

    Mange Legacy-Anwendungen blir over tid samtidige: bakgrunnsimportar, Polling, kommunikasjon med Geräte, parallell behandling. Uten klare reglar oppstår Deadlocks, UI-Hänger eller race conditions (tilgangskonflikte ved samtidig utføring).

    For drift og support er dette eit problem, fordi det ofte skapar «ikkje-reproduserbare» feil. Refaktorisering bør her sikte mot standardar:

    • Tydeleg eigaransvar for trådar/oppgåver og definert avslutting (slik at oppdateringar/avslutting ikkje heng).
    • Logging per Worker med korrelasjons-ID, for å kunne spore prosessar.
    • Minimer synkronisering og kapsle UI-tilgangar strikt (UI-trådregelen).

    Dersom ein ønskjer å fordjupe seg i dette, kan det vere formålstenleg å plassere ein intern lenkje til eit innlegg om robuste mønster med TThread og Synchronize, fordi temaet ofte er flaskehalsen for stabilitet ved legacy-refaktorisering.

    Målbilete for arkitektur: Lagdeling som verkemiddel, ikkje som dogme

    Eit praktisk målbilete for mange Delphi-bestandsløysingar er ei klar lagstruktur (ofta meint som «3-lag»): Presentasjon (UI), applikasjonslogikk (Use Cases/Services) og dataåtkomst (Repositories/DAO). Viktig er den driftsmessige perspektivet: Lagdeling legg til rette for testar, oppdateringar og seinare utskifting av grensesnitt.

    Konkret fordelar for verksemder:

    • Ettermontere grensesnitt (t.d. REST-API), utan at UI-logikk må kopierast.
    • Delvis modernisering: databaseskifte eller BDE-Ablosung mit nativer Anbindung-omlegging kan samlast i eitt lag.
    • Vedlikehald: Feil kan avgrensast raskare, fordi ansvarsfordelinga i koden er tydelegare.

    Eit realistisk målbilete tek høgde for at legacy-system sjeldan blir «reine». Avgjerande er at retninga er riktig og at nye endringar ikkje gjer strukturen lausare att.

    Teststrategi for Delphi-refaktorisering: Korleis ein fryser åtferda før ein byggjer om

    Refaktorisering utan testar er i forretningskritiske system eit risiko. Samstundes er full testautomatisering ofte ikkje realistisk på kort sikt. Det sentrale poenget er derfor: test målretta der risiko og endringspress er høgt.

    Golden Master og regresjon: Praktisk for legacy

    Ein «Golden Master» er ein referanse for dagens åtferd: inngangar og forventa utgangar blir festa for å kunne oppdage avvik etter endringar. Dette passar for rapportar, berekningar, eksportar, import-pipelines eller svar frå grensesnitt.

    Viktig for drift: Golden-Master-testar minkar risikoen for at sideeffekt først viser seg etter rollout – og dei støttar raske Hotfix-vedtak, fordi avvika blir konkret målbare.

    Integrasjonstestar kring database og grensesnitt

    Mange feil oppstår ikkje i rein domenelogikk, men ved systemgrenser: transaksjonar, teiknsett (t.d. Unicode), tidsstempel, desimalteikn, rettar, nettverksavbrot. Integrasjonstestar bør derfor minst dekkje følgjande punkt:

    • Transaksjonsatferd ved feil (Rollback, deloppdateringar, låsing).
    • Teiknsett/Encoding ved import/eksport (CSV, XML, JSON), særleg ved spesialteikn.
    • Ytelsesprofilar for typiske datamengder, for å fange opp gradvise forverringar.

    Manuelle testtilfelle blir verande – men strukturerte

    Dersom automatisering enno manglar, er strukturerte manuelle testplanar kopla til release nyttige. Frå administrasjonssynspunkt er det viktig at testtilfella også dekkjer driftsaspekt: installasjons-/oppdateringsbane, rettar, konfigurasjon, logging/overvaking, skrivarar/PDF og nettverksspor.

    Data og migrasjon: Refaktorisering blir ofte avgjort på skjema-nivå

    I Delphi-system har databasstrukturar vakse over år. Refaktorering kolliderer ofte med «historiske» tabellar, dubble felt eller fagleg overbelasta kolonnar. Det kritiske punktet: skjemaendringar rører ved drift, backup/restore, replikasjon, rapportering og grensesnitt.

    Gjer skjemaendringar planbare

    Eit velfungerande tilnærmingsmåte er å ha tydeleg versjonerte databasemigrasjonar: kvar endring i skjemaet blir dokumentert som eit reproducerbart steg, inkludert rollback-strategi. Sjølv om migrasjonar i starten blir køyrde manuelt, er disiplinen avgjerande: ingen «vi endrar raskt i produksjon».

    For releasesikkerheit bør De fastsetje:

    • Behov for nedetid: Er online-migrasjon mogleg, eller trengst eit vedlikehaldsvindu?
    • Tilbakerullingsstrategi: Datakompatibilitet ved rollback, sikkerheitskopiar før migrasjon, plan for gjenoppstart.
    • Kompatibilitetsfase: Applikasjonen kan i ei overgangsperiode arbeide med gamalt og nytt skjema (t.d. tilleggs-kolonnar, Views).

    Ikkje undervurder datakvalitet og opprydding

    Ei refaktorering avdekker ofte dataproblem som tidlegare har „fylt“ systemet: ugyldige verdiar, inkonsistenser, manglande fremmednøklar. Her er det viktig å fagleg avgjere kva som er korrekt. Teknisk bør applikasjonen framover validere grundigare og protokollere feil etterprøvbart, i staden for å rette stille.

    Ettermontere grensesnitt utan å destabilisere legacy-systemet

    Mange bedrifter refaktorerer Delphi-bestandar fordi nye krav tvingar fram integrasjonar: portalar, BI, mobile prosessar, partnarintegrasjonar. Den vanlegaste feilen er å mate grensesnitt direkte frå UI-logikk eller «ein eller annan stad i koden». Det er betre å plassere grensesnitt i eit konsolidert servicesjikt som allereie blir etablert under refaktoreringa.

    Når ein REST-API (Representational State Transfer, vanleg Web-API over HTTP/JSON) blir ettermontert, er følgjande frå drift- og sikkerheitsynspunkt særleg viktige:

    • AuthN/AuthZ: Autentisering og autorisering tydeleg skilde; t.d. tokens, SAML 2.0 i samanheng med bedrifts-SSO, klare rollemodellar.
    • Rate Limits und Timeouts: slik at eksterne klientar ikkje blokkerer backend.
    • Versjonshandtering: Definer API-versjonar for å unngå at klientar blir brotne ved kvar endring.
    • Observability: strukturerte loggar, korrelasjons-IDar, metrikker (feilrater, latensar).

    Ein intern lenkje til ein fordjupande artikkel om ettermontering av ein REST-API for eksisterande programvare kan her utfylle innhaldet godt, fordi grensesnitt i moderniseringsprosjekt sjeldan er eit «add-on», men eit eige driftprodukt.

    Sikkerheit og compliance: Refaktorering som høve til å tette sikkerheitshòl

    Legacy betyr ofte at sikkerheitsforutsetningane er eldre enn dagens trusselbilete. Ved refaktorering bør De minst sjekke om systemet må oppdaterast på følgjande område:

    • Credentials und Secrets: Ikkje passord i INI-filar eller i kode; sikker lagring og rotasjon.
    • Transportverschlüsselung: TLS for grensesnitt, ryddig sertifikathandtering.
    • Least Privilege: databasebrukarkontoar og filrettar så minimale som mogleg; separate roller for lesing/skriving/administrasjon.
  • Reviderbarheit: etterprøvbare endringar på kritiske data (Kven? Kva? Når?), utan å gjera loggdata til eit personvernproblem.
  • For IT-leiinga er dette ein sentral forretningsgevinst: refaktorisering reduserer ikkje berre vedlikehaldskostnader, men kan òg redusere sikkerheits- og revisjonsrisikoar dersom det blir gjennomført på ein strukturert måte.

    Release- og driftsprosess: Utan ein ryddig pipeline blir refaktorisering dyrt

    Mange Delphi-legacy-prosjekt slit mindre med koden enn med prosessen: builds varierer mellom arbeidsstasjonar, release-handtering er manuell, og feil kan ikkje sporast tilbake på ein ryddig måte. Refaktorisering bør derfor alltid òg stabilisere leveranseprossen.

    Byggreproduserbarheit og konfigurasjonsstyring

    Frå administrasjon- og revisjonssynspunkt er det viktig at eit release er reproduserbart: same kjelder, same Compiler-/Library-versjonar, same avhengnader. Det inneber tydeleg avgrensa konfigurasjonar for utvikling, test og produksjon (t.d. databaseendepunkt, loggnivå, feature-flags).

    Logging, overvaking og støtteevne

    «Det har skjedd noko» held ikkje i drift. Refaktorisering er ei god moglegheit til å innføre einskapleg logging: strukturerte loggoppføringar, entydige feilkodar, kontekst (brukar, tenantar, oppdrag, grensesnitt) og klar skilnad mellom tekniske feil og faglege valideringar.

    For prosessar med tilnærma 24/7-drift er det i tillegg nyttig med:

    • Health Checks (t.d. databasetilkobling, køopphoping, minnebruk),
    • Alarmering etter alvorlegheitsgrad,
    • Runbooks for gjenoppstart og typiske hendingar.

    Eit praktisk refaktoreringsfremdriftsplan i 6 steg

    For at refaktorisering ikkje skal gå i stå i det daglege arbeidet, hjelper ein klar framdriftsplan som er kompatibel med release-syklusar. Eit prøvd framgangsmønster:

    1. Utarbeide risiko- og endringskart (modulane, grensesnitt, data, drift).
    2. Etablere vernande nett: logging-standard, første regresjons-/Golden-Master-testar for kritiske løp.
    3. Trekk arkitekturgrenser: tenestelag og innkapsling av data-tilgang som «ny normal» ved endringar.
    4. Refaktorere hotspotar: modulane som ofte blir endra og skaper feil eller nedetid (bruk feilstatistikk og endringshistorikk).
    5. Konsolider datatilgang: FireDAC/transaksjonar/timeouts gjere einskaplege, måle ytelse, sjekke deadlocks.
    6. Opne moderniseringsvegar: grensesnitt (REST), plattformtema (Unicode/64‑Bit), gradvis UI-modernisering der det er fornuftig.

    Kjernen er rekkefølgja: fyrst transparens og sikring, deretter strukturelle tiltak, og så større ombyggingar. Slik held løysinga seg leveringsdyktig og driftssikker.

    Når refaktorisering ikkje er nok: signal for ei større modernisering

    Det finst situasjonar der rein refaktorisering ikkje løyser flaskehalsen. Typiske signal:

    • Teknologiske blindvegar: ikkje lenger støtta databasedrivarar, komponentar som ikkje kan patchast, harde 32‑Bit-avhengnader.
    • Arkitekturen passar ikkje lenger: t.d. må applikasjonen driftast som ei tenestelandskap, men alt er UI-sentrert.
    • Skalering og tilgjenge: krav til støtte for fleire tenantar, høg tilgjenge eller fjernaksess kan berre oppfyllast gjennom strukturelle endringar.
    • Tryggingskrav: autentisering/SSO, revisjon, kryptering kan ikkje ettermonterast utan større ombygging.

    Også då er refaktorisering ofte ein fornuftig del: Det skapar orden for å målretta skille ut delar, i staden for å erstatte heile systemet på ein gong.

    Konklusjon: Refaktorisering som teknisk ansvar i løpande drift

    Å refaktorisere legacy-kode i Delphi er først og fremst eit spørsmål om prioritering, risikostyring og driftsnærleik. Når de startar med ein påliteleg tilstandsanalyse, sikrar hotspotar, konsoliderer datatilgang og arkitekturtrennlinjer og retnar testar og logging målretta mot kritiske stiar, blir «opprydding» eit styrbart moderniseringsprosjekt. Resultatet er ikkje berre betre lesbar kode, men eit system som let seg drifte meir påliteleg, let seg endre på ein tryggare måte og let seg enklare integrerast.

    Dersom de ønskjer å stabilisere eller modernisere dykkar Delphi-bestandsløysing strukturelt, avklarar vi gjerne saman utgangssituasjon, risikoar og ein realistisk veg for refaktorisering:

    I fagleg samanheng spelar også Delphi modernisering og Delphi refaktorisering ei viktig rolle, når integrasjonar, dataflyt og vidareutvikling må fungere sømlaust saman.

    Drøft prosjekt eller moderniseringsprosjekt med Net-Base.

    neste steg

    Når temaet blir eit reelt prosjekt, bør arkitektur, eksisterande system og drift tidleg saman vurderast.

    Vi støttar ikkje berre ved enkeltspørsmål, men òg når korte kildekodesnuttar, legacy-tema eller portalidéar skal utviklast til eit robust bedriftsprosjekt.

    • Eksisterande tilstand, målbiletet og tekniske risikoar blir vurderast samla.
    • REST, datatilgang, portalar og utrulling blir ikkje utsett til seinare fasar.
    • De ser tidleg kva veg som er økonomisk og driftsmessig berekraftig.

    Del innlegg

    Del dette innlegget direkte

    LinkedIn, X, XING, Facebook, WhatsApp og e-post er straks tilgjengelege. For Instagram klargjer vi lenke og kort tekst med det same.

    E-post

    Instagram opnar i ein ny fane. Lenkje og kort tekst blir kopiert til utklippstavla på førehand.