Skip to content

Latest commit

 

History

History
70 lines (42 loc) · 7.22 KB

README.md

File metadata and controls

70 lines (42 loc) · 7.22 KB

Auf dieser Seite geht es um meine freiberufliche Tätigkeit als

Berater/Entwickler für Enterprise-Systeme auf Basis von Java/JEE/Android

Axel Müller

Name Axel Müller
Geboren 1971
Abschluss Diplom-Betriebswirt (FH)
Telefon +49-6047-989737
Mobil +49-177-2935683
Email axel.mueller@avanux.de
Web www.avanux.de
Platformen Gulp Freelance.de Xing
Verfügbarkeit 01.07.2018

Wie man an meiner Projekthistorie erkennen kann, entwickele ich Software aus Leidenschaft. Oft kommt mir dabei mein betriebswirtschaftlicher Background, meine lösungsorientierte Herangehensweise und meine Motivation durch Arbeit im Team zugute.

Obwohl ich mich seit 1999 mit Java/J(2)EE 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, dass 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/J(2)EE 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, weshalb es sich bewährt hat, dass 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 automatisch 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 beispielsweise 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 zu bieten und ihn von lästigen Routine-Programmierungen freizustellen, damit 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 von eigenen und auch Kundenprojekten mit Android, weil diese Platform perfekt für mobile Terminals von Enterprise-Anwendungen geeignet ist.

Arduino / Raspberry Pi

Lange Zeit fiel mir kein sinnvolles Projekt für einen Arduino ein, doch irgendwann kam mir die zündende Idee: Für einen Gleitschirmpiloten sind Wetterinformationen essentiell und so habe ich zunächst eine Wetterstation auf dem Hausdach gebaut, programmiert und installiert. Eine weitere Wetterstation mit solarer Stromversorgung und Mobilfunkanbindung habe ich programmiert und auf dem Fluplatz unseres Motorschirmvereins installiert. Ursprünglich wollte ich den Arduino auch für mein nächstes Projekt verwenden, einen Gateway zur Integration beliebiger Geräte in eine Smart Home Steuerung. Wegen des größeren Arbeitsspeichers und der Möglichkeit, vorhandene Java-Frameworks zu nutzen, habe ich mich für einen Raspberry Pi entschieden.

Profile

Eine vollständige Beschreibung meiner bisherigen Projekte ist verfügbar in den Formaten

Die Beschreibung des aktuellen Projektes füge ich jeweils erst zum Ende dieses Projektes hinzu!

Referenzen

Damit Sie sich auch ein Bild davon machen können, wie meine Auftraggeber die Zusammenarbeit mit mit eingeschätzt haben, finden sich nachfolgend Referenzen. Leider ist nicht jeder Auftraggeber bereit, Referenzen für Freiberufler zu erstellen.

Weiterbildung

Im Wesentlichen findet Weiterbildung meist on-the-job statt, indem man sich in Themen einarbeitet oder sein Wissen vertieft, um die gestellten Aufgaben lösen zu können. Ab und zu gibt es aber auch explizite Weiterbildungsmaßnahmen: