Das Ende des Programmierens

19.07.2007 von Chris Henn
Softwareentwicklung ist künftig nicht mehr die Sache einzelner Programmierer. Automatisierte Anwendungsmodelle werden dort entstehen, wo die Produktivität am höchsten ist.

Die Softwareentwicklung steht vielleicht vor dem größten Umbruch seit ihren Anfängen. Mussten sich Programmierer früher noch darüber ärgern, dass sie von den Fachabteilungen nie richtig ernst genommen wurden, so rückt die heutige Bedeutung der IT in Unternehmen die Arbeit des Technikers ins Zentrum der Aufmerksamkeit, und dies gleich bis hinauf zum Topmanagement. Deshalb ist es kein Wunder, dass die immer engere Verzahnung von Business und IT auch den Wunsch nach mehr Flexibilität – und somit auch weniger Personenabhängigkeit – mit sich bringt. Es wird maximale Automatisierung, volle Transparenz und messbar gesteigerte Wiederverwendbarkeit verlangt, und all dies ist mit den etablierten Programmiersprachen nicht zu erreichen. Den viel leistungsfähigeren, ganzheitlichen Ansatz gibt es schon: direkt ausführbare Modelle, die endlich den lang ersehnten gemeinsamen Kontext zwischen Business und IT schaffen.

Seit der Erfindung des Fortran Compilers durch John Backus haben immer wieder ähnliche Prinzipien die Evolution der Softwareentwicklung bestimmt: Im Vordergrund stand jeweils eine Steigerung der Produktivität bei gleichzeitiger Erhöhung der Qualität. Erreicht wurde dies durch verstärkte Automatisierung, Erhöhung des Abstraktionsgrades in Richtung der Problemstellung und verbesserte Wiederverwendbarkeit. Denn es fehlt schlicht Zeit und Geld, um immer wieder von vorne zu beginnen. Stattdessen gelangen Innovation und Kostenreduktion, und unter dem Strich wurde Softwareentwicklung agiler.

An diesen Prinzipien als treibender Kraft wird sich nicht viel ändern. Im Vergleich zu den Anfängen haben die heutigen Ansätze, basierend auf den klassischen Programmiersprachen, wesentlich dazu beigetragen, Produktivität und Qualität zu verbessern. Auch wenn es nicht möglich ist, diese Produktivitätssteigerung exakt zu beziffern, so ist es doch intuitiv nachvollziehbar, dass die Verbesserungen sehr deutlich ausgefallen sind.

Die klassischen Programmiersprachen bringen keine zusätzliche Effizienz mehr

Hier ist mit den klassischen Programmiersprachen jedoch eine Grenze erreicht, da heute die Steigerung von Produktivität und Qualität auf der Ebene des einzelnen Entwicklers voll ausgereizt ist und Verbesserungen nur noch marginal möglich sind.

Gegenüber herkömmlichen Programmiermethoden und –sprachen erhöht UML gepaart mit der Model Integration und -Execution die Softwareentwicklung ganz erheblich

Der nächste Schritt zur Steigerung von Produktivität und Qualität weist in eine Richtung, die sich weniger mit dem einzelnen Entwickler beschäftigt, dafür aber zum Ziel hat mehr Effizienz auf Unternehmensebene und über Unternehmensgrenzen hinweg zu erreichen. Architekturkonzepte wie Service-Orientierung oder Event Processing zeigen zwar prinzipiell den Weg auf, verlangen aber auch nach neuen Sprachkonzepten, denn der Abstraktionsgrad, der mit Hilfe textueller Programmiersprachen wie C++, Java oder C# möglich ist, kann die nötige Transparenz nicht gewährleisten.

Der Leitsatz Ein Bild sagt mehr als tausend Worte zeigt, in welcher Richtung die Lösung zu suchen ist.

Die Welt der grafischen Modellsprachen

Diese führt uns in die Welt der grafischen Modellsprachen, die uns schon seit Jahren als Design-Hilfsmittel in Form der Unified Modeling Language (UML) oder neu in Form der Business Process Management Notation (BPMN) oder gar domänenspezifischer Designsprachen (DSL – Domain Specific Languages) begleiten. Waren diese grafischen Beschreibungssprachen in der Vergangenheit nur wenig mehr als Vorlagen für den Programmierer oder die Grundlage von teilweise automatisch erzeugtem Code, so erzeugt die direkte Ausführbarkeit von Modellen einen Quantensprung. Denn Modelle erlauben eine stärkere Automatisierung, bieten einen höheren Grad an Abstraktion und ermöglichen mehr Wiederverwendbarkeit. Zum ersten Mal kann der Auftraggeber, beispielsweise eine Fachabteilung, dank der stark erhöhten Transparenz von grafischen Modellen, direkt in die Softwareentwicklung einbezogen werden.

Dokumentation gleich Code

Und ein weiteres Problem löst sich: Bei einem Ansatz basierend auf Model Execution gilt das Prinzip "Dokumentation gleich Code" und nicht umgekehrt, so wie heute, wo chronischer Zeitmangel und permanent überschrittene Budgets dafür sorgen, dass der Code die einzige Dokumentation ist, die der Nachwelt übrig bleibt. Oder gibt es eine bessere Definition von Legacy-Software als "Software, die unzureichend dokumentiert ist und für die der ursprüngliche Programmierer nicht mehr verfügbar ist"?

Verbesserte Wiederverwendbarkeit heißt auch, dass wir bei der Gestaltung der Zukunft vermehrt die Vergangenheit einbeziehen müssen. Im Klartext: Neue Entwicklungsmethoden können sich nicht nur darauf beschränken, immer wieder neue Anwendungen auf der grünen Wiese zu beginnen. Denn müssten wir alle bestehenden Softwaresysteme, die derzeit in Unternehmen ihren Dienst tun, durch neu entwickelte Services ersetzen, würde uns weder die Zeit noch das Geld dazu reichen. Diese Abhängigkeit von bestehenden Systemen, aber auch Betriebskosten-orientierte Business-Modelle wie Outsourcing oder Software as a Service (SaaS), rücken das Thema Integration in den Mittelpunkt. Gehen führende Industrieanalysten davon aus, dass schon heute geschätzte 30 Prozent der Gesamtausgaben für die Softwareentwicklung bei Integration und Schnittstellenpflege anfallen, so sehen dieselben Analysten voraus, dass in Zukunft mehr als 70 Prozent der Softwarekomponenten für Neuentwicklungen sich auf bereits bestehende Systeme stützen.

Die Zukunft ist Realität: Model Driven Integration

Wer nun diese zwei Grundelemente – Model Execution und Integration – zusammenführt, landet automatisch bei einem Trend, der schon heute in führenden Unternehmen wie Deutsche Post World Net oder UBS als Durchbruch in der Softwareentwicklung gesehen wird: Model Driven Integration. Denn bei diesem Ansatz werden beide Grundelemente miteinander verbunden. Hinzu kommt ein weiterer Aspekt, der einen kräftigen Beitrag zur Produktivitätssteigerung auf Organisationsebene statt nur auf der Ebene des Programmierers leistet: die ganzheitliche Betrachtung des Software-Lebenszyklus von der Aufnahme der Anforderungen über das Design der einzelnen Komponenten bis hin zum Produktionseinsatz in der operativen IT und dem nachfolgenden Change-Management sowohl für technische Detailverbesserungen als auch für umwälzende Prozessanpassungen. Es ist dieser ganzheitliche Ansatz (end-to-end approach), der noch weitere Produktivitätssteigerungen ermöglichen wird, wie zwei konkrete Beispiele zeigen.

Beispiele aus der Praxis

Das erste ist Intrum Justitia, einer der führenden Europäischen Dienstleister für Inkasso und Forderungsmanagement: Das Unternehmens stand vor der Herausforderung, seine hauseigene ERP-Anwendung Recash immer wieder an länderspezifische Prozesse sowie neue Business- oder Compliance-Anforderungen anpassen zu müssen. Intrum Justitia entschied sich für eine Radikalkur: Der jahrelang angewachsene PL/SQL-Code wurde komplett abgelöst durch eine Neuentwicklung mit ausführbaren grafischen Modellen in UML – eine Weltpremiere. Das Ergebnis: Das UML-Modell erreicht eine höhere Abstraktionsstufe, dokumentiert die Lösung samt allen Schnittstellen vollständig und permanent und schafft so eine bislang ungeahnte Transparenz und hohe Wiederverwendungsrate. Mussten sich die IT-Spezialisten des Unternehmens bisher fünf bis sieben Tage in den Applikationscode einarbeiten, so dauert die Einarbeitung dank der visuellen UML-Modelle nur noch wenige Stunden, auch wenn die Entwickler die Modelle vorher nie zu Gesicht bekommen haben.

Das zweite Beispiel stammt aus der Schweiz. DKSH, mit mehr als sechs Milliarden Dollar Umsatz das erfolgreichste Dienstleistungsunternehmen für Outsourcing von Marketing, Vertrieb und Logistik in Asien, gelang es mit dem Einsatz von Model Driven Integration, eine weltweite IT-Infrastruktur rund um das größte SAP-System im Supply Chain Bereich zu standardisieren. In einem Rechenzentrum in Malaysia wurde die IT-Infrastruktur für sage und schreibe 38 Länder und über 350 Standorte in nur 18 Monaten konsolidiert. Nach der Anbindung der 200 Unternehmen, sowohl Kunden als auch Lieferanten, können Integrationsservices nun unabhängig von Land oder Partnerfirma durchschnittlich zu mehr als 60 Prozent wiederverwendet werden, was eine schnelle Einführung der neuen weltweiten Prozesse zur Folge hat. DKSH verzeichnet seitdem wesentlich kürzere Entwicklungszyklen, eine erhöhte Qualität bei der Bereitstellung von Services sowie eine weitaus geringere Abhängigkeit vom einzelnen Entwickler. Das Unternehmen kann heute die bestehende IT von Neukunden innerhalb von 15 Tagen statt drei Monaten in die IT-Infrastruktur einbinden und somit schneller mit dem operativen Outsourcing-Geschäft beginnen. Für Firmenvorstand Gonpo Tsering war dieses Projekt "eindeutig richtungsweisend für die gesamte strategische Unternehmensentwicklung". Veränderungen nimmt DKSH nun am UML-Modell statt am Code vor. Die Implementierung aller Veränderungen ist automatisiert und zu jedem Zeitpunkt vollständig dokumentiert. (cwi)

Mehr zum Thema

587951 Integration ohne Medienbruch

588420 UML: Auch für Komplettsysteme geeignet

1215744 Ein Plädoyer für Open-Source-SOA