طراحي لايه واسط كاربر
موفقيت ما در طول ساختن برنامه هاي كاربردي بستگي به توانايي ما در پيش بيني اجراي برنامه ها دارد . برخي از جنبه هاي اجراي برنامه تقريبا براي پيش بيني آسان مي باشد . مثلا به راحتي مي توانيم ظرفيت برنامه را در ترم هاي بخش هاي داده اي يا عناصر تصوير تخمين بزنيم . ديگر جنبه هاي اجرا مثل اندازه ي برنامه و سرعت پاسخ گويي يا قابليت اطمينان برنامه براي تعيين كردن سخت است . اغلب موضوعات عمده اي هستند كه به طور بهينه در طول برنامه تخمين زده شده اند تاثير بهينه سازي در اين تخمين ها در برنامه هنگام كامل شدن در مواجه با نيازهاي اساسي با شكست روبرو مي شود . واسط كاربر تنها جزء قابل تعامل برنامه است كه در اجرا قابل پيش بيني نمي باشد . مثلا آن جزء از برنامه كه تصميم مي گيرد چگونه كاربر و كامپيوتر با هم ارتباط داشته باشند ( و اين قابل تاسف است كه بايد اين گونه باشد ) براي طراحي واسط كاربر تاثير زيادي بر مقبوليت برنامه دارد . ناتواني ما در پيش بيني اجزاي واسط كاربر باعث مي شود كه كاربر در راه ها ي غير منتظره واكنش نشان دهند در جاييكه آنان براي اولين بار از برنامه استفاده مي كنند بيشترين شگفتي زماني اتفاق مي افتد كه برنامه نويس با اولين كاربر و كاربر مبتدي همراه شود تا اجراي برنامه را توضيح دهد