Im Editorial der iX 06/08 bezeichnet Jürgen Diercks die Software-Industrie als "die größte Arbeitsbeschaffungsmassnahme aller Zeiten".
Ja, er hat recht ! Die großen und auch wir kleinen Software-Hersteller
haben es nicht geschafft, den explodierenden Anforderungen und
Technologie-Standards entsprechende Tools entgegenzusetzen, um die
Produktivität zu steigern oder auch nur zu halten. Nehmen wir einige
große Hersteller und Technologien:
1) Microsoft. Anfang der 90er kam ein damals sehr innovatives neues
Produkt. MS Access. Es bot RAD mit integrierter Datenbank, damals ein
Meilenstein für alle, die in der Individualentwicklung tätig waren für
Kunden. Leider hat MS es verpasst, diese Ideen zusammen mit einer echten
OO-Programmiersprache auszuliefern. VB naja. Trotzdem war und ist es ein
brauchbares Tool. Im Gegensatz dazu geht Visual Studio (leider) einen
anderen Weg. Featuritis. Man fragt sich immer wieder: müssen moderne
IDE's so komplex sein ? Allerdings muß man auch sagen, daß Microsoft im
Bereich der wizard-gestützten Entwicklung einer der besten ist. Trotzdem
ist die Entwicklung noch zu umständlich. MDA-Konzepte ? Fehlanzeige
2) Java. Viele Jahre hat es gedauert, bis Java im Bereich der
DB-Anwendungen ähnliche Tools hervorgebracht hat wie MS (zB Xdev). Java
ist ein Synonym für die Geschichte der SW-Entwicklung in den letzten 15
Jahren. Unglaublich viele Standards, Frameworks, wenig Produktivität,
mangelnde Tool-Unterstützung. Auch Eclipse hilft da nur bedingt. Wieder
das Thema Featuritis. Für die Server-Seite ist Java sehr gut geeignet.
Client-seitig ist es aus Entwicklersicht ein Alptraum. Hier spielt
natürlich die für Entwickler allgemein grausame
HTTP-stateless-Architektur eine Rolle, das ist somit nicht allein Java
anzulasten. Sun hat in Richtung Client-Produktivität überhaupt nichts
zustande gebracht, was mit der MS-Welt mithalten könnte.
3) SAP. Nunja, SAP war schon immer komplexer als alles andere Software. Die Firma
hat den Anspruch "do it once, do it right". Das führt manchmal zu
Overkill-Design. Sie haben einige sehr gute Ideen umgesetzt, zB die gute
Integration von DB und ERP-System, die integrierte Entwicklungsumgebung
in der Laufzeitumgebung, den stabilen ABAP-Kern, der gut von DB-Details
abstrahiert usw. Sie haben zusätzliche Komponenten für
Deployment/Verwaltung großer Java-Projekte erfunden, welche die
Schwächen von Java in dieser Richtung beseitigen. Die Web-Client-Probleme
versuchen sie mit WebDynpro zu lösen, welches ich prinzipiell für ein
besseres Konzept halte als alle anderen Web-Frameworks am Markt (da
WebDynpro den ganzen HTML-Käse überflüssig macht). Ob es allerdings
einfach erlernbar und anwendbar ist...hier kann SAP sicher noch
nachlegen. Die xApps haben auch interessante Konzepte mit den
UI-Patterns. Insgesamt ist aber Netweaver mit dem ABAP- und Java-Stack
sehr komplex. Eine Netweaver-Lite Version wäre sinnvoll
4) andere große Hersteller, gleiches Thema. Zu viel Featuritus, zu wenig
Wizards, MDA Fehlanzeige.
MDA allgemein: muß heutzutage erstmal als eigenes Projekt aufgesetzt
werden, bevor es überhaupt Arbeit sparen kann => fällt für kleine bis
mittlerere Projekte aus. Muß das so sein ?
5) B2B: zu viele verschiedene Standards. Kunde A schickt mit HTTP, B
kann nur FTP, der nächste braucht Mail, ein anderer JMS, der nächste
aber bitte verschlüsselt mit PGP, dann noch SOAP, Zertifikate, X400,
MQSeries, Idoc/RFC und was weiss ich noch. Das läßt sich nicht ändern.
Was machen die Software-Hersteller von Integration-Engines ? Wieder
dasselbe Thema. wenig wizards für die am häugfigsten benötigten Tasks,
zuviele Features. Zu wenig gescheites Monitoring ! Immer wieder
dasselbe, jede Menge Entwicklungs-Funktionen, aber keine brauchbare
Laufzeit-Kontrolle oder Test-Funktionen. Wieso kann ich im Java XI
keinen HTTP-Verbindungstest Button haben, so wie in der SM59 in ABAP ??
Unverständlich.
Als Entwickler ist man normalerweise im Projektgeschäft eingebunden und
fängt nicht an, nebenbei "mal so eben" die obigen Probleme mit eigenen
Produkten zu lösen. Auch ist es nicht einfach, die beschriebene
Komplexität für den Entwickler zu reduzieren.
Ich habe großes Verständnis, daß die Kunden von der IT genervt sind,
wenn sie sehen, welchen Aufwand sie reinstecken und was dann dabei
rauskommt. Die Software-Industrie im momentanen Stadium ist von der
Produktivität her absolut unbefriedigend. Wir Entwickler haben uns über
die Jahre irgendwie dran gewöhnt. Die Kunden wohl auch. Richtig
glücklich kann aber keiner von beiden damit sein.
CSY