Mrtvi kod je kod unutar softverskog programa koji program ne može dosegnuti ili ga zapravo ne koristi. Može biti prisutan iz raznih razloga, a kako ljudi rade sa softverom, oni identificiraju mrtvi kod i odlučuju što učiniti u vezi s njim. U nekim slučajevima, ljudi ga mogu sigurno ukloniti bez ugrožavanja programa i to mogu učiniti kako bi program učinili učinkovitijim. Druge situacije mogu zahtijevati od ljudi da ostave kod ili da budu oprezni kada ga izrezuju kako bi izbjegli izazivanje problema.
Jedan od razloga postojanja mrtvog koda je korištenje rutina tijekom otklanjanja pogrešaka bez kasnijeg uklanjanja tih rutina. Program zapravo ne koristi kod i može biti odsječen od njega, ali ostaje u sustavu. Ljudi također mogu generirati mrtvi kod ponovnom upotrebom dijelova iz drugog programa, unošenjem promjena u softver ili umetanjem koda s idejom da ga koriste u budućnosti. Ovisno o strukturi programa, može izvršiti kod, ali ne učiniti ništa s njim, ili će mu materijal biti potpuno nedostupan.
Ovaj segment unutar programa gubi vrijeme i prostor. Također u nekim slučajevima može ometati funkcionalnost. Program može pronaći mrtvi kod zbunjujući ili zavaravajući i generirati pogreške. Kada ljudi pronađu primjere, moraju pažljivo pregledati program kako bi vidjeli kako kod s njim stupa u interakciju. Možda će biti potrebno umetnuti novi kod ili izmijeniti okolni materijal kako bi se šifra sigurno uklonila. U drugim slučajevima, može se sigurno izvaditi.
Kada se mrtvi kod sastoji od materijala dodanog imajući na umu buduće nepredviđene situacije, može se ostaviti na mjestu. Ljudi mu mogu pristupiti kada i ako je ikada potrebno i aktivirati ga kako bi ga program mogao koristiti. Ovo može biti korisno u situacijama kao što je otklanjanje pogrešaka, gdje ugrađene stvari u strukturu programa mogu olakšati prepoznavanje i rješavanje nedostataka i drugih problema. Kod također može stvoriti ranjivost, što je važno za razmatranje pri odlučivanju o tome kako se nositi s njim.
Sa svakim ažuriranjem, softver ima tendenciju nakupljanja nekih labavih krajeva i mrtvog koda tijekom vremena. Funkcije se mijenjaju, ljudi dodaju materijal, pridružuju se novi programeri i razmišljaju o izazovima kodiranja na drugačiji način, a detritus se nakuplja. Periodični pregledi radi provjere ima li stranog ili potencijalno zlonamjernog koda važan su dio upravljanja programom. Ljudi mogu izdati zakrpe ili nova izdanja kako bi riješili problem i omogućili korisnicima da uživaju u lakšem radnom iskustvu, kao i poboljšanoj funkcionalnosti i sigurnosti.