
Axel Müller
Auf diesen Seiten geht es um meine
freiberufliche Tätigkeit als
Berater/Entwickler für Enterprise-Systeme auf Basis von Java/J2EE
- Name: Axel Müller
- Geboren: 1971
- Abschluss: Diplom-Betriebswirt (FH)
Kontakt
Verfügbarkeit: 01.01.2013
Obwohl ich mich seit 1999 mit Java/J2EE beruflich beschäftige, machte ich mit dem Wechsel in die Freiberuflichkeit im Jahr 2002 aus der Not ein Tugend: Mein damaliger Arbeitgeber beendete seine operativen Tätigkeiten und ich wurde gefragt, ob ich das Projekt weiterführen möchte. Ohne eine solche Situation hätte ich den Schritt in die Selbständigkeit vermutlich nicht gewagt ...
Am Beginn meiner freiberuflichen Aktivitäten stand die Suche nach einem Namen, der einen Bezug zum Inhalt meiner Tätigkeit hat und der als Internet-Domain noch zu haben ist. Als Ergebnis einer Wortspielerei entstand dabei aus den Worten
Java und
Linux das Verschmelzungswort
avanux.
Kompetenzen
In meinen bisherigen Projekten war es oft so, daß ich neben den
typischen Entwicklungstätigkeiten durch mein Know-How bestimmte Aspekte des
Entwicklungsprozesses und der
Entwicklungsumgebung maßgeblich prägen konnte, was wiederum dazu geführt hat, daß ich mein Know-How in diesen Bereichen weiter vertiefen konnte.
Build-Automatisierung/platformunabhängige Entwicklungsumgebungen
Die Gestaltung von Entwicklungsumgebungen hat erheblichen Einfluß auf die Effizienz und die Motivation der beteiligten Entwickler. Aus meiner Erfahrung kann ich sagen, daß die Automatisierung oft unzureichend ist und nicht adäquat zur Team-Größe ist. Auch der Aspekt der Platform-Unabhängigkeit, die durch Java/J2EE eigentlich gegeben ist, wird durch suboptimale Entwicklungsumgebungen unnötig geschwächt. In meinen bisherigen Projekten hatten wir spätestens in den letzten Projektphasen heterogene Build- und Testumgebungen, sodaß es sich bewährt hat, daß ich bereits in den frühen Projektphasen Wert auf eine platformunabhängige Build- und Testumgebung Wert gelegt hatte.
Test-Automatisierung (Continuous Integration)
Es erstaunt mich immer wieder, wenn in Projekten das Erstellen und automatisierte Ausführen von Tests als verzichtbarer (angeblich zu aufwendiger) Luxus dargestellt wird. Auch hier hängt die Motivation der Entwickler hauptsächlich davon ab, daß der Aufwand zur Testerstellung und -ausführung möglichs gering ist z.B. durch Anpassung von Standard-Testframeworks an die technische Architektur und Platform. Eine automatisierte Testumgebung, die unabhängig von der Entwicklungsgebung sein sollte, gibt den Entwicklern autmatisch zeitnahes Feedback über die Testergebnisse. Das führt mit steigenender Testabdeckung (die natürlich überwacht wird) zu einer deutlichen Qualitäts- und Effizienzsteigerung.
Performance-Tests / Profiling
In den meisten Enterprise-Projekten geniessen in der Anfangsphase funktionale Aspekte die höchste Priorität, weil meist unterstellt wird, daß die eigene Anwendung skaliert, weil ja man schließlich auf einer skalierenden Platform aufsetzt. Die Ernüchterung kommt dann in den späteren Projektphasen, wenn erste Tests zeigen, daß sich die Performance-Anforderungen des Kunden so nicht erfüllen lassen. Um diese Situation zu vermeiden, ist die Erstellug eines Konzeptes zur kontinuierlichen Messung der Performance relevanter Business-Transaktionen unerlässlich. Darauf aufbauend muß eine Umgebung mit entsprechenden Tools aufgebaut werden, die - idealerweise ebenfalls automatisiert - die aktuellen Performance-Zahlen liefert. Der Einsatz eines klassischen Profiling-Tools zur Analyse von Performance-Bottlencks ist meiner Erfahrung nach in Enterprise-Projekten nicht praktikabel.
Modellgetriebene Softwarentwicklung
In den letzten Jahren gab es signifikante Fortschritte im Bereich der modellgetriebenen Softwareentwicklung. Während man bisher auf UML zur Modellierung festgelegt war, kann dies heute besipielsweise auch textuell oder in XML erfolgen. Speziell textuelle Modelle machen die Erstellung von Modellen für Entwickler relativ einfach, inklusive voller Unterstützung durch die IDE (Auto-Completion, Outline, ...). Der Vorteil liegt darin, dem Entwickler Abstraktionen auf bestimmte Aspekte der Platform (z.B. Persistenzmechnismus) zu bieten und ihn von lästigen Routine-Programmierungen freizustellen, sodaß er sich auf die Erstellung von Geschäftslogik und zugehöriger Tests konzentrieren kann.
Android
Seit der Verfügbarkeit der ersten Android-Handies beschäftige ich mich im Rahmen eigener Projekte mit Android, weil ich davon ausgehe, daß diese Platform auch für Enterprise-Software als mobiles Terminal eine bedeutende Rolle spielen wird. Die von mir entwickelten
Android-Anwendungen sind über den Android-Market verfügbar.