Bug-ul mileniului a fost o problemă informatică care a amenințat operațiunile corporațiilor, companiilor de utilități, industriilor financiare, agențiilor guvernamentale și chiar științei. În miezul nopții, între 31 decembrie 1999 și 1 ianuarie 2000, se temea că toate computerele aveau potențialul de a se închide. Bug-ul mileniului este, de asemenea, cunoscut sub numele de problema Anului 2000, problema Y2K, bug Y2K și cel mai frecvent denumită pur și simplu Y2K.
Bug-ul mileniului a fost în mod specific o problemă de programare. A fost rezultatul unei combinații între o problemă de spațiu și o lipsă de gândire anticipată din partea programatorilor din anii 1960 și 1970. În fazele de început ale programării computerelor, memoria și alte spații de stocare erau rare și costisitoare, așa că salvarea caracterelor era o prioritate.
Programatorii scriau cod pentru aplicații de afaceri folosind COBOL (limbaj comun orientat spre afaceri) și RPG (generator de programare de rapoarte) pentru a rula pe mainframe. Programatorii au stocat datele sub formă de aammzz care implicau un total de șase caractere, sortând automat în ordine crescătoare. Fiecare dintre acele caractere a egalat un spațiu întreg (octet) de stocare a computerului. În consecință, salvarea a doi octeți de stocare pentru fiecare dată a fost semnificativă când luați în considerare cantitatea de câmpuri de dată stocate pe carduri, benzi sau discuri din toate înregistrările din toate fișierele din toate computerele.
În anii 1980 și 1990, programele au fost modificate pentru nevoile de afaceri în schimbare, astfel încât programatorii au menținut, ajustat și adăugat noi cerințe la aplicațiile vechi, în loc să le rescrie de la zero. Actualizările și modificările au fost suficiente pentru a menține sistemele originale în funcțiune.
La mijlocul anilor 1990, programatorii au început să realizeze că datele nu vor fi sortate corect până în anul 2000. În comunitatea computerelor, a început să devină o problemă care trebuia corectată. Apoi, în 1997, situația a devenit publică.
Trebuia luată o decizie fie de a începe de la capăt și de a rescrie programele de la început până la sfârșit, fie de a repara programele preexistente și datele stocate. Această opțiune a avut o altă provocare, deoarece o parte din codul sursă fusese pierdut.
Multe companii au fost create pentru a rezolva aceste probleme. O opțiune a fost să adăugați doar secolul la data preexistentă. Acest lucru ar implica adăugarea a încă doi octeți pentru fiecare dată stocată oriunde în fișierele lor de disc. Alții au optat să-și rescrie software-ul și să profite de noile tehnologii de rețea și orientate pe obiecte, în timp ce și-au mutat aplicațiile critice departe de mainframe.
Peste 300 de miliarde de dolari americani (USD) au fost cheltuiți pentru a corecta bug-ul mileniului. Pe lângă preocupările legate de software, nenumărate afaceri de supraviețuire au apărut și au profitat ca urmare a unui public preocupat și proactiv.