Blog Liste

KISS principle

Give your project a KISS

Das KISS (Keep It Simple, Stupid) Prinzip ist eines meiner liebsten Prinzipien, das ich in Projekten, aber nicht nur dort, immer wieder gerne anwende. Es führt zu einer effizienteren Arbeitsweise und ermöglicht eine einfachere Handhabung der komplexen Strukturen, wodurch es für das gesamte Team und vor allem für das Erreichen der Projektziele einen großen Mehrwert (Value) generiert. Das KISS Prinzip befriedigt ein grundlegendes Bedürfnis des Menschen, komplexe Sachverhalte vereinfacht dazustellen. In Projekten muss es aber oft bewusst angewendet werden, ganz nach dem Zitat von Konfuzius,

"Das Leben ist wirklich einfach, aber wir bestehen darauf, es kompliziert zu machen".

Grundsätzlich wird mit der Anwendung des KISS Prinzips eine möglichst einfache Lösung gesucht, mit der man zum einen das angestrebte Ziel erreicht und zum anderen eine unnötige Komplexität vermeidet. Die Lösung sollte einfach und prägnant sein. Das KISS Prinzip bezieht sich hierbei nicht zwingend auf eine technische Lösung, sondern kann auch auf andere Bereiche, wie Team-Kommunikation, Dokumentation, Prozesse usw., angewendet werden.
Durch die Reduzierung der Komplexität, wird dem Team ein besserer Überblick über das Gesamtsystem verschafft, was zum Beispiel die Entwicklung des Produkts nachhaltig beschleunigt. Zusätzlich werden viele Fehler vermieden, da vieles verständlicher wird.

Wie wende ich das KISS Prinzip an?

Die Anwendung des Prinzips hängt im Detail stark von dem jeweiligen Anwendungsbereich ab. Es gibt allerdings grundlegende Regeln, die sich auf alle Anwendungsbereiche anwenden lassen:

  1. Die Lösung sollte sich am Ziel orientieren. Alles was nicht direkt oder indirekt zur Erreichung meines Ziels dient, erzeugt keinen Wert (Value) und sollte entfernt oder besser noch nicht hinzugefügt werden!
    In der technischen Umsetzung heißt das zum Beispiel, dass ich keine Funktionalität einplane bzw. hinzufüge, die nicht wirklich benötigt wird. Das heißt auch, dass ich nachträglich Dinge, wie zum Beispiel Dokumente, lösche oder anpasse, die veraltet sind. Hiermit trage ich zu einer wesentlichen Verbesserung der Übersichtlichkeit bei. Allzu oft führen veraltete Dokumente zu Missverständnissen, da sich Strukturen und Abläufe geändert haben. Hier ist weniger, aber aktuell, besser!

  2. Das Verhältnis zwischen Arbeitsaufwand, für die Umsetzung der Lösung und dem Wert sollte möglichst effizient sein!
    Konkret heißt dies, dass ich für die Umsetzung oder Anwendung meiner Lösung möglichst wenig Zeit aufwenden muss, im Gegensatz zu dem Wert oder Nutzen die mir diese Lösung einbringt. In der Softwareentwicklung zum Beispiel sollte eine verwendete Architektur, ein Framework oder API die Arbeit vereinfachen und beschleunigen, damit die Entwicklung weiterer Funktionen vom Team effizient durchgeführt werden kann.

  3. Die Lösung sollte möglichst selbsterklärend und leicht nachvollziehbar sein!
    Je weniger ich zusätzlich dokumentieren muss, umso besser. Dadurch spare ich sehr viel Zeit, da ich nicht extra Dokumentation suchen und durchlesen muss, bzw. andere Personen befragen muss.
    Dies gilt übrigens auch für das resultierende Produkt. Je intuitiver ein Produkt benutzt werden kann, um so mehr Wert hat es für den Endbenutzer.

  4. Meine Lösung sollte vom betreffenden Team akzeptiert werden!
    Einfach sind die Dinge nur, wenn sie für alle betreffenden Personen auch einfach und verständlich sind. In einem agilen Projekt kann die Retrospektive oder ein technisches Meeting sehr gut dazu verwendet werden, um mit den betreffenden Teammitgliedern eine Lösung zu erarbeiten. Dies führt letztendlich zu einer größeren Akzeptanz im Team und auch zu einer besseren Lösung.

  5. Ich vereinfache bzw. verbessere meine Lösung stetig, wenn dies mir einen größeren Wert generiert!
    Das heißt, dass ich die zuvor genannten Punkte immer wieder anwende, wenn ich dadurch eine effizientere Lösung (hinsichtlich Wert) erreiche. Im Umkehrschluss tue ich dies nicht, wenn ich dadurch den Wert der Lösung nicht steigere!
    Ich sollte zum Beispiel regelmäßig die angewendeten Prozesse im Projekt hinterfragen, besonders wenn sie vom Team nicht akzeptiert oder sogar umgangen werden. Dann kann ich mit einer Anpassung der Prozesse die Abläufe erheblich vereinfachen und zu einer effizienteren Arbeitsweise beitragen.

Das bewusste Anwenden des KISS Prinzips benötigt natürlich zusätzliche Aufwände. Durch die nachhaltige Effizienzsteigerung im gesamten Team dürften diese Aufwände jedoch schnell durch die resultierenden Einsparungen und die Steigerung der Zufriedenheit im Team bei weitem kompensiert werden.