Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.


13.11.2006

Software-Lego gehört die Zukunft

Marc Voland
Wie Software in fünf oder zehn Jahren entwickelt wird, ist schwer zu sagen. Auf jeden Fall gilt: Programme werden modularer und abstrakter. Entwickler müssen sich auch mit deren Anwendung auskennen.

Nicholas Carr kann es immer noch. Der Wirtschaftsjournalist und Querdenker reizte die IT-Branche mit seinen Thesen, denen zufolge IT künftig wie Strom aus der Steckdose bezogen wird - und sich der Einsatz für Firmen erst lohne, wenn Software Commodity ist. Die Reaktion kam prompt, unter anderem von Bob McDowell, Vice President of Information Worker Business Value bei Microsoft: "Die Argumentation, dass IT im weitesten Sinne allgemein verfügbar sei wie Strom oder Autobahnen, stimmt nicht."

"Die Programmiermaschine bleibt eine schöne Idee"

Manfred Broy, Professor für Informatik an der Technischen Universität München, über künftige Programmiersprachen und die Grenzen der Objektorientierung.

CW: Mit welchen Sprachen programmieren Entwickler künftig?

BROY: Entwickler werden wie bisher ihren Code hauptsächlich mit konventionellen, oft objektorientierten Sprachen schreiben, vor allem wenn es sich um große Softwareprojekte handelt. Die Konzepte der Objektorientierung sind einfach sehr verbreitet und mächtig. Nicht umsonst haben sich diese Sprachen von Simula bis Java, C++ und C# immer weiter entwickelt. Doch sehe ich auch ein prinzipielles Defizit dabei.

CW: Was stimmt an den bestehenden Sprachen nicht? Java hatte einen überraschenden Erfolg und gilt als die Sprache der Entwickler.

BROY: Die heute gebräuchlichen Programmiersprachen sind im Kern immer noch Mainframe- und Host-basiert. Auch Java und C# unterscheiden sich von ihren Vorgängern der 60er Jahren nur durch bessere Kapselung und Scopes, aber in den Konzepten nicht wirklich. Durch die gewachsene Vernetzung tut sich eine Kluft auf. Die Sprachen wollen nicht so richtig zu den Strukturen heutiger Systeme passen. Alle Systeme, die wir heute benutzen, sind verteilt, vernetzt und nebenläufig. Alle Programmiersprachen, die wir heute verwenden, sind stark auf sequenzielle Ausführungsparadigmen ausgerichtet. Sie unterstützen zu wenig Verteilungs-, Interaktions-, Architekturkonzepte und die Integration. Was wir benötigen, ist eine echt auf asynchrone Verteilung ausgerichtete Sprache, die auch noch Architekturkonzepte auszudrücken erlaubt.

CW: Zeichnet sich eine Lösung ab?

BROY: Ja und nein. Natürlich entwickeln sich die Sprachen weiter, aber mühsamer und langsamer als früher. Denn mit Programmiersprachen verdient man heute nichts. Deshalb lassen die Leute zunehmend die Finger davon. Weder in der Wirtschaft noch in der Wissenschaft ist der Markt - also der nötige Anreiz - vorhanden.

CW: Müssen Entwickler künftig überhaupt noch programmieren? Wann kommt die Programmiermaschine?

BROY: Die Programmiermaschine bleibt natürlich eine schöne Idee. Wenn es aber gelingt, Anforderungen stark zu formalisieren und differenziert zu beschreiben, so wie es mit der Model Driven Architecture teilweise schon geschieht, dann rückt diese Vision zumindest ein Stück näher.

Hier lesen Sie …

Mehr zum Thema

www.computerwoche.de/

556297: Die Zukunft der IT-Abteilung;

571624: Industrialisierung der IT;

569228: Trends in der Entwicklung.

Software als Service

Unübersehbar ist allerdings, dass sich in den letzten Jahren zunehmend mehr Unternehmen etabliert haben, die Software as a Service (SaaS) vertreiben. Firmen wie Salesforce.com, der Web-Konferenz-Anbieter Webex oder der Stuttgarter SRM-Anbieter Onventis bieten ihre Software über das Internet an. Ob SaaS-Lösungen von einem Nischengeschäft zu einem Multi-Milliarden-Markt wachsen, wie der IT-Analyst Kash Rangan des US-Bankhauses Merrill Lynch vorhersagt, bleibt freilich offen.

Aber selbst Microsoft scheint der Gedanke an Software per Kabel zu gefallen: So schalteten die Redmonder eine Site für Softwarearchitekten und Entwickler frei, die das Thema SaaS weiter vorantreiben sollen. Auch die Marktforscher der Aberdeen Group kommen zu dem Ergebnis, dass immer mehr Unternehmen bereit sind, sich dem Konzept zu öffnen. Bereits heute, so ihre Studie von Mitte 2006, setzen 84 Prozent der kleinen und mittelständischen Unternehmen sowie 69 Prozent der Konzerne in Amerika eine SaaS-Lösung für das Customer-Relationship-Management ein. Das bedeutet gleichzeitig: SaaS verändert die Art, wie Unternehmen mit ihren Softwareapplikationen umgehen, sie implementieren und in ihre bestehende IT-Umgebung integrieren. Vor allem IT-Beratungen und Systemhäuser könnten ihr Geschäft - Implementierung und Integration - verlieren, wenn Konzerne wie etwa SAP alle Applikationen on Demand anbieten würden.

Einkaufsmacht Fachabteilung

Wesentlich wahrscheinlicher - so die Analysten von Berlecon Research - ist eine hybride Landschaft aus On-Premise- und On-Demand Software. Ihre Integration erfordert zunehmend die Unterstützung von IT-Dienstleistern, sagt Carsten Kappler, Geschäftsführer von Onventis, deren On-Demand-Lösungen mittelständische Unternehmen wie Uhu, aber auch Konzerne wie Schott Glas oder Deutz einsetzen.

Die Systemhäuser müssen künftig die Geschäftsprozesse der Kunden beherrschen, um die Software entsprechend anzupassen und einzurichten. "Informatiker orchestrieren die verschiedenen Services, um durchgängige Business- und IT-Konzepte zu erstellen. Dazu benötigen sie Tools und Prozessbeschreibungssprachen, müssen konzeptionell denken und auch betriebswirtschaftliches Wissen mitbringen", so Kappler. Für die Entwicklung einzelner Services sind die heute üblichen Programmierkenntnisse - NET, Java oder XML - nötig. Außerdem, so Kappler, tauschen sich die Entwickler künftig stärker mit den Fachabteilungen aus, die mehr und mehr Einkaufsmacht erhalten.

Ein weiterer Trend, der die Softwareentwicklung von Anwendungen beeinflusst, sind, im Zuge von Web 2.0, Technologien wie Ajax (Asynchronous Javascript and XML) oder JSP (Java Server Pages). Mit Ajax lassen sich Internet-Anwendungen entwickeln, die sich ähnlich wie Desktop-Applikationen verhalten. Jüngstes Beispiel ist das Textverarbeitungsprogramm Writely von Google. "Applikationen werden immer interaktiver und öfter über Browser abrufbar. Das bedeutet: Windows-Clients verlieren an Bedeutung und werden durch Rich Internet Applications (RIA), das heißt Browser-basierende Anwendungen, verdrängt", sagt Markus von den Driesch, Entwicklungsleiter Aris PPM beim Software- und Beratungshaus IDS Scheer. Doch der Durchbruch - zumindest in Deutschland - lässt auf sich warten. "Ajax bedeutet momentan noch viel Bastelarbeit", so von den Driesch.

Aus für Entwickler?

SaaS und Web 2.0 sind Elemente einer künftigen Softwareentwicklung, die immer stärker Merkmalen einer industrialisierten Branche gehorcht und immer modularer wird. Service-oriented Architecture (SOA) ist das Gebot der Stunde und wird auch künftig eine große Rolle spielen, so Manfred Broy, Professor für Informatik an der Technischen Universität München. "Software im Sinne interaktiver Dienste zu strukturieren, die sich untereinander austauschen, wenn sie sich an die gleiche Vereinbarung halten, ist natürlich hochinteressant."

Bereits heute, so Broy, arbeiten Programmierer mit vorgefertigten Softwareteilen, Web-Services, Frameworks oder Bibliotheken. Programmieren wird immer mehr zu einer Integrationsarbeit, die bestehende Komponenten, seien sie selbst gebaut, vom Mitbewerber gekauft oder der Open-Source-Gemeinde entliehen, miteinander verbindet. Warum programmieren, wenn bewährte Bauteile frei verfügbar sind? Wenn Software im besten Fall wie Legosteine zusammengesetzt werden kann - was heute mehr Wunsch denn Realität ist - , bedeutet dies das Aus für Programmierer?

Gemischte Teams im Kommen

Nein, denn was sich einfach anhört, hat es ziemlich in sich. "Gerade der so genannte Glue Code, also der Integrationscode, ist sehr anspruchsvoll und schwierig", sagt Broy "Schließlich müssen alle Legosteine zueinander passen." Auch von den Driesch ist skeptisch. "Bei den Services wird es sich bestimmt nicht um einheitliche Bauteile handeln. Manche Teile sind rund, manche quadratisch und manche pyramidenförmig."

In jedem Fall bedeutet SOA, was schon für SaaS gilt: Softwareentwicklung darf nicht erst bei der Programmierung beginnen, sondern muss von Anfang an die Geschäftsprozesse verstehen. Entwicklerteams, so von den Driesch, sind im besten Fall so gemischt dass sich betriebswirtschaftliches und technisches Wissen die Waage hält. "Informatiker müssen immer stärker auch einen Blick für die fachliche Anwendung und deren strategischen Wert bekommen; der reine Tekki wird es schwer haben." Das zeigt auch ein Blick auf den Stellenmarkt. Der Bedarf an IT-Spezialisten steigt weiter; vor allem IT-Mischberufe werden nachgefragt. Gesucht werden Spezialisten für komplexe, schulungsintensive Programme für Entwicklung und Konstruktion, Fertigungssteuerung und Maschineneinrichtung.

Von SOA ist es nur ein kleiner Schritt zur modellbasierten Softwareentwicklung. "Beides passt konzeptionell gut zusammen", sagt Gregor Engels, Informatikprofessor und wissenschaftlicher Leiter der Forschungsabteilung des auf Individualsoftware spezialisierten Software- und Beratungsunternehmens sd&m in München. Was genau ein Modell sei, darüber gibt es noch keinen Konsens. Man kann sogar trefflich argumentieren, dass der reine Code bereits ein Modell darstellt.

Die Abstraktion geht weiter

Wie auch immer die Diskussion ausgeht: Die modellbasierte Softwareentwicklung führt den Trend der Abstraktion fort, der für die Informatik konstituierend ist. Zuerst lösten die höheren Sprachen die maschinennahen Sprachen ab, jetzt kommt eine weitere Abstraktionsebene hinzu. Eine Anforderungsbeschreibung wird nicht direkt in Code umgesetzt, sondern in eine abstrakte Beschreibung, die es erlaubt, Code abzuleiten. So lassen sich nicht nur Programmteile automatisch erstellen, das Modell bietet auch eine Grundlage, um mit Kunden über Projekte zu sprechen.

Auch Offshoring und Outsourcing werden einfacher; Anforderungen lassen sich in Modellen beschreiben, die Entwickler auf der gesamten Welt verstehen. Reine Zukunftsmusik? Bereits jetzt gibt es Model Driven Architecture-basierende Generatoren, die auf dem besten Weg sind, den Wildwuchs an bestehenden oder selbst entwickelten Generatoren zu reduzieren und, so die Hoffnung, irgendwann einmal ganz zu beseitigen. "Ich vermute, dass Moore’s Law auch für die Softwareentwicklung gilt, allerdings innerhalb einer Periode von 20 und nicht zwei Jahren", so Engels. "Heute entwickeln wir Software ungefähr doppelt so schnell wie 1985 und viermal so schnell wie 1965. An dieser Entwicklung ist MDA nicht unbeteiligt."

Und wo bleiben die Entwickler, die komplexe Softwareprojekte individuell entwerfen und programmieren? "Für Individualentwicklungen wird es immer einen Markt geben", so Engels. "Die Informatik wird noch viele neue Domänen erschließen. Embedded-Software, die Industrie- und Gebrauchsgüter steuert, oder die Bioinformatik sind Beispiele neuer Betätigungsfelder. Diese werden dann jahre-, vielleicht jahrzehntelang von Individualentwicklungen bestimmt - bis sie schließlich zur Commodity werden. Nicholas Carr hat deshalb nur bedingt Recht." Das Gleiche gilt für Unternehmenssoftware. "Die Kunst besteht darin, zu begreifen, welche Systeme Commodity sind, die man im Wesentlichen nach den Gesichtspunkten Kosten und Qualität steuert, und welche einen strategischen Wert haben und damit einen Wettbewerbsvorsprung bedeuten."

Agil entwickelt es sich schneller, sagt Matthias Grund, Vorstand des Software- und Beratungsunternehmens Andrena Objects. Schnell, effizient und dennoch fehlerfrei programmieren, das ist die hohe Kunst. Seit den Kindertagen der Informatik streiten sich die Experten deshalb über die beste Methode, mit der sich komplexe Projekte gestalten lassen. Lange galt das Wasserfallmodell als State of the Art, es folgten das V- und das Spiralmodell, später der Rational Unified Process. Heute diskutiert die Branche über agile Methoden, die den bewährten iterativen und inkrementellen Ansatz berücksichtigen.

Zu diesen Methoden zählen Extreme Programming und Scrum. "Scrum zielt darauf ab, so schnell wie möglich eine produktive Auslieferung zu entwickeln", so Grund. Eines der obersten Prinzipien ist die komplette Selbstorganisation eines Teams, das für die Entwicklung der Anwendungen zuständig ist. "Die Mitglieder des Teams - es kann aus zwei bis zwölf Personen bestehen - treffen sich jeden Morgen und beantworten die Fragen: Was habe ich gestern gemacht, was werde ich heute machen, was könnte mich daran hindern, meine Aufgabe zu erledigen?"

Schnelle Auslieferung

Ein Scrum Master, der Projektleiter, räumt dabei alle Schwierigkeiten aus dem Weg, die das Team bei der Arbeit behindern könnten. Dazu gehören vor allem spontane Aufträge von außen. Dem Product Owner kommt die Aufgabe zu, in enger Zusammenarbeit mit dem Kunden eine Liste mit anstehenden Aufgaben zu priorisieren, so dass die Anforderungen mit dem größten Nutzen zuerst umgesetzt werden. Team, Scrum Master und Product Owner - mehr Rollen gibt es nicht. "Die Methode eignet sich vor allem für kleine bis mittlere Projekte", so Grund. "Es spricht aber nichts dagegen, ein Großprojekt in mehrere Teilprojekte zu untergliedern. Auch hier gilt: Durch die schnelle und stetige Auslieferung lauffähiger Kernanwendungen können sich Entwickler und Kunden viel leichter abstimmen als bei plangesteuerten Verfahren." So lässt sich nach verhältnismäßig kurzer Zeit feststellen, ob die bestehende Lösung tragfähig ist, Änderungen und Innovationen können schneller berücksichtigt werden.

Mentalitätswandel nötig

Scrum, der Begriff für die Management-Methode kommt aus dem Rugby, wird vor allem in asiatischen und angelsächsischen Ländern eingesetzt. Grund sieht für Europa noch Überzeugungsarbeit, obwohl große Unternehmen wie SAP und Siemens bereits mit der Methode arbeiten: "Scrum setzt einen Mentalitätswandel zu einer offenen und völlig transparenten Arbeitsweise voraus." (hk)