KISS und YAGNI sind mir zwar als Prinzipien der Softwaareentwicklung in Studium und Arbeit begegnet, kommen mir aber umso öfter im „echten Leben“ in den Sinn. Manchmal denke ich, wenn ich die auch abseits des Digitalen so oft beachten würde, wäre mein Leben etwas leichter 🙂 Von solchen Prinzipien gibt es eine Menge und sie sind ein bisschen wie Einhörner. Man weiß nicht so recht wo sie herkommen und es fällt nicht immer leicht an sie zu glauben. Aber die können was.
KISS
KISS ist ein Akronym für Keep it simple. Woher das zweite s kommt, darüber ist man sich uneins. Es existieren Gangarten wie Keep it simply stupid; Keep it simple, stupid oder auch Keep it short and simple. Die Intention ist aber bei allen dieselbe: man soll es so einfach wie möglich halten. Quasi „idiotensicher“ machen und das Rad nicht neu erfinden. Was bedeutet das für die Softwareentwicklung? Code soll wartbar und leicht verständlich sein. Puristen gehen gar dahin, dass Code selbst ohne Kommentare, Dokumentation oder fancy Javadocs nachvollziehbar sein soll. Gelingt das nicht ohne „Hilfsmittel“, dann ist es höchstwahrscheinlich zu kompliziert geschrieben. Was bedeutet das für das Leben abseits des Digitalen? Wenn du dir ein Marmeladenbrot machen willst, würdest du doch auch nicht eine Aufhängung bauen, die das Brot hält, damit du es schmieren kannst? Schließlich kannst du es mit deiner Hand halten oder auf den Tisch oder die Küchentheke oder was auch immer legen, das schon da ist. Genau das. Man muss keine Umwege gehen, sondern soll die einfachsten Mittel nehmen.
YAGNI
Das Prinzip YAGNI wiederum steht für You Aren’t Gonna Need It und lässt offenbar nicht ganz soviele Lesarten zu. Übersetzt heißt es in etwa „Du wirst es nicht brauchen“ und sagt eben genau das aus: man solle weglassen, was man nicht braucht. Was bedeutet das für die Softwareentwicklung? Man neigt dazu sich manchmal Code zu schreiben, der nützlich werden könnte. Man sitzt ja gerade an etwas ähnlichem und hat sich einmal eingearbeitet. Vielleicht hat man schon einen Verwendungszweck im Kopf. Und benutzt man den dann später? Vielleicht nicht. Gewartet, gepflegt und abgetestet werden muss er aber wahrscheinlich weiterhin und generiert damit Arbeit. Vielleicht liest den später jemand, um zu verstehen, ob man den noch braucht (oder wie man den denn warten oder abtesten möge) und dann hat der Nächste Arbeit damit. Da ist es: Overengineering, man hat etwas weit vorgedacht, das einfach unnötig ist. Daraus kann Technical Debt entstehen. Code, der mehr Arbeit als Nutzen generiert und eine „Last“ wird. Sinnvoller ist es, das zu schreiben, was man benötigt und eben auch nur das. Was bedeutet das für das Leben abseits des Digitalen? Nehmen wir mal das Shopping-Beispiel: was ich nicht brauche, muss ich nicht kaufen. Dann habe ich mehr Platz und mehr Geld für Dinge, die ich wirklich brauche. Klingt gut, oder? Ist aber nicht nur eine Anleitung zu einer asketischeren Lebensweise. Das lässt sich auf viele Bereiche anwenden bis hin zu: soll ich mir wirklich Gedanken über etwas machen, das vielleicht nie eintritt?
Kanntet ihr die Prinzipien schon? Wendet ihr sie schon an ohne es zu wissen, oder könntet ihr auch noch mehr Pro in KISS und YAGNI werden? Kennt ihr sie vielleicht gar unter einem anderen Namen? Gibt es in eurem Arbeitsumfeld ähnliche Prinzipien? Übrigens ist bei beiden der Ursprung nur so mehr oder weniger klar. Das KISS-Prinzip scheint aus dem Militär zu stammen, während YAGNI wohl ein Pfeiler des Extreme Programming ist.
Netzgeflüster ist eine Kategorie meines Blogs in der ich mich immer zwischen dem 10. und 15. eines jedes Monats Themen aus IT, Forschung, Netzwelt und Internet widme genauso wie Spaß rund um die Arbeit mit Bits und Bytes. 🙂
Schreibe einen Kommentar