Konferenzen sind für uns Entwickler immer eine gute Möglichkeit, sich über die tägliche Arbeit hinaus mit aktuellen Technologien, Ansätzen und interessanten Menschen zu beschäftigen. Es zeigt uns neue Blickwinkel und Ansätze auf, die wir in unseren Teams diskutieren können und Grundlagen bilden, um gute Entscheidungen treffen zu können.

Dieses Mal hat es mich auf die BASTA! nach Mainz verschlagen. Kurz ein paar Infos zur Veranstaltung: Die erste BASTA!-Konferenz wurde 1997 veranstaltet. Damals war der Schwerpunkt noch Visual Basic, daher auch der Name: „BASic TAge“. Somit feiert die Konferenz in diesem Jahr auch ihr 20. Jubiläum und das Programm zeigt dabei ganz deutlich auf,  wie sich die Microsoft-Welt gegenüber anderen Technologien öffnet: Die Schwerpunkte liegen, neben Architekturthemen wie Microservices, C# .net/ .net Core Anwendungen und Cloud-Diensten wie Azure, nun auch auf JavaScript, Angular und HTML5. Aber auch iOS und Android sind mittlerweile Kernthemen. Das Themenspektrum ist also sehr breit gefächert und vielfältig. Das ist auch ein Grund, warum ich mich für diese Konferenz entschieden habe – ich wollte einen Rundumblick wagen.

Die Konferenz ging vom 25.09-29.09 2017 über 5 Tage, wobei am ersten und letzten Tag traditionell Workshops angeboten werden und dazwischen die Hauptkonferenz mit zahlreichen Sessions stattfindet. Meinen Besuch hatte ich für zwei Tage der Hauptkonferenz geplant. Mein Interesse galt vor allem den Architektur- und Sicherheitsthemen, sowie der Frontend-Entwicklung mit Angular und TypeScript.

 

Tag 1

Mein erster Tag auf der BASTA! war der Dienstag.

Die Keynote trug den Titel “Microservices – zu klein und zu gut, um nur ein Hype zu sein“ und wurde von Mirko Schrempp, Rainer Stropek, Oliver Sturm und Christian Weyer gehalten. Es wurde diskutiert und aufgezeigt, was viele darunter verstehen und welche Ziele dieses Design eigentlich verfolgt. Das war vor allem unter dem Blickwinkel der Innovationsgeschwindigkeit und Vielfalt eines Systems sehr spannend. Es wurde erklärt, dass die Entwicklung eines Monolithen nach gewisser Zeit Grenzen in der Wartbarkeit aufweisen und Neuerungen eines kleinen Teils schnell zu einer kompletten, damit teuren, Neuentwicklung des Systems nach sich ziehen können. Microservices können fachlich autonome Bausteine des Systems sein, die völlig isoliert und in sich geschlossen funktionieren. Dabei ist es sogar unerheblich, welche Technologien verwendet werden, denn wir haben ja Standards auf denen alle arbeiten. Dies bietet auch die Möglichkeit, unterschiedliche Programmiersprachen oder Frameworks zu verwenden um damit eben auch Teams autonom arbeiten zu lassen. Die Entscheidung Anwendungsteile zu erneuern und dafür auch zeitgemäße Technologien und Frameworks zu verwenden, fällt außerdem leichter und macht uns flexibel gegenüber dem technologischen Fortschritt. Es gibt allerdings auch Herausforderungen: Der Entwickler ist nunmehr nicht nur für einen Stück Code verantwortlich, sondern für die Lauffähigkeit eines Gesamtsystems – „You build it, you run it“. Damit erleben wir gerade auch eine Verantwortungsverschiebung. Ein Thema, das derzeit unter dem Schlagwort „DevOps“ (Development & Operations) kontrovers diskutiert wird. Neben der komplexeren Infrastruktur, die zu überschauen ist, entstehen außerdem neue Herausforderungen in Bezug auf die Testbarkeit und Absicherung gegenüber Ausfällen von Teilsystemen. An sich ist die Trennung von Verantwortlichkeiten und Bereitstellung von Services überhaupt nichts Neues, allerdings setzt der Hype um Microservices nötige Impulse um Softwaresysteme flexibler und langlebiger zu gestalten, was ich nur begrüßen kann.

Nach der Keynote folgte meine erste Session mit Christian Weyer. Er vertiefte das Thema und zeigt konkret einige Frameworks und Tools auf. Einige setzen wir bereits in unseren Projekten ein, z.B. SignalR, Web API 2, Swagger und OAuth2. Consul, RabbitMQ, Docker und weitere sind in dem Zusammenhang ebenso interessant.

Auch wenn ich mich eher technologisch weiterbilden wollte, fand ich es ebenso wichtig auch ein Thema mitzunehmen, das aus diesem Rahmen fällt: In einer Session ging es um Soft Skills in unserer täglichen Arbeit und dass wir meist deren Wichtigkeit unterschätzen. Das Bild von der Arbeit eines Entwicklers ist schließlich oft davon geprägt, dass er irgendwelchen Code in die Tastatur hackt und dann irgendwie ein digitales Erzeugnis produziert. Das macht aber bestenfalls die Hälfte unserer Arbeit aus, denn wir sind tatsächlich sehr gesellig, diskutieren viel, berichtigen uns gegenseitig, dokumentieren, beraten, präsentieren, streiten auch mal und organisieren uns – alles sehr soziale Interaktionen, die auch soziale Fähigkeiten, also Soft Skills, voraussetzen. In der Session diskutierten wir über Fähigkeiten sich zu präsentieren, in Kontakt zu treten, über Reviews, unseren Arbeitsfokus und Störfaktoren etc. Dabei habe ich auch die Pomodoro-Technik kennen gelernt, eine Methode, in der die Arbeit in feste Intervalle aufgeteilt wird um die Ergebnisse effizienter zu machen. Zeitmanagement ist für uns Entwickler genauso wichtig wie für die Managementebene.

Neben weiteren Sessions zum Thema Sicherheit in ASP.net Anwendungen und TypeScript-Grundlagen, ging es in der letzten Session des Tages um Plugin-Systeme mit Angular, wo ich lernen konnte wie npm-Pakete für Angular bereitgestellt und integriert werden.

Neben den Sessions gab es auch eine Reihe Aussteller. Die Entdeckung des Stands von byte5, dem derzeit einzigen Schulungsanbieter für Umbraco in Deutschland, war für mich das Highlight, da wir bekanntlich ebenso Webanwendungen auf Basis von Umbraco CMS entwickeln. Mit Freude habe ich diese Chance genutzt um ein paar Fragen loszuwerden. Ich danke für das hilfreiche Gespräch!

Tag 2

Die Keynote am Mittwoch drehte sich vollumfänglich um UI-Entwicklung und UX-Design. Jörg Neumann schilderte, vor welchen Herausforderungen wir dabei als Entwickler stehen und nannte in diesem Zusammenhang vor allem die Vielfältigkeit von UI-Frameworks und -Plattformen, für die jeweils ein fundiertes Experten-Know-how erforderlich ist. Das ist vor allem dann ein Problem, wenn wir Cross-Plattform entwickeln. Mit Xamarin bekommt man schon viele Basiselemente an die Hand. Doch was ist beispielsweise, wenn der Designer sich ganz besonders spezielle, neckische Benutzeroberflächen ausdenkt – müssen wir jetzt etwa verschiedene Sprachen und Frameworks beherrschen? Erfreulicherweise entwickeln sich hier aber gerade Lösungen wie SKIA/SKIASharp und Sketch für native Anwendungen. Interessant finde ich ebenso den Trend zu 3D-Interfaces, die mit Virtual Reality und Augmented Reality immer wichtiger werden. Auch dafür gibt es bereits sehr einfach zu verwendende Bibliotheken wie UrhoSharp, Babylon.js und Three.js.

Das Thema künstliche Intelligenz, und damit sind Services wie die Cognitive Services von Microsoft, Amazon Services und Google APIs gemeint, wollte ich unbedingt für unsere Forschungsprojekte mitnehmen. Ich habe schon ein wenig darüber gelesen, wie Conversational UIs mit dem Microsoft Bot Framework entwickelt werden, mit denen man bspw. in Facebook oder Skype kommunizieren kann. Der Vortrag hat mir nochmal einen guten Überblick gegeben, was wir eigentlich schon alles nutzen können – vor allem LUIS (Language Understanding Intelligent Service) ist in dem Zusammenhang ein mächtiges Werkzeug um User Interfaces zukünftig nicht nur benutzerfreundlicher sondern vor allem humaner zu gestalten.

Im Laufe des Tages habe ich viel über DevOps gelernt, was es genau bedeutet und welche Best Practices es gibt. Dabei konnte ich immerhin auch zu der Einschätzung kommen, dass wir mit unseren Entwicklungsprozessen auf einem sehr guten Weg sind. Interessant fand ich dabei Lösungen zur Verwendung von sogenannten Feature-Flags oder auch Feature-Toggles und wie man sie für A/B-Tests einsetzen kann. Weitere Sessions handelten von Azure functions und Reaktiver Programmierung mit RxJS. Auf letzteres Thema habe ich mich vorab schon besonders gefreut, da ich gern mehr über das Programmierparadigma, welches auf dynamischen Datenflüssen basiert, erfahren wollte. Hierzu werden wir sicher noch einen weiteren Artikel verfassen, denn das lässt sich nicht in einem kurzen Absatz erklären.

Mein Mittwoch endete schließlich mit der Rückreise nach Dresden. Ich habe viel gelernt und hätte am liebsten noch viel mehr Themen mitgenommen. In jedem Zeitslot gab es mindestens 2 oder 3 Themen zwischen denen ich mich schwerlich entscheiden musste. Da bin ich froh, dass die Veranstalter noch Material zur Verfügung stellen, damit man auch noch in ein paar verpasste Themen reinlesen kann.

Zur Landung am Mittwochabend auf dem Dresdner Flughafen  sagte die Pilotin noch: „Ich wünsch ihnen einen schönen guten Abend, oder auch eine schöne gute Nacht, machen Sies Guddi!“ – da fühlte ich mich gleich wieder heimisch.

 

Diskutieren Sie mit!

Alle mit einem markierten Felder sind Pflichtfelder und müssen ausgefüllt werden