Konventionen sind gut

„Konventionen sind gut“ oder „Was den Braten zarter macht…“

Blog – Technik & Methoden
Verfasst von Stefan Geidies am 05. Oktober 2018

Eine Konven­tion ist eine Regel, die von einer Gruppe von Menschen aufgrund eines beschlossenen Konsenses eingehalten wird (frei nach wikipedia). Als Entwickler kommt man zwangsläufig und häufig in Kontakt mit Konventionen. Das ist bekannt und wohl unstrittig. Es gibt sie als Designregel, bei der Organisation von Dateien, als Namenskonventionen, bei Kommentaren, dem Einrücken von Code, Leerzeichen, Klammern, … aber darum soll es an dieser Stelle nicht gehen.

Konven­tio­nen einzu­hal­ten führt übli­cher­weise zu vieler­lei posi­ti­ven Effek­ten. Manch Doku­men­ta­tion behaup­tet sogar, jede Konven­tion sei besser als gar keine. Vorteile bei der Anwen­dung von Konven­tio­nen sind unter ande­rem:

Die Aufzäh­lung wird sicher gerade gedank­lich von Euch noch um einige Punkte erwei­tert. Und auch darum soll es an dieser Stelle gar nicht gehen. Statt­des­sen möchte ich eine kleine Geschichte erzäh­len:

Was den Braten zarter macht...

Meine Frau berei­tet zum Woche­n­ende manch­mal einen lecke­ren Schwei­ne­bra­ten zu. Ich habe sie letz­tens dabei beob­ach­tet und fest­ge­stellt, dass sie die Ecken abschnei­det, bevor der Braten in den Topf und dieser dann in den Ofen kommt. Ich habe sie gefragt: „Warum schnei­dest Du denn die Ecken ab?“ Sie hat geant­wor­tet: „Der Braten wird zarter, die Soße wird dunk­ler, und meine Mama macht das auch so.“

Ich habe dann bei Gele­gen­heit meiner Schwie­ger­mut­ter dieselbe Frage gestellt. Meine Schwie­ger­mut­ter antwor­tete: „Ist doch klar. Der Braten wird zarter, die Soße wird dunk­ler und meine Mutter macht das auch so.“

Also ging ich zu ihrer Mutter und fragte: „Groß­mut­ter, warum schnei­dest Du die Ecken vom Braten ab, bevor er in den Ofen kommt?“ Groß­mut­ter antwor­tete: „Damit er in den Topf passt.“

Wir spre­chen bei der Anwen­dung von Konven­tio­nen über Soft­ware und Qualität. Um die Qualität der von uns entwickelten Software zu erhöhen, wenden wir (unter anderem) Konventionen an. Man könnte gar glauben, je mehr, desto besser.

Auch wenn es auf den ersten Blick so wunder­bar einfach aussieht, verbirgt sich der Teufel im Detail. Wende ich die jewei­lige Konven­tion an, weil sie einen Mehr­wert bringt, oder um der Konven­tion willen? Also im über­tra­ge­nen Sinne, damit der Braten in den Topf passt (realer Mehr­wert), oder damit die Soße dunk­ler wird (imagi­närer Mehr­wert)?

Noch einmal anders ausge­drückt: Ist die Konven­tion, die ich gerade anwende, aus einem Qualitätsbewusstsein heraus richtig und sinnvoll, oder ist es eher so etwas wie Selbstbefriedigung? Und weiß ich es vielleicht nicht einmal?

Die Antwort auf diese Frage könnte man mit der oben erwähn­ten Direk­tive beant­wor­ten: „Jede Konven­tion ist besser als keine.“ Wäre da nicht ein Kunde mit seinem Recht auf effizienten Einsatz seiner Ressourcen.

Fakt ist, durch das Fest­le­gen und Anwen­den von Konven­tio­nen kann man die Quali­tät zu entwi­ckeln­der Soft­ware signi­fi­kant erhö­hen. Es gibt Konven­tio­nen mit hohem, mit weni­ger hohem und mit eher imagi­närem Mehrwert. Deswegen ist es nicht nur wichtig, Konventionen zu kennen und anzuwenden, sondern auch zu wissen warum. Nur dann kann man entscheiden, ob und mit welchem Mehrwert sie die Qualität der Software erhöhen. Dies gilt dann im jeweiligen Kontext und für das entsprechende Projekt und sollte immer eine bewusste Entscheidung sein.

Und der nächste konse­quente Schritt ist, fest­zu­le­gen, wie weit man dies alles trei­ben will. Nicht jede Konven­tion ist es wert, in jedem Projekt perfekt umge­setzt zu werden. Je weiter ich die Quali­tät verbes­sern will, desto höher wird mein Aufwand. Und der Aufwand für das Prädi­kat „Per­fekt“ geht gegen unend­lich. Meist ist dieser Vorgang jedoch über ein „Bud­get“ begrenzt, womit klar sein sollte, dass diese Aspekte einen sinn­vol­len Abgleich zuein­an­der benö­ti­gen.

Jetzt könnte man meinen, als Entwick­ler muss ich mich nur um die Quali­tät meiner Soft­ware kümmern. Budget ist nicht meins, das machen andere. Da wir aber im Ideal­fall in selbst­or­ga­ni­sier­ten agilen Teams arbei­ten, ist die Effizienz des Teams in Summe sehr wohl ein Thema für alle.
Oder etwa nicht?

Vielleicht als Themen zur Diskussion oder für weitere Posts

Fragen über Fragen

 

Herz­li­ches Knud­deln als Danke für die Hilfe beim Redi­gie­ren geht an Marion, Lena und Tammo.