Overengineering und KISS

Simple can be harder than complex: You have to work hard to get your thinking clean to make it simple. But it’s worth it in the end because once you get there, you can move mountains.

Steve Jobs

Als Softwareentwickler verdient man sein täglich Brot durch Problemlösen. Bevor man damit durchstarten kann, lernt man an einer Hochschule oder Uni wie man Software entwickelt. Man lernt verschiedene Entwurfsmuster, Anti-Patterns, Testarten, Getter, Setter, Programmierparadigmen, Objektorientierung und Sichtbarkeiten. Alles um die Softwarequalität zu erhöhen und gute zukünftige Softwareentwickler auszubilden.

Heutzutage besteht der größte Teil von Software aus sogenanntem „Boilerplate“-Code. Code, was keinen anderen Zweck hat um die sogenannte Softwarequalität zu erhöhen. Boilerplate baut auf Boilerplate auf. Man verbringt Zeit, Boilerplate-Code zu schreiben, verliert das eigentliche Problem schnell aus den Augen.

Mein Eindruck ist, dass in IT Projekten meistens die komplexere Lösung bevorzugt wird. Es wird dabei die Benutzererfahrung und das eigentliche Problem aus den Augen verloren. Am Ende wird das Leben für alle beteiligte schwerer, weil Debugging schwieriger wird, die Codebasis undurchsichtig wird und sich auch mehr potenzielle Fehler in mehr Code einschleicht.

Steve Jobs Aussage birgt große Weisheit in sich. Das Ganze kann man in dem KISS-Prinzip zusammen fassen. Auch meine Beobachtung spiegeln sich mit Steve Jobs Aussage wieder. Einfachheit ist nicht nur eine Sache, die man auf die IT beziehen kann, sondern auf das ganze Leben.