Lehden aiheesta projektikäytäntöön
Artikkeliin liittyvät palvelu- ja tekniikkasivut
Monissa yrityksissä tärkein liiketoimintaohjelmisto ei ole uusin, vaan se, joka toimii luotettavasti joka päivä: kasvanut Delphi/VCL-työpöytäsovellukset. Ne ohjaavat prosesseja, toteuttavat erityislogiikkaa ja kommunikoivat tietokantojen, tiedostojärjestelmien, tulostimien, skannereiden sekä ERP- ja DMS-rajapintojen kanssa. Juuri siksi korvaaminen on riskialtista – ja juuri siksi kannattaa pystyä modernisoimaan vanhoja VCL-sovelluksia vaiheittain sen sijaan, että rakennettaisiin kaikki uudelleen yhdellä Big-Bang-kerralla.
Vaiheittainen modernisointi tarkoittaa: säilyttää toiminnallinen vakaus, purkaa teknistä velkaa kohdennetusti, saattaa turvallisuus- ja käyttövaatimukset ajan tasalle ja pysyä samalla aina toimitus- ja käyttökelpoisena. IT-johtajuudelle, ylläpidolle ja teknisille projektivastaaville ratkaisevaa ei ole niinkään „kaunein“ teknologia, vaan suunnitelma, joka ottaa realistisesti huomioon tiedot, rajapinnat, käyttöönoton, oikeudet ja ylläpidon.
Artikkeli kuljettaa käytännössä todetun modernisointipolun läpi: inventoinnista ja tavoitearkkitehtuurista tietojen käyttöön (esim. BDE-Ablösung), 32-/64-bittisyydestä ja Unicodesta aina REST-API:hin, portaaliyhteyksiin ja käyttökonsepteihin. Painopiste on päätöksissä, joilla on arjessa vaikutusta: päivitettävyys, vikasietoisuus, tietoturva, observability (lokit/mitat) ja hallittu migraatio.
Miksi modernisoida VCL-järjestelmiä, jos ne „kuitenkin toimivat“?
Se, että VCL-sovellus toimii, ei tarkoita, että se olisi helposti ylläpidettävä. Usein modernisoinnin syyt eivät ilmene käyttöliittymäsuunnittelussa, vaan käytössä: käyttöjärjestelmämuutokset, uudet turvallisuusohjeistukset, tietokantapäivitykset, verkkosegmentointi tai uudet vaatimukset autentikointiin ja lokitukseen. Monet riskit paljastuvat vasta, kun päivitys on ajankohtainen – usein aikapaineen alla.
Tyypilliset ajurit yrityksissä:
- Alustapaine: 32-bittiset rajoitukset, Windows-koventaminen, uudet Windows-versiot, virtualisointi tai Windows 11 ARM64 osissa ympäristöä.
- Tietojen käyttö ja ajurit: vanhentuneet DB-layerit (esim. BDE), hoitamattomat ODBC-ketjut, virheellisesti hallitut transaktiot, puuttuvat pooling-strategiat.
- Rajapintavalmius: tarve REST-API:lle, tapahtumaintegraatiolle, portaaliyhteyksille tai yhteyksille kolmansien osapuolten järjestelmiin.
- Tietoturva & Compliance: TLS-standardit, audit-trailit, roolimallit, salaisuuksien käsittely, palveluiden koventaminen.
- Käyttökustannukset: manuaaliset asennukset, hauraat päivitysohjelmat, puuttuva telemetria, vaikeasti toistettavat virheet.
Modernisointi ei siis ole kosmeettinen projekti, vaan riski- ja käyttökustannuspäätös. Haasteena on suojata toiminnallinen ydinlogiikka samalla, kun tekninen kuori uusitaan vaiheittain.
Modernisointi uuden kehittämisen sijaan: päätöskehys IT:lle ja liiketoiminnalle
„Uudelleen rakentaminen“ kuulostaa usein selkeämmältä, mutta käytännössä se on usein monivuotinen ohjelma, jolla on korkea laajuusriski. Vaiheittainen modernisointi sopii paremmin, kun sovellus on toiminnallisesti kestävä mutta kärsii teknisistä pullonkauloista. Ratkaisevaa on selkeä päätöskehys, joka perustelee valinnat operatiivisesti eikä ideologisesti.
Hyväksi on todettu luokittelu neljän akselin mukaan:
- Toiminnallinen vakaus: Ovatko prosessit ja säännöt pääosin vakaat vai jatkuvassa muutoksessa?
- Tekninen kunto: Onko olemassa estäviä tekijöitä (BDE, vain 32-bittinen, ei Unicode-tukea, vanhentunut kryptografia, ei päivitettävissä olevia komponentteja)?
- Integraatiopaine: Täytyykö API:t, portaalit, raportointi, DMS-/ERP-liitännät laajentaa lyhyellä aikavälillä?
- Käyttöriski: Kuinka kriittinen saatavuus on, ja kuinka suuri on katkeamisriski päivitysten yhteydessä?
Jos toiminnallinen vakaus on korkea ja suurimmat riskit ovat teknisiä, modernisointi on usein pragmaattisin ratkaisu. Tärkeää: modernisointi ei ole „jatketaan samalla tavalla“, vaan kontrolloitu ohjelma, jolla on tavoitearkkitehtuuri, mittauspisteet ja hyväksymiskriteerit.
Nykytilan kartoitus: Mitä todella tulee mitata
Ensimmäinen vaihe ratkaisee vauhdin ja laadun. Pelkän „lähdekoodin katsomisen“ sijaan kyse on operatiivisesta inventaariosta. Tavoitteena on luotettava kartta: mitä komponentteja on, mitkä riippuvuudet ovat kriittisiä, ja mitkä muutokset aiheuttavat sivuvaikutuksia?
Tekninen inventaario kymmenessä kohdassa
- Delphi-versio ja työkaluketju: kääntäjän tila, build-prosessi, riippuvuudet, kolmannen osapuolen komponentit.
- Käyttöliittymä ja moduulirakenne: monoliittiset Forms, dynaamiset paketit, laajennusmekanismit.
- Tietojen käyttö: BDE/ADO/ODBC/BDE-korvaus natiiviliitännällä, transaktiorajat, tietokantakohtaiset SQL-ominaisuudet.
- Tietokannat: versiot, huoltoikkunat, varmuuskopiointi/palautus, replikaatio, tallennetut proseduurit.
- Integraatiot: tiedostotuonnit, SMTP, SOAP/REST, TCP/IP, tulostus/etiketit, skannerit, toimistoautomaatio.
- Käyttöönotto: MSI, XCOPY, updateri, oikeudet, polut, ryhmäkäytännöt.
- Turvallisuus: todennus, roolit, salaus, TLS-versiot, salaisuudet, sertifikaatit.
- Käyttö: lokit, diagnostiikka, kaatumisdumpit, monitorointi, tukiprosessit.
- Datan laatu: duplikaatit, vanhat jäänteet, enkoodaus, aikaleimat, monivuokralaisuus.
- Testattavuus: toistettavat testitapaukset, testidata, hyväksymisprosessit, regresiotestit.
Samaan aikaan kannattaa lyhyt haastattelukokonaisuus käyttö- ja avainkäyttäjien kanssa: missä arjen kipukohdat ovat? Mitkä prosessit ovat kriittisiä? Mitkä virhetilanteet vievät eniten aikaa? Näistä voidaan määrittää modernisointijärjestys, joka on sekä teknisesti että operatiivisesti järkevä.
Tavoitearkkitehtuuri: Layer-3 ohjenuorana vaiheittaiseen uudistukseen
Vaiheittainen modernisointi tarvitsee tavoiterakenteen, muuten korjataan vain yksittäisiä ongelmia. Monissa Delphi-/VCL-ympäristöissä puuttuu selkeä erottelu käyttöliittymän, domain/liiketoimintalogiikan ja infrastruktuurin/tietojen käytön välillä. Layer-3-arkkitehtuuri (esitys, domain/liiketoimintalogiikka, infrastruktuuri/tietojen käyttö) on tässä helppo viestittävä ohjenuora, ilman että koko järjestelmää tarvitsee purkaa heti.
Tärkeää on IT:n ja käytön näkökulma: kun liiketoimintalogiikka on siististi kapseloitu, myöhemmin voidaan palvella useita front-endejä (Desktop, portaali, palvelu), lisätä rajapintoja ja konsolidoida tietokantakutsuja. Samalla pienenee riski, että UI-muutokset muuttavat tahattomasti datan sääntöjä.
Mitä kerroksellisuus parantaa käytössä
- Julkaisukyky: pienemmät muutokset voidaan paikallistaa, regressiot vähenevät.
- Turvallisuus: keskeiset kohdat käyttöoikeuksille, syötevalidoinnille ja auditoinneille.
- Rajapinnat: REST-API tai Windows-/Linux-Services voivat uudelleenkäyttää liiketoimintalogiikkaa.
- Migraatio: tietokantamuutos ja ajurinvaihto kohdistuvat ensisijaisesti infrastruktuurikerrokseen.
Kohdearkkitehtuurin ei tarvitse olla „täydellinen“. Sen on oltava riittävän konkreettinen ohjaamaan päätöksiä: mihin uusi logiikka kuuluu? Miten tietojen käyttö kapseloidaan? Mitkä API:t ovat vakaita?
Vanhojen VCL-sovellusten vaiheittainen modernisointi: Ein Etappenplan, der im Alltag funktioniert
Kestävä modernisointipolku etenee vaiheittain, joissa kukin tuottaa mitattavissa olevan hyödyn ja valmistelee seuraavaa vaihetta. Tämä vähentää projekti- ja käyttöönottoriskiä, koska jokaisen vaiheen jälkeen voidaan ottaa käyttöön vakaa versio.
Vaihe 1: Buildin, riippuvuuksien ja release-prosessin vakauttaminen
Monet legacy-ongelmat eivät ole koodiongelmia vaan prosessiongelmia: buildit ovat yksittäisillä työasemilla, asennuspaketit tehdään manuaalisesti, riippuvuuksia ei versionoida. Ensimmäinen toimenpide on siis toistettava build-prosessi ja yhdenmukainen paketoiminen.
- Build-automaation ja määriteltyjen kääntäjä-/kirjastoversioiden käyttö
- Kolmannen osapuolen komponenttien ja konfiguraatioiden versiointi
- Standardoidut käyttöönottoaskeleet (ml. palautus (rollback))
Tulos: päivitykset muuttuvat ennakoitavammiksi, tuki voi yksiselitteisesti tunnistaa tilat, ja tekninen velka tulee näkyväksi eikä piiloon.
Vaihe 2: Tietojen käytön modernisointi (tyypillisesti: BDE-korvaus)
BDE (Borland Database Engine) on monissa ympäristöissä keskeinen este: vanhat ajuriketjut, hauras asennus, rajallinen tuki moderneille tietokannoille ja turvallisuusstandardit. Korvaus ei tähtää vain „toiseen ajuriin“, vaan selkeään tietojen käyttökerrokseen.
Delphi-projekteissa on BDE-Ablosung mit nativer Anbindung yleinen datan käyttökerroksena, koska se tukee DB-backendejä (esim. PostgreSQL, SQL Server, MariaDB) puhtaasti, tekee parametrisidonnasta ja transaktioista hallittavia ja yksinkertaistaa ajurien hallintaa. IT:lle ratkaisevaa on: vähemmän erikoisasennuksia asiakkailla, selkeämpi konfiguraatio ja paremmat diagnostiikkamahdollisuudet yhteysongelmissa.
Tärkeitä migraation näkökohtia tässä vaiheessa:
- Transaktiorajat tehdä eksplisiittisiksi (missä alkaa/päättyy yksi liiketoimintatoimenpide?).
- SQL-variantit tunnistaa (DB-kohtaiset funktiot, päivämääräkäsittely, lukitukset).
- Yhteydenhallinta standardoida (timeoutit, pooling-strategia, uudelleenyritykset vain kohdennetusti).
- Konfiguraation hygienia: yhteysmerkkijonot, sertifikaatit, salaisuudet eivät saa olla kovakoodattuja.
Vaihe 3: Unicode- ja 64-bittituen suunnitelmallinen toteutus
Unicode-migraatio ja 64-bittiin siirtyminen eivät ole pelkkä „rasti kääntäjään“, vaan laatuasia. Unicode koskee merkkijonoja, tiedostonimiä, rajapintoja ja tietokantoja (collation/encoding). 64-bitti koskee osoittimen kokoa, ulkoisia DLL:ejä, tulostin-/skanneriohjaimia ja COM-riippuvuuksia.
Projektivastuullisille kannattaa: näitä aiheita ei pidä lykätä sprintin loppuun, vaan käsitellä omana vaiheena selkeillä testitapauksilla. Tyypillisiä kompastuskiviä ovat vientiformaatit (CSV/Fixed Width), PDF- ja raportointityönkulut sekä tiedonsiirto vanhojen järjestelmien kanssa, jotka yhä odottavat 8-bittistä enkoodausta.
Vaihe 4: Rajapintojen jälkiasennus – ilman työpöytäympäristön epävakauttamista
Monet yritykset haluavat tarjota VCL-sovelluksesta tietoja portaalien, BI:n tai kolmansien osapuolten järjestelmien käyttöön. Turvallinen tapa on yleensä API-suojakerros: selkeästi versionoitu REST-API (HTTP-pohjainen rajapinta), joka kontrolloidusti eksponoi toiminnallisen logiikan. Näin ei „kauko-ohjata“ asiakasohjelmaa, vaan toiminnallisia operaatioita tarjotaan palveluina.
Tämä irrottaa muutokset: työpöytä säilyy vakiona olemassa oleville käyttäjille, kun uudet integraatiot kasvavat API:n kautta. Tärkeitä näkökulmia käytölle ja tietoturvalle:
- Todennus/valtuutus: esim. token-pohjainen, valinnainen integraatio SSO:hon (usein SAML 2.0 yritysympäristöissä).
- Rate Limits und Timeouts: suojaamaton kuormitus eräintegraatioiden takia.
- Versionierung: API-versiot estävät yhteensopimattomia muutoksia liitetyille järjestelmille.
- Audit: kuka muutti mitä ja milloin (toiminnallinen), ei pelkästään „Request kam an“.
Etappe 5: Portal- oder Service-Komponenten ergänzen (C# oder Delphi – architektonisch sauber)
Monissa modernisoinneissa työpöydän rinnalle syntyy asiakasportaali tai sisäinen web-alue. Se, toteutetaanko tämä osa C#:ssa vai Delphi:ssa, on vähemmän ratkaisevaa kuin yhteinen arkkitehtuuri: yhtenäinen tietomalli, selkeät vastuunjaot ja vakaat rajapinnat. IT:lle on tärkeää, että käyttö, lokitus, käyttöoikeudet ja käyttöönotto sopivat olemassaolevaan ympäristöön (esim. Microsoft IIS web-osa-alueille tai Linux-palvelut taustakäsittelyyn).
Käytännössä tehtäväjako on usein seuraava:
- Desktop (VCL): prosessiläheinen käyttöliittymä, offline- ja LAN-lähitoiminnot, laiteintegraatiot.
- Services: taustatyöt, validoinnit, tuonnit/viennit, jonojen käsittely, ajoitetut suoritukset.
- Portal: itsepalvelu, tilakyselyt, dokumentit, selainpohjaiset työnkulut.
Näin syntyy järjestelmä, joka voi kasvaa vaarantamatta olemassa olevaa ydintä.
Tietokannan modernisointi: „käy“ -> „ylläpidettävä“
Monet VCL-sovellukset ovat tiiviisti sidoksissa tietokantahistoriaan: Paradox-perintöä, Firebird, vanhemmat SQL Server -versiot tai hybridimuodot. Tietokantamigraatio onnistuu, kun sitä ymmärretään data- ja käyttöprojektiluonteisena, ei pelkkänä skeeman kopioimisena.
Mitä IT:n tulisi selventää ennen migraatiota
- Varmuuskopiointi/palautus ja RPO/RTO: Kuinka nopeasti järjestelmän pitää olla jälleen verkossa ja kuinka paljon datan menetystä voidaan sietää?
- Huoltoikkuna ja käyttökatkon strategia: Big-Bang, rinnakkaisajo vai inkrementaalinen siirtymä.
- Merkistöt ja collation-asetukset: merkityksellisiä Unicode-tekstien sekä lajittelu- ja hakulogiikan kannalta.
- Transaktioiden eristys ja lukitus: relevanttia suurten rinnakkaisuuksien ja eräajojen yhteydessä.
- Raportointi: kolmansien osapuolten työkalujen (BI, Excel, ETL) suorat tietokantayhteydet on huomioitava.
Monille yrityksille istuu PostgreSQL vaihtoehtona, koska sitä on alustana helppo ylläpitää ja se tarjoaa selkeät työkalut varmuuskopiointiin, monitorointiin ja käyttöoikeuksien hallintaan. Ratkaisevaa on kuitenkin se, että sovelluksen on puhtaasti abstrahoitava SQL- ja tyyppierot — muuten jokaisesta kyselystä tulee poikkeustapaus. Juuri tässä hyötyy konsolidoitu tietojen käyttökerros (esim. FireDAC).
Turvallisuus ja käyttöoikeudet: Modernisointi ilman uutta hyökkäyspintaa
Perinteiset työpöytäsovellukset suunniteltiin usein aikana, jolloin „LANissa“ oli automaattisesti „luotettava“. Nykyään se on harvoin hyväksyttävää: segmentointi, Zero-Trust-lähestymistavat, etätyö ja auditointivaatimukset kasvattavat painetta. Modernisoinnin on siten tuotava turvallisuus mukanaan ilman, että toiminta halvaantuu.
Konkreettiset toimenpiteet, jotka on helppo ottaa käyttöön vaiheittain:
- Keskitetty autentikointimekanismi: selkeä erottelu identiteetin (kirjautuminen) ja roolien (käyttöoikeudet) välillä.
- Siirtoenkryptaus: pidä TLS ajan tasalla, suunnittele sertifikaattien hallinta.
- Salaisuuksien käsittely: ei salasanoja INI-tiedostoissa; käytä suojattuja säilöjä tai keskitetysti hallittuja salaisuuksia.
- Audit-loki: kirjaa toiminnalliset muutokset (kuka/mikä/milloin), ei vain teknisiä lokitietoja.
- Syötteen validointi: erityisesti uusissa API:issa tiukka ja keskitetty.
Päätöksentekijöille tärkeää: turvallisuus ei ole „lisä“, jonka voi liimata loppuvaiheessa. Kun API:t, palvelut tai portaalit syntyvät, turvallisuusarkkitehtuurin on oltava alusta alkaen osa tavoitearkkitehtuuria.
Käyttö ja hallinnointi: mitä modernisointi parantaa tuntuvasti
Vaiheittaisen modernisoinnin suurin hyöty löytyy usein alueilta, joita vaatimusmäärittelyissä aiemmin harvoin mainittiin: valvonta, vianetsintä, käyttöönotto, valmius hätätilanteisiin. Erityisesti VCL-sovellusten kohdalla, jotka ovat kasvaneet orgaanisesti vuosien aikana, pieni paketti käyttöparannuksia voi merkittävästi vähentää tukikuormaa – ilman että loppukäyttäjä heti näkee uuden käyttöliittymän.
Tarkistuslista für „betriebsgerechte“ Komponenten
- Konfiguraatiostandardi: keskitetysti dokumentoitu, ympäristökohtainen (Dev/Test/Prod), jäljitettävät oletusarvot.
- Rakenteiset lokit: tapahtumat korrelaatioilla (esim. prosessin tunniste), selkeät lokitasot, ei arkaluonteisia tietoja selväkielisenä.
- Monitorointi: palveluiden terveystarkastukset, yhteystila tietokantaan, työn suoritusajat, jonojen pituudet.
- Asennin/päivitysohjelma: hiljainen asennus mahdollinen, palautusstrategia, selkeät oikeudet.
- Vianmääritys: toistettavat kaatumistiedot, selkeät tukitiedot (Version, Modulstand, Konfiguration).
Ylläpitäjille erityisen relevanttia: kun taustalogiikka siirretään työpöydältä Windows- tai Linux-palveluihin, ajoajat, uudelleenkäynnistyskäyttäytyminen ja resurssien käyttö on helpompi hallita. Samalla pienenee riski, että „avoin asiakasohjelma“ estää eräprosessin.
Testaus- ja migraatiostrategia: rinnakkaiskäyttö pysähdyksen sijaan
Vaiheittainen modernisointi nousee ja kaatuu regressiotestien varaan. Tarkoitetaan ei vain yksikkötestejä (joita legacyssa usein puuttuu), vaan ennen kaikkea toiminnallisia end-to-end-skenaarioita: tyypilliset toiminnot, kriittiset poikkeamat, massadata, tulostusajot, tuonnit/viennit. Yrityksille on tärkeää, että nämä testit ovat suunniteltavissa ja toistettavissa.
Pragmaattiset lähestymistavat, kun testipohjaa ei ole
- Golden Master: määriteltyjä syötteitä varten tallennetaan tuotokset/raportit/tietotilanteet ja verrataan niitä uusiin tiloihin.
- Testausdatan paketti: anonymisoituja tietokantoja tai synteettisiä datoja, jotka sisältävät edustavia reunatapauksia.
- Vaiheittaiset rajapintatestit: API-sopimukset ja tuontiformaatit todennettavana spesifikaationa.
Migraatioissa (tietokanta, Unicode, 64‑bit) kannattaa käyttää rinnakkaiskäyttöä siellä, missä se on mahdollista: uudet komponentit ajetaan aluksi rinnakkain olemassa olevan järjestelmän kanssa, ne tuottavat tuloksia tai raportteja ilman, että olemassa olevaa järjestelmää sammutetaan välittömästi. Näin syntyy luotettavia vertailuja, ja siirtymä muuttuu hallituksi päätökseksi sen sijaan, että se olisi hyppy tuntemattomaan.
Tyypilliset sudenkuopat – ja miten ne vältetään
Monet modernisoinnit eivät epäonnistu tekniikan takia, vaan väärän järjestyksen tai puuttuvien ohjenuorien vuoksi. Kolme mallia esiintyy erityisen usein:
- UI ensin: Uusi frontend ilman selkeästi määriteltyjä liiketoimintalogiikka- ja tietojen käyttökerroksia siirtää ongelmat vain eteenpäin ja tekee myöhemmistä vaiheista kalliimpia.
- „Pelkkä ajurien vaihto“: Bei BDE-Ablösung tai tietokantavaihto ilman transaktio- ja SQL-tarkastusta johtaa vaikeasti löydettäviin toiminnallisiin virheisiin.
- Integraatio ilman tietoturvaa: Nopea jälkiasennettu API ilman roolimallia, auditointia ja pyyntörajoituksia muodostuu pysyväksi hyökkäyskohteeksi.
Vastaus on vaiheittainen suunnitelma selkeillä laatuvaatimuksilla: Jokaisen vaiheen on oltava otettavissa käyttöön, sisältää monitoroinnin ja läpäistä määritellyt toiminnalliset testit. Silloin modernisointi muuttuu sarjalliseksi parannusprosessiksi, ei jatkuvaksi projektiksi.
Yhteenveto: Modernisointi on ohjelma – ei yksittäinen tapahtuma
Vanhemmat VCL-sovellukset ovat usein kasvaneiden prosessien selkäranka. Ne, jotka korvaavat ne, eivät korvaa pelkästään koodia vaan myös käyttöosaamista. Sen sijaan ne, jotka modernisoivat niitä vaiheittain, voivat yhdistää vakautta ja jatkokehitystä: yhdenmukaistaa tietojen käyttöä (mukaan lukien BDE-korvaaminen), tehdä Unicode/64‑bittituen suunnitelmalliseksi, täydentää API:t ja palvelut siististi sekä keventää tuotannon kuormitusta lokituksen, monitoroinnin ja toistettavissa olevien julkaisujen avulla.
Keskeinen seikka on arkkitehtuuri ohjaavana kaiteena: liiketoimintalogiikka ja tietojen käyttö erotetaan niin, että uudet vaatimukset (portaali, rajapinnat, raportointi, uusi tietokanta) voidaan toteuttaa kontrolloidusti. Näin syntyy digitaalinen yritysratkaisu, joka ei ainoastaan toimi, vaan on myös päivitysten, tietoturvavaatimusten ja integraatiopaineen alla luotettavasti ylläpidettävissä.
Jos haluatte määrittää luotettavan modernisointipolun VCL-/Delphi-olemassa olevalle sovelluksellenne, jäsennellään lähtötilanne, riskit ja vaiheet teknisessä alkuhaastattelussa:
Asiantuntijaympäristössä myös Delphi-modernisointi ja VCL-legacy-sovellus näyttelevät tärkeää roolia, kun integraatioiden, datavirtojen ja jatkokehityksen on toimittava saumattomasti yhdessä.
Keskustelkaa projektista tai modernisointihankkeesta Net-Base kanssa.
Seuraava vaihe
Kun aiheesta tulee todellinen projekti, arkkitehtuuri, nykyinen järjestelmäkanta ja käyttö tulisi varhaisessa vaiheessa tarkastella yhdessä.
Emme tue pelkästään yksittäiskysymyksissä, vaan myös silloin, kun lähdekoodipalasista, legacy-aiheista tai portaali-ideoista halutaan muodostaa luotettava yrityshanke.
- Nykytila, tavoitetila ja tekniset riskit arvioidaan yhdessä.
- REST, datan käyttö, portaalit ja käyttöönotto eivät jätetä myöhempien seurausten varaan.
- Näette ajoissa, mikä ratkaisu on taloudellisesti ja toiminnallisesti kestävä.