مرمجية الأكواد : (Code smell) هي علامات وإشارات داخل الكود تدل على أن هناك خلل في التصميم وهي بحد ذاتها لا تعتبر خطأ برمجي، وربما نجد أكواد مليئة بهذه الروائح لكنها تعمل على ما يرام دون أي مشاكل.
أحد الأمثلة الشهيرة على هذه الراوئح هي وجود دالة تحوي مئات الأسطر وربما تستقبل العديد من الوسائط، أو نجد كائن يقوم بعمل كل شيء God Object, أيضا كمثال آخر- دائما ما يقع فيه المطورين المبتدئين- هو وجود أجزاء مكررة في الكود.
لو نظرنا إلى هذه العلامات أو الروائح في الكود نجد أنها من الناحية التقنية ربما تكون صحيحة، لكن تكمن المشكلة في حالة تم تغيير متطلبات المشروع وكانت هناك حوجة إلى القيام بالتعديل على مثل هذه الأكواد أو إضافة خصائص وميزات جديدة.
ما يمكن أن نتوقعه في مثل هذه الحالات ، هو أن سرعة تنفيذ هذه المتطلبات الجديدة ستكون بطيئة جدا وربما لن يتمكن المطور من تطبيقها أو في بعض الحالات سينتج عن تطبيقها العديد من الأخطاء البرمجية.
مهندس البرمجيات كينت بيك مخترع منهجية التطوير XP هو أول من بدأ باستخدام هذا المصطلح للدلالة على أن هناك خلل ربما يبدوا بسيطا في أول الأمر لكن سرعان ما سيتحول إلى كارثة حقيقة في المستقبل. ظهر المصطلح وانتشر بين مهندسي البرمجيات بعدما شارك Kent Beck في كتابة الكتاب Refactoring: Improving the Design of Existing Code والذي يعتبر من أفضل الكتب في المجال لمهندسي البرمجيات ومطوري التطبيقات.