Termin „kompatybilność” oznacza zgodność pomiędzy sprzętem i oprogramowaniem, dzięki której komponenty mogą ze sobą współpracować. Kiedy dane urządzenie współpracuje ze starszą wersją oprogramowania, mówi się, że jest kompatybilne wstecznie. Kiedy starsze aplikacje są przystosowane do bezproblemowej pracy z nowszymi programami, mówi się o kompatybilności wstępującej. Przy komponentach sprzętowych zgodność poszczególnych części składowych jest niezbędna do sprawnego funkcjonowania całego układu.

Kompatybilność z nowszą wersją dotyczy programów, w których istnieje możliwość pracy z tymi samymi dokumentami również w nowszych wersjach programu bez utraty funkcjonalności. Starsze wersje plików mogą być bezproblemowo używane w nowszej wersji programu. Kompatybilność z nowszą wersją jest dużo trudniejsza do wdrożenia dla programistów niż kompatybilność wsteczna, ponieważ właściwości nowych wersji nie są jeszcze w pełni znane w momencie ich pisania.