Softwaredesign muss schön sein
Unter den Softwerkern wird viel über „schönes Design“ geredet. Gutes Design, schönes Design – im Gegensatz zum hässlichen, pragmatischen Design. Muss Software schön sein?
Softwaredesign ist eine schwierige Herausforderung. Man sieht es nicht. Man riecht es nicht. Ob schöne Entwurfsmuster benutzt wurden oder eben halbfertige Open-Source-Module mit dreckigem Code zusammengeschustert wurden – das entgeht der Aufmerksamkeit des Kunden.
Doch ich glaube, Software kann schön sein. Mehr noch: Gute Software muss schön sein. Ich erinnere mich noch an mein Grundstudium an der RWTH Aachen, als Professor Nagl seine Vorlesungen über Softwaredesign hielt. So hießen die Veranstaltungen zwar nicht – aber sie waren es. Damals entwickelte ich leidenschaftlich Shareware für den Amiga-Computer, arbeitete bereits in verschiedenen kommerziellen Projekten und war stolz auf meinen Code. Doch plötzlich erschienen mir meine Code-Passagen nicht mehr so schön. Sie waren nicht ordentlich gekapselt, die Schnittstellen nicht durchdacht und die Funktionalität großzügig „verschmiert“ über verschiedene Module. Mein Design war hässlich.
Und es war unpraktisch. Die Wartung fiel schwer, Erweiterungen gestalteten sich aufwendig und umständlich. Ich setzte mich hin und führte ein rigoroses Redesign durch. Es war zeitraubend und größtenteils unbezahlt, aber in der Zeit lernte ich eine Menge darüber, wie man robuste Software entwirft, die beinahe wartungsfrei bleibt.
Und das neue Design war schön. Zumindest viel schöner als das alte. Doch war die Software dadurch auch besser geworden? Ist der Rückschluss erlaubt, dass ein „schönes“ Design bessere Software ausmacht?
Ich bin fest überzeugt, dass ein schönes Design gute Software auszeichnet. Vermutlich ist der Rückschluss nicht zulässig, à la „Schönes Design führt zur besseren Software“. Doch ist die Schönheit des Designs zwar keine hinreichende, aber eine notwendige Bedingung für gute Software, und das aus folgenden Gründen:
- Schönes Design bedeutet in der Regel klare Datenkapselung, saubere Schnittstellen und performante Algorithmen und Datenstrukturen. Die Fähigkeit, diese Art von Schönheit zu erkennen, wird an jeder anständigen Universität eingetrichtert.
- Schönes Design kann nur von Experten erzeugt werden, die ihr Handwerk lieben. Jemand, der seinen Job als Softwareentwickler nicht mag, wird selten ein tolles Design entwickeln. Im Umkehrschluss bedeutet dies, dass ein Produkt, das schön entworfen ist, von überdurchschnittlich leistungsfähigen Experten entwickelt wurde. Das lässt auf die gesamte Qualität der Software rückschließen.
Alle mir bekannten Erfahrungswerte sprechen stark dafür, dass schönes Softwaredesign zu guten Produkten führt. Es ist daher wichtig, das Softwaredesign nicht dem Zufall zu überlassen. Wenn es nicht frühzeitig unter die Lupe genommen wird, zum Beispiel durch qualifizierte Reviews und systematische Überprüfung, dann ist das für ein jedes Softwareprojekt ein Risiko, das kein Projektmanager eingehen muss oder sollte.
Schönheit ist in der Technologie eben kein Firlefanz und kein Gelaber vermeintlich neurotischer Software-Divas; sie ist ein Qualitätsmerkmal.
