Software engineering is een gebied van de techniek, voor het ontwerpen en schrijven van programma's voor computers of andere elektronische apparaten. Een software-ingenieur, of programmeur, schrijft software (of verandert bestaande software) en compileert software met behulp van methoden die de software verbeteren. Software van betere kwaliteit is gemakkelijker te gebruiken. Betere documentatie helpt anderen de software te begrijpen en te onderhouden en nieuwe functies toe te voegen. Software-ingenieur worden vereist ervaring en oefening in het schrijven van code. Software engineering kan zeer moeilijk werk zijn. Het kan zich herhalen tijdens de levenscyclus van de software-release.