Programminženierija ir nozare, kas nodarbojas ar datorprogrammu veidošanu un uzturēšanu, praksē pielietojot atziņas no datorzinātnes, projektu un procesu vadības, un citām nozarēm.[1][2] Programminženieris ir persona, kas izmanto inženiertehnisko projektēšanas procesu, lai izstrādātu, uzturētu, pārbaudītu un novērtētu datoru programmatūru. Dažkārt kā sinonīmu lieto terminu programmētājs, taču tas var arī vairāk attiekties uz ieviešanu, nevis dizainu, kā arī var trūkt inženierzinātņu izglītības vai prasmes.[3]
Inženiertehniskās metodes izmanto, lai informētu par programmatūras izstrādes procesu,[4] kas ietver programmatūras dzīves cikla procesa definēšanu, ieviešanu, novērtēšanu, mērīšanu, pārvaldību, izmaiņas un uzlabošanu. Tas lielā mērā izmanto programmatūras konfigurācijas pārvaldību,[4] kas ir sistemātiska konfigurācijas izmaiņu kontrole un konfigurācijas un koda integritātes un izsekojamības uzturēšana visā sistēmas dzīves ciklā. Mūsdienu procesos izmanto programmatūras versiju noteikšanu.