Andreas Hanke Geschäftsführer

„Das Wissen und die Erfahrung unserer Mitarbeiter sind das Fundament unseres Hauses“

Andy_wide

Alexandra Specht Key Account Managerin

„Seit 1995 sind wir auf dem Markt und jedes Jahr werden es mehr zufriedene Kunden, die unsere Dienstleistungen schätzen“

Nana_wide

Werner Eberling Principal Consultant

„Technologie-Hypes kommen und gehen, fundamentale Prinzipien der Software-Entwicklung halten Systeme stabil und zukunftssicher“

Slide3

Thomas Haug Principal Consultant

„Die Vermessung von Software und die Visualisierung der Ergebnisse hilft uns, strukturelle Probleme aufzudecken“

Thomas_wide

Vorträge 28. und 29. April 2017

PDF-Version des Programms mit Zeitplan

A1   Oracle JDK 9

Rechnen mit jshell und weitere Merkmale vom JDK 9

Das Oracle JDK9 enthält mehr als 80 technische Merkmale und der Schwerpunkt vom JDK9 liegt auf der neuen Plattformmodularisierung mit dem Projekt Jigsaw. Über die verschiedenen JDK-Enhancement-Vorschläge (JEP’s) gelangen die technischen Vorschläge ins JDK9. Mit dem neuen JDK9-Sprachwerkzeug jshell (JEP222) steht eine Kommandozeilenumgebung (Read-Eval-Print Loop) für Rechenaufgaben und die unmittelbare Java-Code-Ausführung zur Verfügung. Anhand von Beispielen wird die Funktionsweise von jshell dargestellt. Zusätzlich werden neue JDK9-Sprachmerkmale vorgestellt: JEP247 – Compile for Older Platform Versions, JEP213 – Milling Project Coin in JDK9, JEP238 – Multi-Release JAR Files und JEP211 – Elide Deprecation Warnings on Import. Der JSR376 (Java Platform Module System) schafft die Grundlage für die Referenzimplementierung vom OpenJDK Projekt Jigsaw. Im Vortrag werden Demo-Beispiele gezeigt, die eine Erstellung von individueller Java Runtime mit Anwendung anhand der JDK9-Werkzeuge verdeutlichen. Die geplante Verfügbarkeit vom JDK9 ist für Ende Juli 2017 vorgesehen.

A2  REPL Yell

Die JShell von Java 9 - Read-Eval-Print-Loop auf Steroiden

Mit Java9 soll die sogenannte JShell Einzug halten, und mit ihr die Möglichkeit, Java-Ausdrücke direkt in einem Read-Evaluate-Print-Loop auszuprobieren. Die Idee ist zwar gut, aber natürlich nicht neu. Was also macht JShell anders oder besser? Wie funktioniert sie? Gibt es Einschränkungen? Oder herrscht Idol Sonnenschein? Dieser Talk stellt Einsatzmöglichkeiten und Grenzen der JShell vor.

A3  7, 8, 9 ist es schon soweit

Java Module System

Lange erwartet und immer wieder verschoben, aber demnächst wird uns Java9 mit dem Module System, auch als Jigsaw bekannt, beglücken. Wie funktioniert es, welche Vorteile und Nachteile bringt es, wie ist es um die Abwärtskompatibilität gestellt und muss es mich als Entwickler überhaupt interessieren, es ging ja auch über zwei Jahrzehnte ohne Module System. Diese Fragen werden beantwortet und auch Konsequenzen, die sich aus dem Vorha ndensein des Module System ergeben, werden gezeigt. Viel Spaß beim Puzzeln.

A4  Nichts für Hochstapler

Die Java-Batch API (JSR 352)

Von vielen unbemerkt ist seit JavaEE7.0 eine neue API vorhanden, um dem Programmierer ein Werkzeug für die kontrollierte Stapelverarbeitung an die Hand zu geben. Nach einem Überblick über die diversen von der Java-Batch-API bereitgestellten Bausteine (Jobs, Steps, Reader, Writer, Processor, ...) soll anhand einer Beispiel-Anwendung gezeigt werden, wie mit diesen Hilfsmitteln ein lauffähiges Batch-Projekt entwickelt und deployed werden kann. Auch auf die Verwandschaft zu Spring Batch soll eingegangen werden.

A5  Dart

Schön gespickert

Die hauptsächlich von Google entwickelte Programmiersprache Dart war einst als gleichberechtigte Alternative zu JavaScript im Browser angetreten, konnte diesem Anspruch aber nie gerecht werden. Nach einem Strategiewechsel steht die Übersetzung nach JavaScript im Zentrum. Damit wird die Sprache Teil eines riesigen, blühenden Ökosystems. Und gewinnt viele Freunde. Was macht Dart interessant? Wie einfach lassen sich Dart-Programme erstellen? Worin liegt ihr Reiz? In diesem Talk entsteht eine kleine Anwendung, anhand derer Schlüsselkonzepte der Programmiersprache erläutert werden.

A6  Sätze für lau

Lieber ein Typparameter zu viel als zu wenig

So gut wie alle modernen Programmiersprachen erlauben es, Routinen zu parametrisieren – über Werte und über Typen. Für letzteres gibt es verschiedenen Begriffe: „Templates“, „Generics“ oder aber „Parametric Polymorphism“. Diese Begriffe sollen hier einmal geklärt werden. Außerdem lernen wir die Vorteile von Typparametern kennen und warum Type Erasure in Java nicht nur richtig, sondern auch notwendig ist. Schlussendlich kommen wir auf Philipp Wadlers einflussreichen Artikel „Theorems For Free“ zu sprechen, welcher eine Technik beschreibt, mit der wir Aussagen über Programme nur anhand der Typen treffen können.

A7  Acht gegeben

Über Java und seine Lambda-Ausdrücke

Auch wenn Java9 gerade vor der Tür steht, so haben sich die enorm wichtigen Erweiterungen von Java um die Lambda-Ausdrücke, die mit Java8 Einzug gehalten haben, noch nicht wirklich etabliert. Grund genug sich in diesem Vortrag noch einmal intensiv mit den Lambda-Ausdrücken und den damit einhergehenden Möglichkeiten zu beschäftigen.

A8  Frank’n Java und die Nacht der Tentakel

Spaghetti-Code, bösartige Bytecode-Manipulationen und andere Dinge

Wie ich in einer sturmdurchpeitschten Nacht meine javanesische Braut hart auf die Werkbank schnallte um ihr cthulhuoide Tentakel anzunähen, auf dass sie von nun an und für immerdar in der Lage sei, echte italienische Pasta zu bereiten. Mit Java kann man keinen echten Spaghetti-Code erzeugen, oder doch? In einer langen Hotel-Nacht habe ich Java mit ein wenig Bytecode-Manipulation ein Zeilennummern basiertes „GOTO“ Statement verpasst. Der unsäglich diabolische Spaß, der mir durch die Implementierung dieser vollkommen sinnfreien Spracherweiterung zuteil wurde, wurde nur noch von der Freude übertroffen, möglichst verrückte Nutzungsbeispiele zu ersinnen. In diesem humoristischen Vortrag werden Techniken beschrieben, mit denen Java um neue Befehle erweitert werden kann, ohne dass eine eigene JVM-Sprache entwickelt werden muss. Außerdem werden zum allgemeinen Amusement eine Reihe von Beispielen gezeigt, die wohl eher in die Kategorie Evil-Practice als Bad-Practice fallen.

B1  Einheitsgraph

Einführung in TinkerPop

Graph-Datenbanken stellen zur Abfrage von Graphen unterschiedliche Abfragesprachen zur Verfügung. Einige haben große Ähnlichkeit zu SQL-Dialekten, andere Abfragesprache nutzen beispielsweise LINQ oder definieren eine Sprachsyntax, die völlig neu ist. Das Apache Projekt TinkerPop abstrahiert von der zugrunde liegenden Graph-Datenbank und bietet eine Abfragesprache, die einen Hersteller-neutralen Zugriff auf Graph-Datenbanken ermöglicht. In dieser Session werden verschiedene Abfragesprachen (z.B. von OrientDB, Graph Engine und Neo4J) vorgestellt. Hierbei wird gezeigt, dass jede Graph-Datenbank ihren eigenen Weg beschreitet. Zusätzlich wird mittels TinkerPop demonstriert, wie auf verschiedene Graph-Datenbanken in C# und Java zugegriffen werden kann.

B2  Distributed Ledger ... wie bitte?!?

Einführung in die Blockchain

Kaum ein Begriff hat in der Finanzwelt im vergangenen Jahr einen derartigen Hype verursacht – und solche Erwartungen geweckt – wie die Blockchain. Dabei ist die grundlegende Funktionsweise dieser Kerntechnologie (z.B. für die Kryptowährung Bitcoin) vielerorts unverstanden geblieben. Dieser Vortrag möchte ein wenig Licht ins Dunkel bringen: Was sind Blockchains eigentlich und wie funktionieren sie? Welche Anwendungsmöglichkeiten abseits von Kryptowährungen sind denkbar? Welche Implementierungen gibt es und sind diese reif für den ernsthaften Einsatz?

B3  Your Entity needs a Value Object, trust me

Stateless in OO

Value Objects (VO) stammen zwar aus dem Baukasten vom Domain-Driven-Design (DDD), sind aber universell einsetzbar. Das coole ist: Das Pattern ist einfach und einleuchtend. VOs lassen uns OO-Konzepte sauber umsetzen und Konzepte aus funktionalen Sprachen in OO-Sprachen anwenden. Es geht beispielweise um das Problem, ob der String „foo@bar.com“ eine valide E-Mail-Adresse ist. Wenn wir Zeit haben, werfen wir noch einen Blick auf das Specification Pattern, da es zeigt, wie einfach man VOs miteinander kombinieren kann. Code wird durch VOs lesbarer und wartbarer.

B4  Baukasten im Browser

Web Components vorgestellt

Mit Web Components stehen ein paar sehr nützliche Erweiterungen an den Web Spezifikationen in den Startlöchern. Mit ein paar wenigen Kniffen bekommt man Features, welche man bisher nur in Web Frameworks wiederfindet und kann diese nativ im Browser einsetzen. Und das beste: Sie sind mit Einschränkungen auch heute schon nutzbar. Warum diese so einfach und mächtig sind und wie man sie schon heute einsetzen kann, wird im Vortrag erläutert.

B5  Richtig Ausruhen

RESTful Clients implementieren mit Gerec

REST hat heutzutage zwei Bedeutungen: Es hat noch die originale Bedeutung über verteilte Systeme und Architektur, aber mehr und mehr bedeutet es einfach nur JSON über HTTP. Egal welche Bedeutung man nimmt, die meisten Diskussionen beziehen sich auf die Serverseite, wie man Services (oder Ressourcen) bereit stellen kann. Darüber wie man diese korrekt konsumieren kann, wird weniger nachgedacht. In diesem Vortrag wird Gerec, ein neues Java Library zum Konsumieren von RESTful HTTP Ressourcen vorgestellt. Hierbei wird die Betonung auf die originale Bedeutung von REST gesetzt, da Gerec nicht nur ein HTTP Client ist, sondern ein generischer RESTful HTTP Client. Im Gegensatz zu anderen REST Clients macht Gerec Folgen von Links einfacher, holt Media-Types in den Mittelpunkt und versteckt irrelevante Details wie URIs, Parameters, Headers.

B6  Gesicherte Entspannung

REST-Services testen mit REST Assured

RESTful Webservices sind in der aktuellen IT-Welt allgegenwärtig. Wie jeder Teil in der Software-Entwicklung wollen auch RESTful Webservices getestet werden. In diesem Vortrag wird das Framework REST Assured von Johan Haleby vorgestellt. Dieses Framework stellt eine reichhaltige domänenspezifische Sprache bereit, um in Java auf sehr einfache Art und Weise vielfältige Tests für RESTful Webservices schreiben zu können. Anhand von vielen live durchgeführten Beispielen wird in diesem Vortrag ein Einblick in die Möglichkeiten von REST Assured gegeben.

B7  Rise of the Machines

Wie Sicherheitslücken im IoT das Internet gefährden

Spätestens nach dem Angriff auf DSL-Router der Telekom durch das Mirai-Botnetz ist die Auswirkung des IoT auf die Sicherheit des Internets den meisten bewusst. Wie es dazu kommen konnte und welche oft durch Sorglosigkeit verursachten Sicherheitslücken sich noch verbergen, ist weniger bekannt. Mit diesem Vortrag sollen diese Probleme beleuchtet und Bewusstsein dafür beim Umgang mit dem IoT geschaffen werden.

B8  Natürlich ausgefragt!

Eine praktische Einführung in die Welt der Chatbots

Weizenbaum’s ELIZA ist zwar über 50 Jahre alt, dennoch sind Chatbots aktuell in aller Munde. Statt dem Nutzer die Bedienung einer Webseite „aufzuzwingen“, steht dabei das Lösen seines natürlichsprachig-formulierten Problems im Mittelpunkt. Das Einsatzgebiet ist dabei sehr vielfältig; ob als Gadget in der Heimautomatisierung bis hin zur Erweiterung eines Service-Centers. Dieser Vortrag befasst sich mit den Grundlagen von Chatbots und soll zeigen, wie einfach ein Chatbot mit dem IBM Bluemix-Service Conversation erstellt und um weitere Module wie einer Spracheingabe erweitert werden kann.

C1  Morgen noch verstehen, was man gestern getan hat

Zielführend dokumentieren

Dass Dokumentation einen wichtigen Nutzen für Projekte haben kann, ist den meisten Projektbeteiligten durchaus bewusst und erwünscht. Jedoch herrscht in der Praxis häufig Unklarheit zu den verschiedenen Aspekten des Dokumentierens und der entstandenen Dokumentation an sich. Fehlende oder unzureichende Dokumentation ist die Folge und ein ständiges Problem in Software-Projekten. Oft wird das Potential der Dokumentation in Projekten zu wenig bis gar nicht genutzt. Dieser Vortrag zeigt die gängigen Schwierigkeiten und den Frust der Projektbeteiligten und gibt wichtige Tipps, um diese Schwierigkeiten zu vermeiden und so die Dokumentation zu erhalten, die für die Projektarbeit nützlich ist.

C2  We're doing it wrong!

Objekt-Orientierung für objekt-orientierte Entwickler

Tagtäglich schreiben wir objekt-orientierten Code. Aber tun wir das wirklich? Die Erfahrung zeigt, dass OO entweder absichtlich oder eher wahrscheinlicher unabsichtlich oft einfach vergessen oder nicht ernst genommen wird. Dabei verspricht OO Wartbarkeit, Lesbarkeit und Werkzeuge, um komplexe Probleme zu lösen. Wieso machen wir das dann nicht? In diesem Vortrag wird Objekt-Orientierung durch Beispiele aus der Praxis neu vorgestellt, mit der Betonung auf oft vergessenen Eigenschaften. Das eigentliche Ziel ist aber, eine Diskussion zu starten, wie wir aus unserer heutigen Framework-, und Containerorienterten Denkweise zurückfinden, um den Code, die Qualität und die Businesslogik wieder in den Vordergrund stellen zu können.

C3  Ein schneller Rutsch durch die Jenkins Pipeline

Mit Jenkins Pipelines auf dem Weg zu Continuous Delivery

Die neuen Jenkins Pipelines sind das spannendste Jenkins-Projekt der vergangenen Jahre. Jenkins-Jobs werden nicht mehr in einer unübersichtlichen Browser-Oberfläche konfiguriert, sondern mit Hilfe einer mächtigen DSL in einem sogenannten Jenkinsfile. Endlich wird aus Continuous Integration Continuous Delivery. Einzelne Schritte eines Jobs können auf verschiedene Knoten verteilt, nacheinander, parallel oder in Schleifen ausgeführt werden. Builds können pausiert werden und auf Nutzereingaben reagieren. Außerdem fallen dabei fast ganz automatisch einzelne Build-Jobs für alle aktiven Branches ab. Die Build-Konfiguration wandert bei all dem ins Versionskontrollsystem des zu bauenden Projekts – so lassen sich auch ältere Sourcecode-Stände verlässlich bauen. Dieser Vortrag soll einen Einblick in die Möglichkeiten geben, die sich aus der neuen „Pipeline As Code“-Philosophie ergeben. Wir wagen dabei auch einen Ausblick auf die neue Benutzeroberfläche für den Jenkins.

C4  Vier Gewinnt

The 4 Rules of Simple Design

Wie schreibt man eigentlich guten Code? Wie entwirft man gute Softwaredesigns? Kent Beck hat dazu vor langer Zeit die „4 Rules of Simple Design“ formuliert. Diese sind zwar einfach verständlich – Aber trotzdem irgendwie schwierig anzuwenden, da sie so allgemein formuliert sind. In diesem Vortrag werden wir zu allen vier Regeln konkrete Beispiele diskutieren. Dadurch sollen die Regeln etwas konkreter verständlich werden, und wir werden gemeinsam etwas über Design lernen

C5  Angriff der lebenden Mutanten

Eine Einführung in den Mutationstest

Bei der Betrachtung einer Testfallmenge zu einer Codebasis stellt sich unweigerlich die Frage, ob die Testfallmenge eine akzeptable Qualität erreicht hat. Eine hohe Codeüberdeckung kann dabei zwar das grundlegende Vertrauen erhöhen, erlaubt aber keine Abschätzung der eigentlichen Güte der Testfallmenge. An dieser Stelle kommt der sogenannte Mutationstest ins Spiel. Er basiert auf der Idee, kleine Modifikationen in den vorliegenden Programmcode einzuspeisen. Im Anschluss werden die Tests gegen den modifizierten Code ausgeführt, um deren Fehlererkennungspotenzial abzuschätzen. Dieser Vortrag erläutert die grundlegenden Prinzipien des Mutationstests und stellt das Java-Framework „PIT“ vor, das sich für den praktischen Einsatz dieser Testtechnik empfiehlt. Dabei wird eine Testfallmenge zu einem gegebenen Programmcode zunächst hinsichtlich ihrer Güte analysiert und anschließend iterativ durch Ergänzungen verbessert.

C6  Days of Future Passed - Building (a) Legacy

Wir bauen heute die Altlasten von morgen

Die Softwareentwicklung ist eine vergleichsweise junge Branche, die in ihren fünf Jahrzehnten Geschichte bereits einen gewaltigen Bestand an Anwendungen aufgebaut hat. So gern wir alle auf der grünen Wiese loslegen, die Praxis konfrontiert uns mit immer mehr Altsystemen. Was können wir aus der Software der Vergangenheit lernen, um heute die wartbare Software von morgen zu bauen? In diesem Vortrag geht es um einen Ausflug in die (System-)Archäologie und die Hinterlassenschaften vergangener (Software-)Projekte quer durch Jahrzehnte, Jahrhunderte und Jahrtausende. Anhand der Vermächtnisse der Vergangenheit zeige ich auf, wie wir alle im Alltag mit kleinen Maßnahmen einen Beitrag zur Wartbarkeit von Software leisten können.

C7  Alles ist im Fluss

Datenstromverarbeitung mit Apache Flink

Datenstromsysteme bieten eine Infrastruktur, um kontinuierlich anfallende Daten auch kontinuierlich auszuwerten. Es gilt, den althergebrachten Zyklus zu durchbrechen: Anfallende Daten werden nachts in ein Data Warehouse übertragen. Stattdessen zielt man nun auf Information in Echtzeit, wofür häufig Datenstromsysteme eingesetzt werden. In den letzten Jahren hat sich in diesem Umfeld einiges verändert. So galt es kürzlich noch als wichtigstes Ziel, Analysten eine einfache Anfragesprache zur Verfügung zu stellen. Die meisten Systeme waren proprietär und wurden von Uni-Ausgründungen aus Forschungsprototypen entwickelt. Mit Spark, Storm und Flink sind inzwischen gleich drei relevante Datenstromsysteme bei der Apache Foundation angesiedelt. Die Betonung verschiebt sich zunehmend auf dieInfrastruktur: High Availability, Lastverteilung oder Integration in das Hadoop-Ökosystem. Der Vortrag soll – mit einem Fokus auf Apache Flink – den aktuellen Stand im Datenstromumfeld beleuchten.

C8  Narrensicher

IT-Security im Unternehmen

Riesige Datenmengen sind jeden Tag durch das Internet und durch die Netzwerke von Unternehmen unterwegs. Gerade für ITFirmen sind Datensicherheit und Datenschutz zentrale Herausforderungen, die es zu meistern gilt. Über die Vielfalt der Angriffsmöglichkeiten berichtet dieser Vortrag und natürlich über die Möglichkeiten sich zu schützen. Wie findet man den goldenen Mittelweg, mit dem man den Anwender nicht unnötig durch Beschränkungen zum Narren hält und gleichzeitig wirksamen Schutz gegen Hacker-Angriffe und Malware bietet?

D1  Die vergessene Kunst des Mentorings

Oder warum ihr auf Menschen achten solltet

Wann haben Sie zuletzt einer anderen Person wirklich zugehört, geholfen oder sogar eine Person langfristig begleitet? Tagtäglich produzieren wir immer mehr Inhalt, organisieren Communities und verweisen aufs Internet, wo das ganze Wissen zu finden ist. Das ist schön und gut, aber haben wir nicht in diesem Datenüberfluss den Menschen vergessen? Wir lernen alle, aber die wenigsten von uns verwenden Mentoring. Das Wort Mentoring ist für manche einschüchternd. Mentoring ist jedoch eine Superkraft, die jedem zur Verfügung steht. In diesem Talk werden wir übers Lehren, Lernen, Führen, Begleiten und auch Geschehen lassen reden. Wir werden über die Rolle des Mentors und den Unterschied zum Coach, Paten oder Vorgesetzten nachdenken. Wie agiert man als Mentor oder Mentee und was macht so eine Beziehung so besonders? Zuletzt werden wir es durch praktische Übungen gleich auf euer Leben applizieren.

D2  Kaffeekränzchen

Ein kleiner Exkurs in die Welt des Kaffees

Dass Kaffee nicht gleich Kaffee ist, merkt man nicht erst, wenn man einen guten Espresso in Italien genießt. Durch Gespräche beim Kaffee und Diskussionen über dessen Qualität ist die Idee entstanden, einen Vortrag über das Heißgetränk zu halten.

D3  Mein Name is Nobody

Der Architekt in Scrum

Der Kernpunkt des Scrum Prozesses ist das eigenverantwortliche, selbstorganisierte Scrum Team. Dieses übernimmt Entwurfs-, Entwicklungs-, Test- und auch Architektur-Aufgaben. Dem Team wird nur noch das „Was“ als Anforderung vorgegeben. „Wie“ diese Anforderung realisiert wird, obligt ausschliesslich dem Scrum Team. Soviel zur Theorie....
Aber wie sieht das Ganze aus, wenn die Entwicklung innerhalb einer grösseren ITLandschaft stattfindet? Wie, wenn es sich nicht mehr um nur ein Scrum Team handelt, sondern um mehrere Teams, die an derselben Software arbeiten? Wer sorgt für den „einheitlichen Guss“ und die Einhaltung der unternehmensweiten technischen Vorgaben?
Mein Name ist Nobody und ich arbeite als Architekt in einem grösseren Scrum Projekt. Der Vortrag erzählt meine Geschichte, wie es mir ergangen ist und was ich dabei über Architektur in Scrum gelernt habe.

D4  Cool, da weiß ich ja genau, was ich machen muss!

Die verlorene Kunst der Software-Spezifikation

Der Session-Titel ist das Zitat eines Junior-Entwicklers beim Anblick eines System-Usecases – einer detailierten, textuellenBeschreibung von Systemfunktionalität. In Zeiten halb-agiler Vorgehensweisen scheint man verlernt zu haben, vor dem Bau einer Software mit dem Auftraggeber zusammen einen genauen Entwurf abzustimmen. In Zeiten der Software Craftsmanship darf man sich aber fragen, ob ein Bau ohne Bauzeichnung nicht ein unnötiges Risiko ist und letzlich Geld verschwendet. Die Session zeigt Beispiele von Spezifikationen in Word und UML und in einer wiederentdeckten, uralten Notation, die verschiedene Vorteile verbinden könnte. Eines haben verschiedene Recherchen und Interviews im letzten Jahr gezeigt: Tools sind ein Problem in dieser Disziplin. Vor allem soll die Session aber Raum zur Diskussion geben. Sind Spezifikationen eine gute Idee oder eher hinderlich? Wer macht es wie? Und wer hat gar keine und ist glücklich damit?

D5  Die Liga der außergewöhnlich kurzsichtigen Agile-Superleaders

Leadership ist nie schwarz oder weiß

Leadership ist eine Aufgabe für Superhelden! Um Leute zu motivieren, zu begeistern und es möglich zu machen gemeinsam mehr als die Summe der einzelnen Personen zu sein, braucht man Superkräfte: Motivation, Delegation, Empowerment, Micro-Management, Informations-Retention, Schutz usw. Manche dieser Superkräfte sind eher positiv, andere negativ geprägt – je nach Situation. Einsetzbar sind sie grundsätzlich immer... solange man weiß, was man tut. In diesem Vortrag werden wir einer Truppe außergewöhnlich kurzsichtiger Superhelden folgen, die solche Superkräfte rücksichtlos verwenden. Die Superkräfte helfen und Problemen können wirklich gelöst werden, aber gleichzeitig werden andere geschaffen; mit manch schlimmen Effekten. Jede Superkraft wird mit Erfahrungsberichten und Kampf-Narben präsentiert. Zuletzt werden verschiedene Ideen vorgeschlagen, wie die Liga der außergewöhnlich kurzsichtigen Agile-Superleaders als Verbesserungsmittel in euren Teams verwendet werden könnte.

D6  Sokrates in der Matrix

Ein philosophischer Blick auf die Entwicklung der Künstlichen Intelligenz

Ob als Autopilot, Schach- und Go-Spieler oder als Helferlein bei der Spracherkennung, was Maschinen heute leisten können, macht erstaunliche und schnelle Fortschritte. Die künstliche Intelligenz ist auf dem Vormarsch und hat das Potential riesige gesellschaftliche Umwälzungen hervorzurufen. Doch was ist das eigentlich künstliche Intelligenz? Und wie weit wird die Entwicklung gehen? Wird es eines Tages eine KI mit Selbstbewusstsein und Persönlichkeit geben? Eine Maschine die frei entscheiden und vielleicht sogar lieben kann? Sind Szenarien wie in Matrix, Terminator oder Person of Interest realistisch oder Hollywood-Humbug? Unabhängig davon stellen sich bei der Entwicklung von KI auch ethische Fragen: Nach welchem Wertesystem sollen KIs handeln? Sollen sie immer ihrem Herrchen gehorchen oder doch lieber allgemeinen Werten? Sind Kampf- und Sexroboter Fluch oder Segen? Was wollen wir den Maschinen überlassen und was nicht? Kontrollieren wir die Maschinen oder die Maschinen uns? Dringende Fragen auf die wir Antworten benötigen.

D7  Ab in die Cloud - jetzt in echt!

Vom Fliegen, der Luftfahrt und wie die Software-Entwicklung davon profitieren kann

Der Vortrag gibt Einblicke in die Fliegerei allgemein, Voraussetzungen und Anforderungen an Piloten und die wichtigsten Abläufe in der Luftfahrt. Klare Verantwortlichkeiten, wohldefinierte Kommunikation, eindeutige Regularien usw. ermöglichen es, das scheinbare Chaos vom kleinsten Drachenflieger bis hin zum Jumbojet zu koordinieren und das mit einer sehr hohen Sicherheit und Zuverlässigkeit. Hiervon können auch wir Software-Entwickler etwas lernen! Der Vortrag zeigt entsprechende Analogien auf und findet Ideen und Ansätze zur Umsetzung in der Praxis.

D8   Bitte agil aber nicht fragil

Warum es keine Agilität umsonst gibt

Dieser Vortrag fängt mit einer kurzen Einführung in die Agilität an und betrachtet dabei die agilen Werte mit einem kritischen Blick auf den Status Quo. Danach werden einige wichtige Bestandteile des agilen Handlungsrahmens vorgestellt. Abschließend werden auf Basis von Erfahrungen aus einem aktuellen Projekt folgende Aspekte betrachtet: Projektstruktur und Kommunikationsschnittstellen, Kommunikation mit dem Entwicklungsteam und Planung.

E1  Im Flow

Git-Workflows

Die Software-Entwicklung ist schon lange keine Einzeldisziplin mehr. Viele Leute arbeiten gleichzeitig an einem Projekt. Damit es dabei nicht zu Komplikationen kommt, gibt es Werkzeuge und Regeln, wie man diese einsetzt. Git ist das derzeit populärste Versionsverwaltungssystem. Workflows legen fest, wie man Git verwendet, wann man brancht und wohin, was man tut, und was man besser lässt. Dieser Talk bringt Sie hoffentlich in den Flow, indem er Ihnen unter anderem GitFlow und GithubFlow vorstellt. Außerdem erfahren Sie, warum ein force push nicht immer schlecht ist.

E2  Fast & Furious 8

Tuning eines Parsers in Zeiten von Java 8 & Co.

Auch scheinbar triviale Dinge wie das Lesen von ASCII-Dateien können Anwender zu Kaffeekonsum jenseits von Gut und Böse treiben, wenn es um die Verarbeitung wissenschaftlicher Simulationsdaten von einer Million Jahre geht. Bereits zu Zeiten von Java 6 wurde bei der Bundesanstalt für Geowissenschaften und Rohstoffe ein optimierter Parser entwickelt, der nun erneut auf den Prüfstand kommt. Werkzeuge wie der Java Flight Recorder und jmh sollen zeigen, was Java 8 an dieser Stelle bietet und ob es weiteres Optimierungspotential gibt.

E3  Hybrides Projektmanagement mit HyPE4PM

Das Beste aus zwei Welten

Der Vortrag vermittelt Best Practices von Unternehmen aus DAX und gehobenem Mittelstand zur softwaretechnischen Unterstützung von agilen und klassischen Projekten. Dabei werden wir interaktiv das Publikum mit einbeziehen und deren Erfahrungen, Wünsche und Vorschläge zum hybriden Projektmanagement berücksichtigen!Durch verfeinerte phasenorientierte Projektmodelle wird versucht die Erfolgsaussichten von Projekten zu erhöhen, was nur teilweise erfolgreich ist. Gleichzeitig wandeln sich die Anforderungen an Projekte und das Projektverständnis, die Anzahl kleiner Projekte steigt. Um dem zu begegnen gibt es im Umfeld der Softwareentwicklung eine starke Strömung zu agilen Methoden. Selten ist es den Unternehmen dabei möglich sich vollständig darauf einzulassen - aufgrund von Projektrahmenbedingungen oder weil der Organisation die Möglichkeiten fehlen, agile Vorgehen zu integrieren. Doch muss es eine entweder - oder Entscheidung sein? Bestehen komplexe Softwareentwicklungen nur aus der Umsetzung oder sind sie nicht Bestandteil eines größeren Ganzen – dem hybriden Projekt mit klassischen Rahmen und agilen Umsetzungen? Wie kann die Organisation eines solchen Projekts aussehen? Die Lösung HyPE4PM der Contec-X zeigt hier Möglichkeiten. Begleitet wird der Vortrag durch Praxisbeispiele großer Unternehmen.

E4  Elchtest

Der Weg zur günstigen IoT-WLAN-Wetterstation mit dem ESP8266

Der Vortrag handelt vom kurvigen Weg, eine einfache und günstige Sensorplattform für die Heimautomatisierung aufzubauen. Nach einem kleinen Exkurs über Raspberry Pi und Arduino geht es Schritt für Schritt an die Programmierung eines ESP-Boards mit LUA und Arduino-Sketches. Damit der Spaß nicht zu kurz kommt, dürfen die Teilnehmer anschließend selbst Hand anlegen und den Sketch des Tages realisieren.

E5  Ausblicke eines Androiden

Implementierung eigener Views

Wenn das Layout einer Activity mit Hilfe der Standard-Elemente zu komplex wird, schlägt die Stunde einer eigens implementierten View. Der Vortrag demonstriert die Vorgehensweise am praktischen Beispiel und zeigt dabei auf einige Fettnäpfchen, die man vermeiden sollte.

E6  Eingeboren in fremden Landen

Cross-Plattform-Entwicklung, aber Native

HTML 5, Cordova, Titanium – in den letzten Jahren gab es viele Ansätze die Idee der Cross-Plattform-Entwicklung auch in der mobilen Welt zu etablieren. Doch eine Website ist nun einmal keine mobile Applikation und sowohl UIElemente als auch Bedienkonzepte sind unter Android oder iOS so unterschiedlich, dass sie nicht ohne Weiteres mit einer Benutzeroberfläche realisiert werden können. Seit kurzem gibt es nun zwei neue Spieler auf der Bühne. Sowohl Native Script als auch React Native versprechen einen einheitlichen Programmieransatz mit nativem Look-and-Feel der jeweiligen Zielplattform. Der Vortrag gibt, anhand von Codebeispielen, einen Überblick über beide Ansätze und zeigt deren Vorteile, Nachteile und Unterschiede auf.

E7  iWindroidOs

The future of mobile development

The future of mobile development C# und Microsoft Visual Studio für Apple Macintosh unter OS X? So etwas war noch vor 2 Jahren völlig undenkbar. In diesem Vortrag bekommen Sie einen Einblick und einen Ausblick über Multiplattform-Entwicklung mit C# und Visual Studio für Macintosh.

E8  HRM und User Management im Unternehmen - neu gedacht

Agile Strukturen – kontrolliertes Chaos mit klaren Verantwortlichkeiten

Im Rahmen unserer langjährigen Erfahrung im Bereich Strategieberatung sind wir in Bereichen Organisationsstruktur und M&A auf die verschiedensten Lösungen hinsichtlich Personal Management (PM), HRM, Zugangsverwaltung und Berechtigungen gestoßen. Entsprechend vielfältig sind oftmals die gewachsenen Strukturen, die wiederum die Unternehmenskultur beeinflussen. Ebenso ist die schrittweise Digitalisierung bestehender analoge Prozesse verantwortlich für zahlreiche Brüche hinsichtlich Medien, Legitimierung und Nachverfolgbarkeit von Verantwortlichen. Da sich in den letzten Jahren der Umgang mit der IT seitens der Anwender stark verändert hat, würden einige Anforderungen heute sicherlich anders bewertet werden. In der strategischen Beratung zur Organisationsentwicklung stellten wir nach Analyse ein neuartiges Konzept vor, um die bestehenden Schwächen und Inkonsistenzen aufzulösen und verborgene Chancen und Stärken zu eröffnen. Aus diesem ganzheitlichen Konzept ist ein Proof of Concept als erweiterte Antwort auf unsere Ergebnisse entwickelt und erprobt worden.