KISS-Prinzip ist nicht gleich KISS-Prinzip

  • Für die Abkürzung KISS gibt es einige verschiedene Auslegungen. Das "Original" stammt von Clarence Johnson.
    KISS = keep it simple (and) stupid


    Eine wörtliche Übersetzung würde lauten: "Halte es einfach und dumm"
    In Deutsch gibt es leider nicht die "feine Nuance" die aus "stupid" ein weitere Abschwächung von "einfach" erzeugen würde.


    Sinngemäß kann die Übersetzung also nur lauten: "Mach alles möglich einfach"


    Als das Internetprotokoll [font="sans-serif"]TCP/IP erfunden wurde, war es so ziemlich der kleinste und einfachste Nenner auf den man sich einigen konnte. Weil es aber so einfach war, konnte das Internet erst entstehen und sich verbreiten. Ein ganz einfacher und minimaler Standard, den jeder (Dumme) auch nachvollziehen kann.[/font]


    Hey... auch nach über einem Vierteljahrhundert benutzen wir immer noch [font="sans-serif"]TCP/IP, obwohl es doch schon viel Besseres gibt. Das möglichst Einfache hat sich durchgesetzt und auch weiterhin gehalten. Einfach = gut[/font]


    [hr]
    KISS beim Programmieren


    [font="sans-serif"]Ich nehme jetzt einmal die Software eines Forums zum Vergleich.[/font]


    [font="sans-serif"]Da gibt es die voll ausgestattete Software, bei der wirklich an alles Mögliche gedacht wurde. [/font]
    [font="sans-serif"]Die komplette Software ist so aufgebaut, dass alle Codes zusammen ein Forum ergeben.[/font]


    [font="sans-serif"]Das Gegenstück dazu ist ein Forum, das nur ein Grundgerüst ist.[/font]
    [font="sans-serif"]Man hat nur eine Basis, an die man die gewünschten Module andocken kann. Alle Schnittstellen sind so einfach programmiert, dass [/font][font="sans-serif"]neue Module schnell daran angepasst werden können.[/font]


    [font="sans-serif"]Für Programmierer ist das Grundgerüst KISS[/font]
    [font="sans-serif"]Möglichst einfach gehalten. Man kann jederzeit neue Module entwerfen, andocken oder abkoppeln. [/font]


    [font="sans-serif"]Für den Anwender ist das "Voll-System" zunächst KISS.[/font]
    [font="sans-serif"]Man hat alles und braucht nur zu klicken. Wenn man dann aber etwas ändern muss, ist es mit dem KISS vorbei. Dann ist nichts mehr einfach sondern alles nur viel zu kompliziert.[/font]


    [font="sans-serif"]Bei einem System, das nicht KISS ist, entstehen die Probleme, sobald man Änderungen vornehmen muss, weil alles in Abhängigkeit voneinander programmiert wurde. Es ist einfacher, wenn man nur ganz bestimmte Abschnitte ändern muss und sich Änderungen darin nur auf das jeweilige Modul auswirken können.[/font]


    KISS im normalen Leben


    [font="sans-serif"]Würdest du zwei Geräte, eins für das Kühlen und eins für das Einfrieren kaufen, wenn du beides in einem haben kannst ?[/font]
    [font="sans-serif"]Da beide Funktionen direkt miteinander zusammen hängen, wird oft zum Kombi-Gerät gegriffen, wenn es gleichwertig zu zwei einzelnen Geräten ist.[/font]


    [font="sans-serif"]Würdest du es gut finden, wenn an einem Gerät zwei Schalter sind. 1x für das Einschalten 1x für das Ausschalten des Geräts ?[/font]
    [font="sans-serif"]Technisch wären die zwei Schalter KISS. Jeder hat nur eine Funktion. Im normalen Leben machen aber beide Schalter nur das, was auch einer machen kann. KISS ist also ein Schalter mit dem man ein- und ausschalten kann.[/font]
    [font="sans-serif"]In der Technik hat sich das "logische KISS" durchgesetzt. Ein- und Ausschalten kann man mit dem gleichen Schalter.[/font]


    [font="sans-serif"]KISS im normalen Leben heißt also, dass man Funktionen, die sowieso direkt miteinander zu tun haben, nicht voneinander trennt. [/font]
    [font="sans-serif"] [/font]


    Aber sowohl in der Programmierung als auch im Leben wird es manchmal heftig übertrieben, wenn es um KISS geht.


    Da haben wir Apps, mit denen man alles Mögliche machen kann .. aber für eine bestimmte Sache braucht man dann wieder eine andere.
    Oder
    Man muss sich für zwei Sachen, die direkt miteinander zu tun haben, jeweils eine eigene App installieren.
    Oder
    Man bekommt eine Riesen-App in der wirklich alles drin ist, was man je brauchen könnte. Was man nicht braucht ist purer Ballast.


    Die Programmierer gehen immer mehr dazu über, KISS nicht mehr aus prorgammtechnischer Sicht zu sehen, sondern aus Anwendersicht. Apps und Programme enthalten völlig unnütze Funktionen, die man nie in diesem Zusammenhang nutzen würde.


    Das ideale Beispiel hierfür sind Browser
    Sie können nicht nur Internetseiten anzeigen und Dateien hoch oder herunterladen. Das gehört ja noch zusammen, weil der Browser ja sowieso schon eine Verbindung aufgebaut hat.
    Auch dass man sich eine gerade aufgerufene Seite als Link speichert, gehört noch zur nützlichen Kombination eines Browsers.


    Sobald es jedoch mit der Passwortverwaltung los geht, wird es schon problematisch. Dafür gibt es bessere und sicherere Möglichkeiten. Browser haben immer Sicherheitslücken und können daher recht schnell geknackt werden.


    Alles andere was Browser sonst noch direkt eingebaut haben, hat nicht einmal mehr mit der "KISS-Auslegung für Anwender" zu tun.


    Ein anderes Beispiel für "falsches KISS" sind Küchengeräte


    Mikrowellen haben vollständige Programme, um bestimmte Mahlzeiten aufzuwärmen.
    Teilweise gibt es auch schon komplette Rezepte, die man im Gerät abrufen kann.


    Für die Hersteller mag es vielleicht KISS sein, so etwas einzubauen.
    Für den Nutzer ist es aber KISS, wenn er einfach die Wattzahl und die Zeit einstellt, wie sie auf der Verpackung der Mahlzeit angegeben wird.
    Die Programmierung verhindert aber, dass der Benutzer es sich möglichst einfach machen kann. Er wird dazu gezwungen, sich ein spezielles Programm heraus zu suchen in dem dann endlich die gesuchten Werte auftauchen.
    Solche Geräte sind in der Anwendung also völlig "un-KISS" und außerdem passen die Programme sowieso nie wirklich exakt.


    Kühlschränke, die automatisch bestellen können.
    Natürlich muss man erst einmal alles festlegen, was man immer wieder braucht. Danach wird es bequem, weil der Kühlschrank immer rechtzeitig nachbestellt.


    Wenn man seine Vorlieben jedoch ändert wird es dumm. Der Kühlschrank bestellt das nach, was ich nicht mehr mag. Ich muss also selbst in den Laden gehen und darf nicht vergessen, die Programmierung zu ändern.


    Völlig "un-KISS" wird es auch, wenn der Kühlschrank noch mehr kann. Er überwacht auch die Lagerzeit und bestellt frisch nach, wenn etwas abgelaufen ist.
    Dann werde mal plötzlich krank oder hab mal vergessen, die Programmierung vor dem Urlaub zu ändern. Die "Kühlkiste" bestellt fleißig weiter, egal ob du etwas brauchst oder nicht.


    Fehlt eigentlich nur noch die Funktion, dass der Kühlschrank auch dein Konto auffüllt. Die ist eigentlich unbedingt KISS, wenn die Kiste schon dein Konto leeren kann, muss sie es eben auch wieder auffüllen können :loool:


    [hr]
    [hr]



    Am Ende ist KISS immer nur reine Auslegungssache und aus welcher Warte man es betrachten will.


    Als Forenbetreiber möchte ich eine Software haben, die ich jederzeit an meine Bedürfnisse anpassen kann.
    Die Installation ist dadurch zwar völlig "un-KISS", aber später habe ich keine Probleme, weitere Einbauten vorzunehmen oder zu entfernen. Dann wird es wieder "KISS" für mich.


    In der Anwendung möchte ich alle Funktionen möglichst von außen nutzen können, ohne extra ins Backend gehen zu müssen. Beim Lesen sehen, klicken, fertig. Das ist für mich dann ein KISS-Forum.
    Für diese Bequemlichkeit muss ich dann eben die technischen Möglichkeiten einbauen können.


    KISS in der Programmierung kann in diesem Zusammenhang also auch "Anwender-KISS" sein.
    Vollsysteme sind in der Regel aber nur "Anwender-KISS". Bei der Programmierung ist von KISS nur selten etwas zu sehen. Es werden im Gegenteil völlig "un KISSE" Codes geschrieben, um Änderungen zu verhindern.


    Als Küchen-Benutzer möchte ich leine unnötigen Spielereien haben
    KISS entscheidet nicht nur über Kosten und Nutzung, sondern auch wie lange ein Gerät genutzt werden kann.


    Würdest du deinen Computer in einer Küche aufstellen, in der es immer wieder Kochdünste gibt ?
    Natürlich nicht. Du weißt schließlich, dass sich die Kochdünste überall ablagern und auch Fett enthalten. Der Computer würde da also nicht lange halten.


    In "komplizierten Küchengeräten" sind auch immer Computer eingebaut. Du kannst jetzt überlegen, weshalb ein "ganz einfaches Gerät" viel länger hält. :pfeiff:
    "technisches KISS" macht hier also wirklich Sinn.