Koodin siirto on ohjelmointikoodin siirtoa järjestelmästä toiseen. Koodin siirtämisessä on kolme eri tasoa, joiden monimutkaisuus, kustannukset ja riski lisääntyvät. Yksinkertainen siirto tarkoittaa siirtymistä kielestä uudempaan versioon. Toinen, monimutkaisempi siirtymistaso sisältää siirtymisen eri ohjelmointikielelle. Täysin uudelle alustalle tai käyttöjärjestelmään siirtyminen on monimutkaisin siirtotyyppi.
Ensimmäinen koodinsiirtotyyppi on yksinkertainen siirtyminen kielen yhdestä versiosta uudempaan, mutta syntaktisesti erilaiseen versioon. Tämä on helpoin siirtoreitteistä, koska perusrakenne ja suuri osa ohjelmointirakenteista eivät yleensä muutu. Monissa tapauksissa vanha koodi todella toimisi, mutta uusia ja parannettuja rutiineja tai modulaarisuutta voidaan parantaa muuttamalla koodia uuden kielen luonteen mukaan. Siksi koodin siirtäminen tehostaisi suorittamista.
Koodinsiirron toinen taso olisi siirtyminen täysin eri ohjelmointikielelle. Tämä voi johtua siirtämisestä uuteen ohjelmistojärjestelmään tai toisen relaatiotietokantojen hallintajärjestelmän (RDMS) käyttöönotosta. Tämäntyyppinen siirto edellyttää usein, että ohjelmoijat oppivat kokonaan uuden kielen, tai että uusia ohjelmoijia otetaan mukaan auttamaan siirtymisessä. Tällöin koko ohjelma on kirjoitettava alusta alkaen. Vaikka suurin osa rakenteista on todennäköisesti olemassa molemmilla kielillä, tarkka syntaksi on yleensä täysin erilainen.
Monimutkaisin esimerkki koodinsiirrosta on siirtyminen kokonaan uudelle alustalle ja/tai käyttöjärjestelmälle. Tämä ei ainoastaan muuta ohjelmointikieltä, vaan myös kielen takana olevaa konekoodia. Vaikka useimmat nykyaikaiset ohjelmointikielet suojaavat ohjelmoijaa tältä matalan tason koodilta, käyttöjärjestelmän ja sen toiminnan tunteminen on välttämätöntä tehokkaan ja odotetusti toimivan koodin tuottamiseksi.
Siirtotyypistä riippumatta lähestymistavan tulisi olla sama. Siirtotiimin tai ohjelmoijan tulee jakaa kaikki moduulit, toiminnot ja alirutiinit tarkoitukseensa ja vuokaavioon. Tämä on alkuperäisen ohjelmistokehityksen elinkaaren (SDLC) käänteinen suunnittelu. Kun nämä moduulit ja toiminnot on kartoitettu korkean tason tarkoitukseensa, ne voidaan kirjoittaa uudelleen ja testata osastoidusti uudella kielellä. Kuten mikä tahansa edistynyt tietokoneohjelmointiprojekti, asianmukainen suunnittelu ja dokumentointi ovat avain onnistuneeseen koodinsiirtoon.