Vid utveckling av datorsystem så är det vanligt att systemet behöver konfigureras för att fungera på rätt sätt. Det kan bland annat handla om att bestämma vilka databastabeller som ska kopplas mot affärsobjekt i koden, inställning av kommunikationsprotokoll, definiera användargrupper m.m.
I ett stort system kan det bli väldigt många konfigurationer som behövs. Om systemet ska köras på olika plattformar kan man dessutom behöva ytterligare konfigurationer för varje plattform. Konfiguration gör systemet flexibelt men öppnar också för problem som kan uppstå om systemet konfigureras på fel sätt.
Ett annat sätt att resonera är att följa konventioner (praxis). Om ett system har ett affärsobjekt som heter ”User” så motsvaras det i databasen av en tabell som heter ”Users”. Så länge man följer denna konvention så behöver man ingen konfiguration för att tala om hur objekten ska relatera till databastabellerna. Ett affärsobjekt namnges alltid i singularis och motsvaras av en tabell i databasen i pluralis. Det kan också finnas konventioner för hur ett system ska struktureras. Exempelvis kan en integrationspunkt automatiskt skapa mappar som heter ”drop” och ”pickup” eller ”import” och ”export” beroende på konventionen. Konventioner har fördelen att de skapar enhetlighet och minskar risken för onödiga misstag.
Ruby on Rails är ett uppbyggt enligt ”Convention over Configuration”. Projekten struktureras enligt konventionen vilket gör det lätt att känna igen sig mellan olika projekt.
Apple har länge arbetat enligt ”Convention over Configuration”. Deras hårdvara finns i ett begränsat antal modeller som är uppbyggda enligt samma principer. Användarna behöver inte spendera tid på att konfigurera saker utan det bara fungerar. De har samma tänk genom alla sina plattformar iOS, OS X. En iPhone ser alltid i princip ut på samma sätt. Det underlättar när man vill utveckla appar eftersom man kan göra vissa antaganden om plattformen.
Google Android finns på en uppsjö av olika telefoner med olika hårvara. Det gör det lite knepigt att utveckla appar eftersom utvecklaren antingen måste begränsa vilka enheter som ska stödjas eller skriva appen så att den fungerar på alla enheter. En användare av en Android kan få en helt annan upplevelse om man byter från en telefon till en annan. Olika tillverkare har bland annat egna användargränssnitt för att sätta sin prägel på telefonen. Google har försökt att strama upp det hela genom sina koncepttelefoner ”Nexus” som är ren Android.
Genom att följa fastställda konventioner så kan system utvecklas effektivare och stabilare. Risken minskar för att införa problem genom felaktig konfiguration. Ett system kan ofta optimeras genom konfiguration vilket kan vara bra vid väldigt kritiska tillämpningar. Vanligtvis har dock ramverk som följer konventioner har redan adresserat prestanda