Software ist komplex. Je umfangreicher die Funktion, um so schwieriger ist es, das System zu verstehen. Es gibt jedoch Hilfsmittel, die Komplexität auf ein Minimum zu reduzieren und somit die Wartungs- und Betriebskosten erheblich zu senken.

Konvention vor Konfiguration

Konvention vor Konfiguration oder “Coding by convention” ersetzt komplexe Konfigurationen durch eine Namenskonvention, die die Basiskonfiguration über Annahmen automatisch steuert.

Einige Beispiele:

Wird eine Model-Klasse Company genannt, nimmt ein geeignetes Framework an, dass die zugehörige Datenbanktabelle companies genannt wird. Ist dies der Fall, wird die Zuordnung automatisch durchgeführt.

Jeder Controller erhält eine Standardsicht index und die Sicht für die Aktion new heißt ebenso wie die Aktion, also auch new.

Moderne Frameworks nutzen diese Art der Entwicklung intensiv. Dies hat zur Folge, dass weniger und besser lesbarer Code geschrieben wird. Dies wiederum verbessert die Wartungsfreundlichkeit der Anwendung.

Konvention vor Konfiguration wurde bereits lange, bevor der Begriff populär wurde, verwendet. Beispielsweise beruht die JavaBeans-Spezifikation darauf. Eine Reihe moderner Frameworks verwenden das Paradigma, um ihre Konfigurationen zu vereinfachen. Dazu zählen unter anderen auch die Frameworks Spring, Ruby on Rails, Grails, Zend, CakePHP, symfony und Apache Maven.

KISS

Vereinfachung ist ein weiteres Paradigma, das die Softwareentwicklung beeinflusst. KISS (Keep It Simple and Stupid) erwartet von Architekten und Softwareentwicklern immer die einfachste Lösung.

Namenskonventionen zum Beispiel nutzen KISS-Elemente. In der Softwareentwicklung ist die einfachste Lösung nicht immer die erste Lösung, die einem in den Sinn kommt, sondern die optimale, die man nur durch intensive Planung erarbeiten kann. KISS hat auch einen großen Einfluss auf die Usability einer Anwendung. Folgt die Benutzerführung immer den selben einfachen Regeln, ist diese für den Anwender immer verständlich.

Die Scandio nutzt diese Paradigmen, um Software so einfach und so effizient wie möglich zu gestalten. Bereits in der Planung der individuellen Applikationen prüfen die Softwarearchitekten, ob es für ein Problem eine noch einfachere Lösung gibt.