3

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.

_____________________________________________________________

Über den Autor

Roman MildnerRoman Mildner, zertifizierter Projektmanager (PMP) und Mitglied im United Mentors Network (UMN), ist seit 1992 in der IT und seit 1998 als unabhängiger Berater und Projektmanager tätig. Zu seinen Beratungsschwerpunkten gehören IT-Strategieberatung, Projektmanagment und Prozessberatung. Weitere Details finden sich auf seiner UMN-Seite. (S. auch Google)

Kommentare (3)

Trackback URL | Kommentar RSS Feed

  1. Dimitri sagt:

    Ich bin auch der Meinung, dass gutes Design ein Muss ist, allerdings lassen sich die Geschäftsleitung des Softwarelieferanten (bei Festpreis-Projekten) bzw. die des Kunden (bei Nach-Aufwand-Projekten) meistens nur schwer von den im Artikel genannten Vorteilen überzeugen. “Man sieht es nicht. Man riecht es nicht”…

    Die Argumentation, die meiner Erfahrung nach am besten funktioniert, ist: “Jede Software wird irgendwann geändert, modifiziert, erweitert – auch wenn Sie jetzt denken, dass das in Ihrem Projekt nie der Fall sein wird. Und spätestens dann zahlen sich die Kosten für ein gutes Design zurück – denn eine ordentlich strukturierte Software lässt sich um Welten schneller modifizieren, als eine chaotische. Gutes Design ist eine sichere Investition in die Zukunft, die umso mehr bringt, je früher sie getätigt wurde”.

  2. Eine sehr sinnvolle Anmerkung. Ein Manager muss in der Lage sein, eindimensionale Zahlenprojektionen in die Komplexität der Entwicklungswelt zu “übersetzen”. Dazu werde ich sicherlich noch einen Beitrag schreiben 🙂

    • Enno sagt:

      Code is poetry!

      Leider gibt es verschiedene “Bewusstseinsstufen” zur Erkennung und Anerkennung von Schönheit. Die eigene Auffassung lässt sich dann schlecht argumentieren: Deinen Code musst du noch mal überarbeiten; der sieht nicht schön aus! Da kann jemand, der das von selbst nicht erkennt meistens nichts mit anfangen.

Kommentar hinterlassen

Loggen Sie sich ein, wenn Sie ein registrierter Benutzer sind.




*