برنامه‌نویسی حرفه نسبتاً جوانی است که با ساخت کامپیوترها شروع‌شده و با پیدایش اینترنت بسیار گسترش پیدا کرده است. نرم‌افزارها مثل همه ابزارهای دیگر باید درست کار کنند و کاربر بتواند با آن‌ها ارتباط خوب و درستی داشته باشد. درست کارکرده نرم‌افزار همان تجربه کاربری است؛ یعنی همه خواسته‌های کاربر پاسخی داشته باشد که نرم‌افزار آن را ارائه کند. از طرف دیگر رابط کاربر قسمتی از نرم‌افزار است که کاربر عملاً آن را لمس می‌کند و با فشار دادن دکمه‌ها یا تحریر متن یا حرکت قلم و ماوس و ... با نرم‌افزار کار می‌کند. نرم و روان بودن این رابطه به‌اندازه درست کار کردن برنامه اهمیت دارد و استفاده از نرم‌افزار را آسان می‌کند.

رابط و تجربه کاربر تعاریف جدیدی هستند ولی مفهوم آن‌ها از وقتی انسان برای خودش ابزار ساخته وجود داشته است. اگر مجموعه اعضای بدن را تصور کنیم که باهم کار می‌کنند و زیرساختی به نام استخوان‌ها و عضلات و سایر اعضا دارند می‌توانیم بگوییم این همان تجربه کاربری (User Experience=UX) است. در مقابل، واکنش‌ها و حس‌ها و ظاهری که با فضای بیرون در تماس است و دیگران آن را می‌بینند و با آن ارتباط برقرار می‌کنند می‌تواند به‌عنوان رابط کاربری (User Interface=UI) شناخته شود.

شناخت بهتر از تفاوت‌های این دو مفهوم به درک بهتر فضای حاکم بر نرم‌افزارها کمک می‌کند و کارفرمایان می‌توانند زبان مشترکی با برنامه نویسان پیدا کنند که انجام خواسته‌هایشان هر چه روان‌تر انجام شود.