„Java ist auch eine Insel“ lautet der Titel eines Bestsellers von Christian Ullenboom. Seit 1997 ist er als Java-Berater für Unternehmen tätig. (mil)
Hier die Anmerkungen von Experte Ullenboom:
Beliebte Programmiersprache
Woran denken Sie, wenn Sie Java hören? An eine Insel oder an die Programmiersprache? Wenn Ihnen sofort der Gedanke nach Strand auf Bali oder Lombok kommt, dann ist dieser Beitrag genau richtig für Sie. Lassen wir den Java-Tiger und balinesische Tänzerinnen einmal außen vor und kommen wir zur leistungsfähigen Programmiersprache und Plattform Java. Dass Java 1995 einmal den Nimbus einer lahmen Ente hatte, ist lange passé. Heute setzen alle großen IT-Unternehmen auf Java – und nicht nur Oracle, die wegen der großen Anzahl von Java-Projekten Sun übernahm. Unter den Nutzern sind Top-IT-Unternehmen wie Google, Twitter, Facebook, Amazon, eBay, LinkedIn – und dank Java serviert Facebook jeden Tag 30 Millionen Web-Seiten.
Große Entwickler-Gemeinschaft
Java bildet das Rückrat der IT, und dabei sind technische Gründe wie die gute Performance und Plattformunabhängigkeit gar nicht so ausschlaggebend. Eher ist es für Unternehmen interessant, auf die großen etablierten Technologien zu setzen, und die Anzahl Java-Entwickler ist mit neun Millionen einfach sehr groß. Jede Universität unterrichtet Java, und selbst Informatik-Kurse in Oberschulen praktizieren die Programmiersprache. Mittlerweile ist es ein Perpetuum Mobile, dass Java als Sprache interessant ist, weil die Projekte in Java realisiert sind, und umgekehrt entwickeln Java-Programmierer selbst wieder neue Projekte und Java-Code. Die Infrastruktur mit Java-Servern, Test-/Build-Umgebungen und Entwicklungsumgebungen ist beliebig wählbar und oft sind die Lösungen frei und quelloffen.
Gründe gegen Java
Wenn ein Unternehmen interne Projekte realisiert oder als Dienstleister Kundenlösungen umsetzt, sollte Java auf jeder Liste stehen. Doch es ist wie mit allem: Nichts ist alternativlos, es gibt immer eine Wahl und die kann auch gegen Java sprechen. Zwei Hauptgründe sprechen gegen den Einsatz von Java: Wenn ein Team von Mitarbeitern in einer Technologie geschult und praxiserfahren ist, wäre es ein schwer kalkulierbares Risiko, von etwas Bekanntem auf Java zu wechseln. Eine Web-Anwendung mit PHP fällt in diese Kategorie – PHP ist seit Jahren eine verlässliche Programmiersprache und wenn ein neuer Kunde eine dynamische Webseite anfragt, spricht wenig dafür, das plötzlich mit Java umzusetzen. Ein anderes Problem betrifft alle Programmier-„Aufgaben“: Nicht für jedes Problem muss eine neue Software her! Es liegt in der Natur von Entwicklern, Code (von Grund auf neu) zu schreiben und weniger nach Umgebungen zu suchen, die ein Problem auch mit wenig Aufwand lösen.
Zwei Beispiele aus der Praxis:
• Web-Seiten mit Datenbankanbindung und Benutzerverwaltung müssen nicht in monatelanger Arbeit von null an entworfen, entwickelt und getestet werden, sondern lassen sich im Idealfall innerhalb von wenigen Stunden mit einem Content-Management-System (CMS) „zusammenklicken“. Da es für ein CMS wie Drupal oder Joomla! auch ein Ökosystem mit Hostern und Designern gibt, kann das System professionell administriert und aufgehübscht werden.
• Ein weiteres Beispiel betrifft die Entwicklung von Erweiterungen (Modulen, auch Plugins genannt) für existierende Umgebungen; eine Neuentwicklung von SAP steht außer Frage, stattdessen kann eine eigene Komponente für SAP das System perfekt ergänzen. Oder wer eine neue Dubletten-Erkennung für Kontakte benötigt, kann die Umgebung von Microsoft Outlook verwenden, und eine kleine Erweiterung löst vielleicht schon das Problem.
Experten einbeziehen
„Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.“ Was Paul Watzlawick hier sagt, gilt insbesondere für Entwickler, denn sie haben nur ein Werkzeug für die Lösung von Problemen, nämlich neuen Code. Wenn ein Problem gelöst werden soll, müssen Entwickler gehört werden. Allerdings ist es ratsam, Experten einzubeziehen, die alternative Vorschläge einbringen können, ob eine komplexe Angelegenheit nicht vielleicht schneller und ressourcenschonender ohne Eigenentwicklung umsetzbar ist. Das Wissen ist in der Regel in kleinen und mittlere Unternehmen nicht verfügbar, und Entwickler kennen zwar ihre Umgebung gut, aber auch breit aufgestellte Entwickler werden kaum etwas zu Erweiterungsmöglichen von Microsoft Dynamics CRM oder Reporting mit Oracle Business Intelligence Discoverer sagen können. Idealerweise sind bis zur Lösung keine oder wenig Zeilen Code geschrieben, und daher sind Entwickler nicht zwingend die besten Entscheider.
Komplexität von Eigenentwicklungen
Ist eine Individualsoftware dennoch die Antwort, fallen die nächsten Fragen an: Soll es eine Eigenentwicklung sein – oder vergibt man einen Auftrag an externe Dienstleister? Im Idealfall baut ein Unternehmen das Knowhow im Haus auf, doch wenn etwa ein auf Web-Seiten spezialisiertes Medien-Unternehmen den Auftrag bekommt, eine mobile Smartphone-Anwendung zu schreiben, soll dieses Wissen wirklich nur für diesen einen Kunden – und unbekannter Nachfrage in der Zukunft – aufgebaut werden? Unternehmen unterschätzen oft die Komplexität von Eigenentwicklungen und den unglaublichen Aufwand, etwas gut zu machen.
Erfahrung erforderlich
Interessanterweise kommt diese falsche Vorstellung auch von einem Missverständnis: Eine mobile Anwendung sieht so klar, so einfach aus, dass die Schlussfolgerung entsteht, dass so eine Anwendung ja nicht so schwer zu entwickeln sein kann. Doch gerade in der Einfachheit liegt die Schwierigkeit, die einem direkt an Antoine de Saint-Exupéry erinnern lässt: „Perfektion ist nicht dann erreicht, wenn man nichts mehr hinzufügen, sondern wenn man nichts mehr weglassen kann.“ Eine so klare und einfache Anwendung zu schreiben, ist schwer und erfordert langjährige Erfahrung. Unternehmen, die bisher noch keine Software-Entwicklung betrieben haben, sind gut damit beraten, Anwendungsentwicklung abzugeben, es sei denn, die besondere Aufgabenstellung rechtfertig eine langwierige Entwicklung bis zum Einsatz oder zur Marktreife.
Vorurteile abbauen
Um ein Gefühl für die Komplexität zu bekommen, helfen Einblicke in die Entwicklung, und daher sollten sich alle Beteiligten, die eine grundlegende Vorstellung von Software-Entwicklung besitzen, die folgenden Phasen kennen: Anforderungsanalyse, Systemdesign/Konzeption, Code-Entwicklung, Tests, Einsatz, Wartung. Dabei geht es weniger darum, dass jeder als exzellenter Programmierer unterwegs ist, sondern darum, Vorurteile abzubauen und Respekt vor den Leistungen zu entwickeln. Von dem Grundwissen hin zum Experten ist es jedoch ein langer Weg: Malcolm Gladwell spricht in seinem Buch Outliers die „10,000 hours of practice“ an; man braucht im Schnitt 10.000 Stunden, um in irgendwas richtig gut zu werden. Das entspricht etwa einem kompletten Jahr ununterbrochenen Studiums – es kann auch schneller gehen, doch für alle Fähigkeiten muss Zeit investiert werden. Während jeder Beteiligte daran gut tut, die Grundlagen und Abläufe in der Softwareentwicklung zu verstehen, sollten nur die Unternehmen selbst Software-Entwicklung betreiben, die völlige Kontrolle über alle Prozesse und Kosten wünschen und Abhängigkeiten minimieren möchten.
Weiterbildungsmöglichkeiten
Für Entwickler, die Software in Java schreiben, gibt es mannigfaltige Weiterbildungsmöglichkeiten, angefangen vom Selbststudium mit Büchern, über Videos, Java-Konferenzen (Beispiele: JavaOne, W-JAX, JAZOON), Schulungsanbietern oder Diskussionsforen (Beispiele: Stack Overflow, Byte-Welt). Es wird in jedem Fall Zeit kosten, sich in Java einzuarbeiten – und das ist nur ein Glied der Kette. Java ist zwar die gemeinsame Sprache, aber als erfolgreicher Entwickler gilt es, mehrere Bereiche abzudecken. Ein Entwickler muss heutzutage breiter aufgestellt sein, und speziell in den kleinen KMU-Teams kommen Fragen rund um Datenbankentwicklung (SQL, DB-Administration), Web-Entwicklung (JavaScipt, HTML, CSS) und Server-Administration (DB, Linux, LDAP, Java EE-Container) dazu.
Das Fazit
Java nimmt heute in der Software-Entwicklung eine zentrale Rolle ein, doch der Weg zum professionellen Softwareentwickler ist lang. Unternehmen, die selbst keine Software Entwicklungsabteilung besitzen, sollten erwägen, Entwicklungsprojekte an Sub-Unternehmer abzugeben. Diejenigen, die mit Software-Entwicklung Geld verdienen, finden in Form von Java eine erprobte Sprache und großartige dazu passende Bildungsangebote.
Lesen Sie auch: Neue Werkzeuge zur Software-Bewertung