Schlagwort-Archive: Softwareentwicklung

1. SEROM-Konferenz in Vechta

 

dsc_0866Am 4.11. fand in Vechta die erste SEROM-Konfernenz statt – mal eine ganz andere Entwicklerkonferenz: ohne Fokus auf eine bestimmte Programmiersprache oder eine  konkrete Branche, dafür mit einem klaren regionalen Bezug: dem Oldenburger Münsterland. Außerdem ging es explizit um Themen, die für den Entwickler im Mittelstand relevant sind (also weder rein akademische Themen noch solche, die nur für Großkonzerne wichtig sind).

Insgesamt ein interessanter Ansatz, den u.a. die BISS GmbH als Sponsor gefördert hat (obwohl wir ja nicht im eigentlichen Einzugsbereich liegen – auch wenn es für Ortfremde nicht leicht zu verstehen ist, gehören weder Oldenburg noch Münster zum Oldenburger Münsterland).

dsc_0853

Ebenfalls eine besondere Erwähnung wert ist die Location, das FIZZin Vechta.

So ein Schützenheim habe ich bisher noch nicht gesehen – rustikale Optik und moderne Technik, dazu noch toller Service.

 

dsc_0852

 

Das Konferenzprogramm war ausgesprochen abwechslungsreich, weil es für die Vortragseinreichung auch relativ wenig Vorgaben gab; schließlich fand die Konferenz zum ersten Mal statt, so dass es keine Erfahrungswerte gab. Im Vorfeld wurden die „Lieblingsprogrammiersprachen“ der Teilnehmer abgefragt – selbst das war sehr uneindeutig. Spitzenreiter waren zwar erwartungsgemäß Java und C#, aber die machten zusammen nicht mal die Hälfte der Nennungen aus.

Stefan Macke – Wer braucht eigentlich Microservices?

Ein Realitätscheck zum Thema Microservices anhand der konkreten Situation in einer Versicherung. Offenbar scheinen viele der postulierten Vorteile von Microservice-Architekturen aus der Sicht einer Versicherungs-IT eher irrelevant oder sogar nachteilig zu sein. M.E. waren das durchaus valide Argumente; trotzdem würde ich persönlich nicht so weit gehen, Microservices als irrelevant für die Versicherungs-IT zu betrachten, ganz im Gegenteil!

Martin Helmich – Einführung in die Container-Virtualsierung mit Docker

Ein kurzer Abriss über die Unterschiede zwischen „klassischer“ Virtualsierung, bei der mehr oder weniger die Hardware virtualsiert wird und deshalb in jeder virtualisierten Instanz ein eigenes Betriebssystem läuft und der Container-Virtualisierung, bei der Kernel-Funktionen des Wirtsystems direkt genutzt werden. Außerdem wurden verschiedene Szenarien für Entwicklung, Test und Betrieb beschrieben, in denen uns Docker und Konsorten helfen können.

Der interessanteste Aspekt war aus meiner Sicht, dass dieser Vortrag von einem Mitarbeiter eines Web-Hosting-Anbieters kam. Noch gibt es dort keine entsprechenden kommerziellen Angebote, aber das wird sicher bald kommen.

Christian Siewert – Buildautomatisierung mit Jenkins, wirklich!

Auf vielen Konferenzen wird Buildautomatisierung quasi vorausgesetzt – in der Praxis gibt es aber manchmal Hürden. Hier gab es einen Erfahrungsbericht, wie ein ursprünglich skript-gesteuerter Build mit Jenkins automatisiert wurde. Dabei erzeugt der eigentliche Jenkins-Build die spezifischen Skripte, mit denen dann die konkreten Builds erfolgen. Eine sehr charmante Lösung für diesen konkreten Anwendungsfall.

Dr. Herwig Henseler – Einsatz von Datenbrillen in der Industrie

Ganz anderes Thema – Hardware! Datenbrillen, diesmal nicht für Glassholes, sondern im Einsatz in der Industrie. Und natürlich nicht irgendeine Industrie, nein, es muss schon Industrie 4.0 sein!

Tatsächlich gibt es am Markt tatsächlich praxistaugliche Modelle, die man auch im industriellen Bereich einsetzen kann. Anwendungsfälle lassen sich eine erfinden; in der Praxis scheint es aber noch relativ wenig zu geben. Was hier im Vortrag als Forschungsprojekt einer Hochschule vorgestellt wurde, erschien mir jetzt noch nicht so bahnbrechend zu sein – da wurde eine Handzugabe (also ein manueller Eingriff bei einem ansonsten automatisierten Mischungsprozess) durch Vernetzung von Produktionssteuerungsanlage, Digitalwaage und Datenbrille unterstützt.

Ich denke, da werden wir in nicht allzu ferner Zukunft noch spannendere Anwendungsfälle sehen. Hier hat man aber immerhin gesehen, was heute relativ einfach möglich ist, wenn man es denn nur einmal angeht.

Klaus Landsdorf – ISA95 und ISA88 als Grundlage im Web of Things

Ich habe zwar mein Ingenieurdiplom im Bereich der Prozessinformatik und Automatisierungstechnik erworben, aber ich muss gestehen, das Thema hier habe ich nicht so richtig gegriffen bekommen – irgendwie war das wie den Tatort erst ab 21:00 gucken – vielleicht noch unterhaltsam, aber die ganze Story erschließt sich einem nicht mehr.

Auf jeden Fall haben wir gesehen, dass auch hier Forschung und Wissenschaft noch einiges an Vorarbeiten zu tun haben. Am Ende könnte es aber – koopeartionswillige Geräte- und Anlagenhersteller einmal vorausgesetzt – durch Definition standardisierter Wissenmodelle gelingen, Maschinen die Möglichkeit  zu geben, selbstständig die Fähigkleiten anderere Maschinen zu erkennen und sich so eigenständig miteinander zu vernetzen – irgendwie gruselig…

Tobias Schierholt – Digitale Prozesse in KMUs mit eigener App realisieren

Für viele eigentlich stark formalisierte Prozesse (wie z.B. die Urlaubsplanung) wird heute in Unternehmen oft Excel eingesetzt. Damit hat man zwar die Daten halbwegs strukturiert vorliegen, unterstützt aber den Prozess nicht wirklich und hat – da Excel ja von Haus aus Dateien im lokalen Dateisystem schreibt, ziemlich schnell Verteilungs- und Versionierungsprobleme.

Die vorgestellte These ist jetzt, dass es überhaupt nicht viel Aufwnad erfordert, solche Dinge strukturiert in einer Datenbank zu halten und über Browser-Frontends oder mobile Apps zu pflegen.

Wir haben auch gesehen, dass es tatsächlich ziemlich schnell möglich ist, einfache CRUD-Anwendungen mit schlichten UIs auf die Beine zu stellen.

Wenn man allerdings etwas tiefer gebohrt hätte, dann hätte man gesehen, dass reale Anforderungen wie begrenzte Offline-Fähigkeit, transaktionale Sicherheit, Authentifizierung und Autorisierung oder Datenaustausch mit anderen Systemen aus einen einfachen „Hello World“-Beispiel ein ziemliches Dickschiff machen können, so dass man mit dem „Hand-am-Arm“-Ansatz schnell nicht mehr weiterkommt

Stefan Themann – Steuerung für automatische Verarbeitungsprozesse im SAP ERP

Bin ich froh, dass ich mit SAP wenig zu tun habe – dort schlägt man sich tatsächlich mit Problemen herum, für die man in der richtigen Softwareentwicklung gefühlt seit Jahrzehnten Lösungen hat.

Auf der anderen Seite sieht man, dass es auch ohne agile Verfahren, tolle Architekturen, Continous Integration, Architekturmanagement, vernünftige Transaktionen oder auch nur Source-Code-Versionierung gelingt, funktionierende Anwendungen auf die Straße zu bringen und damit auch noch gutes Geld zu verdienen.

Markus Amshove – Domänenspezifische Sprachen mit Xtext

Sehr konzentrierte Darstellung von DSLs und wie man diese mit Xtext definieren und einsetzen kann. Ausgesprochen interessant! Jetzt bin ich nur noch auf der Suche nach einem Problem, das sich damit lösen lässt.

Markus Weißjohann – Sketch Notes

Ein ganz anderes Thema – übrhaupt nicht technisch. Es ging darum, Protokolle (also keine technischen Logs, sondern das Papier, das irgendein bedauerswerte Teilnehmer bei einer Besperchung schreiben muss) in grafischer Form zu führen. Tolle Ansätze und Ideen; vielleicht kann man das eine oder andere ja mal einsetzen.

 

Die abschließende Feedbackrunde fiel sehr positiv aus, so dass wir hoffen dürfen, dass es diese Konferenz im nächsten Jahr in ähnlicher Form wieder geben wird. Zusätzlich kristallisierte sich der Wunsch heraus, einzelne Themen in einer etwas kleineren Runde detaillierter in Workshop-Form zu bearbeiten. Es entstand die Idee, den Entwicklerstammtisch der SEROM-Gruppe entsprechend weiterzuentwickeln. Man darf also gespannt sein, was da noch kommt.

 

 

 

 

JavaForumNord in Hannover

Für den 20.10.2016 hatten diverse Java User Groups aus dem norddeutschen Raum zum Java Forum Nord geladen. Die Konferenz war längst ausverkauft, aber weil ein Kollege abspringen musste, konnte ich einspringen.

Erste neue Erfahrung: zu einer Entwicklerkonferenz ganz entspannt am gleichen Tag mit Bus und U-Bahn anreisen – die „Anreise“ nach Hannover war naturgemäß unkompliziert.

Die Konferenz war vollgepackt mit interessanten Vorträgen – mit vier parallelen Slots plus Workshop war die Entscheidung nicht immer leicht.

Auf jeden Fall war es interessant, mal wieder zu sehen, wie die Softwareentwicklung in anderen Branchen so tickt. Die Assekuranz ist da ja nicht mehr – wie in der Frühzeit der EDV – besonders innovativ unterwegs.

 

Die einzelnen Vorträge, die ich besucht habe:

 

1. Uwe Friedrichsen: Das Leben, die IT und der ganze Rest (Keynote)

Wie von einer Keynote zu erwarten, gab es hier gleich zum Warmwerden den großen Rundumschlag: was so gern als „Digitalisierung“ bezeichnet wird, ist nicht weniger als der Übergang von der Industriegesellschaft zur post-industriellen Welt der dynamischen Märkte, wo auf einmal nicht mehr die Effiziensteigerung bestehender Prozesse das Ziel ist, sondern die radikale Verkürzung von Markteinführungszeiten bzw. Änderungszyklen.

Wenn man das akzeptiert, dann ist klar, dass zum einen das klassische Softwareengineering, das ja quasi die Industrialiserung des Softwareentwicklungsprozesses zum Ziel hat, eigentlich obsolet ist und zum anderen sowohl das klassische Unternehmens-Management, alle hierachische Organisationen und die grundsätzliche Unterscheidung Linie vs. Projekt Konzepte sind, die nicht mehr in die heutige Welt passen.

Alternativen wurde nicht aufgezeigt – aber das wäre für die Keynote wohl auch zuviel verlangt 😉

2. Dr. Carola Lilienthal: Langlebige Softwarearchitekturen – technische Schulden erkennen und abbauen

Eine gute und konzentrierte Darstellung von technischer Schuld und den Mitteln, wie man sie beherrschen kann. Insgesamt ein sehr eloquenter Vortrag mit Ausflügen in die kognitive Psychologie – man nimmt der Dame ab, dass sie versteht, wovon sie spricht.

3. Rabea Gransberger: Automatisierung des Software-Entwicklungsprozesses

Zur Abwechslung ein sehr bodenständiger Vortrag: was bedeutet es denn wirklich für einen Aufwand, diverse Schritte des Entwicklungs- und Verteilungsprozesses zu automatisieren ? Welche Tools bieten sich da an?

Botschaft insgesamt: einfach machen; manches ist vielleicht aufwändiger als gedacht, manches ist vielleicht auch nicht erreichbar, aber insgesamt kann man mit einem überschaubaren Aufwand (besser in Tagen als in Monaten zu messen) schon sehr viel erreichen.

4. Lutz Hühnken: Lagom – Microservices weiter gedacht

Leicht nerdig, aber cool. Der gezeigte Code sah aus, als würde ein Scala-Programmier notgedrungen  Java-Code schreiben – ohne Java 8 geht da überhaupt nichts.

Das Lagom-Framework steht noch am Anfang, kann aber schon viel.

Der Vortrag machte einmal mehr klar, dass zu Microservices eben mehr gehört, als die bestehende Software irgendwo auseinanderzureißen und die Funktionsaufrufe durch RPC-artige REST-APIs zu ersetzen.

Sehr spannend waren auch die Ideen zum Event-Sourcing, was die Art und Weise, wie wir Daten persistent speichern, komplett auf den Kopf stellt.

5. Arne Limburg: Mut zur Fachlichkeit

Hier ging es vor allem darum, dass Fachobjekte beim DDD eben etwas anderes sind als einfache DAOs mit Gettern und Settern. Vielmehr müssen die fachlich möglichen Zustandswechsel explizit gemacht und alle anderen (also die, die ein Objekt in einen ungültigen Zustand versetzen würde) unterbunden werden.

Das alles war an konkreten Beispielen hergeleitet – insgesamt durchaus nachvollziehbar, wenn auch nicht immer ganz bis zum Ende durchgeführt. Aber das ist in 45 Minuten ja auch nicht zu erwarten.

6. Oliver Gierke: DDD & REST – Domain Driven APIs für das Web

Ein echter Augenöffner: wenn man REST-APIs nicht primär als RPC-gestützte CRUD-APIs baut, dann sind die Konzepte von REST und DDD sehr kompatibel: RESTs Resourcen sind nämlich die Aggregates von DDD. Und die fachlichen Zustandswechsel ebendieser Aggregates sollten durch explizite REST-Operationen ausgelöst werden.

Das funktioniert aber nur dann, wenn man das Modell auf den Bounded Context begrenzt – man braucht also beispielsweise i.d.R. kein allgemeines Datenmodell für Personen, sondern ein viel konkreteres für Kunden im Kontext einer Bestellung und ein anderes, ebenfalls sehr konkretes, für Kunden im Kontext einer Auslieferung. Dadurch hat man dann für eine reale Person in den beiden Systemen zwei verschiedene Entitäten, die man aber durch die Einführung eines expliziten Identifikationskennzeichnens (z.B. eine Kundennummer) verknüpfen kann.

Mir scheint hier ein Dilemma zu bestehen: aus hoher Flughöhe betrachtet erkennt man Entitäten (wie Personen, Autos, Pakete oder Versicherungsverträge), die bestimmte Eigenschaften haben, sich entsprechend modellieren und in querschnittliche Verwaltungssystemen speichern lassen. Diese Verwaltungssysteme führen aber zu einer engen Kopplung der verschiedenden Fachsysteme, die alle mit den gleichen Entitäten arbeiten müssen.

Wir haben hier also einen Zielkonflikt: einerseits wollen wir Redundanzfreiheit (Don’t Repeat Yourself), andererseits wollen wir eine lose Kopplung der Fachsysteme (Single Responsiblity Principle). Im Zeitalter der Microservices hat das letztere wohl mehr Bedeutung, so dass man eine gewissen Redundanz in Kauf nimmt (Adieu, kontexloses Datenmodell)…

7. Rabea Gransberger: Code Reviews: Techniken und Tipps

Wieder sehr bodenständig – warum/wann/wie macht man Code-Reviews? Vieles klingt fast trivial, aber die Botschaft kommt rüber: Code-Reviews dienen nicht der Bewertung der Entwickler, sondern einzig und allein der Verbesserung der Qualität. Und zwar nicht nur dadurch, dass der Reviwer Fehler in der Software findet, sondern auch dadurch, dass Reviewer etwas lernt.

 8. Stefan Zörner: Nörgeln ist einfach. Aber was (genau) ist eigentlich Architekturbewertung?

Kurz vor Schluss nochmal Denksport: kann man Architekturen anhand einiger weniger Eigenbschaften als gut oder schlecht bewerten? Wir haben das mittels Stimmkarten getan.

Aber ist so eine Bewertung „nach Bauchgefühl“ zielführend? Gibt es vielleicht systematischere Verfahren?

Wir haben gelernt (falls wir es nicht schon geahnt hatten), dass das Bachgefühlt täuschen kann und dass „Best Practices“ nicht immer zum konkreten Anwendungsfall passen.

Wir haben weiterhin gelernt, dass es qualitative Verfahren gibt, mit denen sich Architekturentscheidungen  schon vor der Implementierung bewerten lassen (diese Verfahren messen die Architektur an den relevanten Vorgaben). Diese kombiniert man dann mit quantitiven Verfahren, die die vorgegebene Architektur mit der Implementierung vergleichen.

Und dann haben wir noch gelernt, dass im Workshop die Entwickler immer die sind, die das Hemd aus der Hose haben 🙂

9. Rüdiger Schnirring: Kommunikation als Impediment

Zum Schluss nochmal eine „Keynote“ – eine satirische und unterhaltsame Auseinandersetzung mit der Kommunikation zwischen Akteuren in IT-Projekten, den Parallelen zu Paarbeziehungen und den Fallstricken der Realwelt.

 

Insgesamt eine absolute Empfehlung – den Termin für das nächste Jahr werde ich mir freihalten.

 

Erste SEROM-Konferenz am 04.11.2016 in Vechta

serom2016

Am 4. November lädt der Softwareentwickler-Stammtisch der Region Oldenburger Münsterland zur ersten Entwicklerkonferenz in Vechta

Softwareentwicklung im und für den Mittelstand ist vielfältig, anspruchsvoll und spannend! Das zeigt das Programm der ersten Entwicklerkonferenz in der Region Oldenburger Münsterland, die am 4. November von 13 bis 19 Uhr in Vechta stattfindet. Unternehmen wie die Alte Oldenburger, BISS und die Oldenburgische Landesbank OLB unterstützen die Initiative.

Die Themen reichen von aktuellen Entwicklungen in der Praxis bis zum Einsatz neuer Technologien wie Datenbrillen in der Industrie und App-basierte Steuerung digitaler Prozesse.