Gute Namen für Kategorien zu finden, ist gar nicht so einfach, denn letztlich ist Schubladendenken genau das, was ich eigentlich nicht möchte. Trotzdem ist es mir wichtig, einigermaßen passende Oberbegriffe für die verschiedenen Artikel auf meinem Blog zu haben, auch um mir selbst mehr Struktur zu geben.
Manchmal passiert es aber, dass die Kategoriebezeichnung nicht so ganz zum Artikel passt, oder ein Artikel in mehrere Kategorien fallen könnte. Bei der Kategorie „Entwurfsmuster“ ist mir das in letzter Zeit immer wieder aufgefallen.
Currying ist mehr eine Technik, als ein Entwurfsmuster. Design by Contract ist ein Konzept oder ein Ansatz. Prototypenbasierte Programmierung ist eine Geschmacksrichtung der Objektorientierten Programmierung, im Entferntesten also die Implementierung eines Paradigmas. Wie bringt man diese Themen nun auf einen gemeinsamen Nenner? Eines haben sie alle gemeinsam, sie manifestieren sich in Code. Gut, das tun bestimmte Themen aus der Rubrik Architektur wie das Event Sourcing auch. Ich denke der Unterschied ist, dass solche Themen Architektur-relevant sind. Dies bedeutet, sie haben das Potenzial, im Nachhinein schwer änderbar zu sein – und sie sind weniger greifbar. Closures, ein Thema aus der Rubrik Entwurfsmuster, können mit wenigen Zeilen Code veranschaulicht werden. Hinter einer hexagonalen Architektur oder Feature Flags steckt aber mehr, als der reine Quelltext. Sie sind auf vielfältige Arten und Weisen umsetzbar und im Vordergrund steht das Verständnis darüber, welche Vorgehensweisen und Rahmenbedingungen mit ihnen einhergehen.
Ich habe mich für den Begriff „Entwicklung“ entschieden und hoffe, dass dieser besser auf den Punkt bringt, wofür diese Kategorie steht. Natürlich hat jeder Beitrag auf diesem Blog den Anspruch, für die meisten in der Software-Entwicklung irgendwie relevant zu sein, das liegt aber auch daran, dass Software-Entwicklung nicht nur Entwicklung im Sinne von Programmierung bedeutet, sondern auch Architektur, Konzeption, Organisation, Teamarbeit und Betrieb. In der Kategorie Entwicklung wird also alles das behandelt, was näher am Code ist, als die Artikel der anderen Rubriken.
Nun, wie steht es eigentlich um die anderen Kategorien? Ich denke bei den Programmiersprachen gibt es nicht viel Diskussionsbedarf. Die Kategorien Architektur und Werkzeuge finde ich ebenfalls passend. Für die Kategorie Methodiken hingegen gibt es noch Luft nach oben. Ist eine Post-Mortem-Analyse eine Methodik? Wohl eher eine Analyse. Shuhari? Eher ein Konzept? DevOps? Eher eine Philosophie oder Kultur? Cynefin? Ein Framework? Welche Oberbegriff adressiert alle diese Themen, ohne die Themen der anderen Kategorien ebenfalls mit einzuschließen? Klar ist, in dieser Kategorie geht es um Vorgehensweisen, um Mindset und um Abstraktes, was zum Teil auch außerhalb der Software-Entwicklung angewandt werden kann. Sollte mir irgendwann ein Begriff einfallen, der dies besser auf den Punkt bringt, als das Wort Methodiken, wird die nächste Umbenennung folgen.