Konvention vor Konfiguration (englisch convention over configuration oder coding by convention) ist ein Softwaredesign-Paradigma, welches zum Ziel hat, die Komplexität von Konfigurationen zu reduzieren: Solange sich die Entwickler in allen Bereichen einer Software an übliche Konventionen (beispielsweise gleichartige Bezeichner) halten, müssen diese nicht konfiguriert werden, was somit die Konfigurationen erheblich vereinfacht, ohne die Möglichkeiten der Entwickler einzuschränken. Damit unterstützt das Paradigma auch die Prinzipien KISS und Don’t repeat yourself.
Bei der Verwendung dieses Ansatzes müssen Entwickler nur applikationsspezifische und unkonventionelle Aspekte einer Applikation konfigurieren. Andere Aspekte, wie beispielsweise die Verbindung von Eingabeelementen über die Fachmodelle bis zu Datenbanktabellen, können durch Konventionen wie beispielsweise die gleichartige Benennung der Klassen und Tabellen sichergestellt werden und müssen nur dann konfiguriert werden, wenn von den Konventionen abgewichen wird. Besagt beispielsweise die Konvention, dass eine Modellklasse im Singular und die dazugehörende Datenbank-Tabelle im Plural benannt werden soll, so muss der Entwickler keine explizite Konfiguration vornehmen, damit ein Programm mit der Modellklasse Sale
die Tabelle sales
verwendet. Heißt die Tabelle aber etwa products_sold
, muss er dies konfigurieren.