Siirtäminen eli porttaaminen (engl. porting) ohjelmoinnissa tarkoittaa ohjelman muokkaamista alustalta toiselle, joka on erilainen kuin johon se on alun perin suunniteltu. Eroja voivat olla suoritin, käyttöjärjestelmä, käytetyt ohjelmakirjastot ja niin edelleen.
Ohjelma on siirrettävissä, mikäli siirtoon tarvittava työmäärä on pienempi kuin ohjelman toteuttaminen alusta alkaen uudelleen.
Usein siirretystä ohjelmaversiosta puhutaan käännöksenä toiselle alustalle.
Siirtäminen voi vaatia käytettyjen alustakohtaisten toimintojen korvaamista toisilla, ohjelmakoodin uudelleenjärjestelyä alustan abstraktoimiseksi (tarpeen mikäli eri alustoja on tarkoitus tukea jatkossa) sekä laajempaa ohjelman uudelleen suunnittelua (esim. käyttöliittymän sovittaminen peliohjaimelle, kosketusnäytölle tai hiirelle sopivaksi).
Siirtämistä voi edeltää laajamittainen refaktorointi, jotta siirtämisessä tarvittavat toimenpiteet helpottuvat.
Vaadittava työmäärä voi vaihdella suuresti myös huolimatta siirtämiseen soveltuvan ohjelmointikielen käytöstä. UNIX/32V-käyttöjärjestelmän tekijät kirjoittivat:[1]
»[t]he (Bourne) shell [...] required by far the largest conversion effort of any supposedly portable program, for the simple reason that it is not portable.»