First of all, the venue itself was remarkable. The conference building of Messe Nürnberg - a three-storey building with numerous meeting rooms and a sunlit auditorium - was a perfect location for a conference. Numerous bar tables, seating areas and sofas invited attendees to chat with like-minded people during the breaks and in the evening. Despite the large number of visitors, it was relatively quiet - which made conversations very pleasant.
If you weren't there with 10 people at the same time, it was impossible to listen to all the talks on offer. Although the sessions were generally divided into different subject areas, interdisciplinary topics such as SCRUM or UX did not always make it easy to decide on one talk per slot. Here is a short summary of the talks I attended.
Monday
In his session, Alex Zeitler gave a compact introduction to the topic of Docker and Continuous Delivery. After describing a continuous integration pipeline, he showed very clearly how Docker can be used in such a scenario to build, test and finally deliver software across multiple environments. True to the Docker motto "Build, ship and run any application anywhere", the strengths of Docker and its benefits in application development were demonstrated.
With "Reactive Architecture", Ralf Winzinger gave an overview of a somewhat newer paradigm in software development, which involves the creation of scalable, fault-tolerant and responsive applications. A reference architecture and the integration of existing developments were shown and pitfalls and the integration of legacy systems were discussed. The exemplary use of various tools from the open source world rounded off the talk.
The last official talk of the first day dealt with the documentation of REST interfaces. Martin Walter first outlined the requirements for REST documentation and then presented various tools for this purpose. He covered both commercial, hosted offerings such as apiary.io and open source products. Finally, he showed a prototype of what a home-made solution could look like and why, given the free alternatives, it is better to fall back on existing solutions. Conclusion: Swagger currently seems to be the tool of choice.
Tuesday
Bastian Hoffmann kicked off the second day with his usual professional approach to logging, monitoring and profiling. After a brief introduction to the topic, he first differentiated between the individual topics and then presented application scenarios and tools as he uses them in his daily work. Of particular interest was the cross-technology use of tracing IDs to track requests across service boundaries and the use of Graphite to create metrics.
In the second talk, Matthias Lübken from Giantswarm gave a basic introduction to Docker. Surprisingly, only 4 people in the room of 50 people had ever used Docker - nobody used Docker productively, most of them didn't even know what Docker actually is. Unfortunately, the talk remained at beginner level and more interesting topics such as orchestration, deployment and productive operation of containers were not addressed.
"Agile principles and practices rediscovered" described the introduction of agile methods in the legal department of the Holtzbrinck Publishing Group. With a small game on stage, the two speakers impressively demonstrated how agile teams differ from hierarchically organized teams and where the challenges lie during the introduction. The transfer of the Agile Manifesto to the problem in a legal department was interesting; it was apparently enough to replace the word "software" with "solution".
Roland Guelle then presented the relevant innovations in HTTP 2.0. Multiplexing and server push in particular are likely to gradually change the way in which web applications can be implemented efficiently. Although HTTP 2.0 currently only accounts for 5% of traffic on the WWW, this is expected to change rapidly. According to a projection shown in the Talk, HTTP 1.X is likely to have disappeared completely by 2020. So there is still some time to switch over, but according to the speaker there is no reason not to do so now.
The graph database neo4j, which originates from the field of NoSql technologies, was then presented by Michael Hunger in his session. The presentation first showed very clearly how graphs are structured and where they can be useful in the modeling of real-world data. Next, Cypher, the query language of neo4j, was introduced and finally the integration into .NET via various APIs was presented. A brief analysis of areas of application rounded off the talk.
Versioning and management of database schemas has become a very important problem area, especially with the advent of continuous delivery. Two tools - FlyWay and Liquibase - were presented by Stephan Kaps in the talk of the same name. In a kind of virtual boxing match, he discussed the features, strengths and weaknesses of the two tools and explained their use in different scenarios.
The second day ended with a talk on CQRS (Command Query Request Separation). This is a software paradigm based on domain-driven design in which the read and write parts of an application are strictly separated. The speaker was able to illustrate very well which logical components are used, how they talk to each other and which challenges arise in practice.
Wednesday
The third and final day started with an - admittedly somewhat disappointing - talk about the next PHP version (7.0). A short presentation of the most important changes was the biggest benefit in this otherwise somewhat PowerPoint karaoke-like presentation. PHP will probably be significantly faster (up to a factor of 2) with the next major version and now finally offers scalar type hints. There is also 64-bit support and numerous fatal errors have been "converted" into exceptions.
In the second talk, Maximilian Berghoff gave a very clear and well-structured introduction to the topic of RESTful web services and how they are based on the HTTP protocol. Although the talk remained very much on the surface of the topic, all the important concepts were briefly touched on so that the listener was able to grasp all the basic concepts by the end.
The next talk was my personal highlight: Immutability as an architectural principle. As an old hand in the field of functional programming, Michael Sperber presented the F# programming language and its concepts. Conclusion: especially in concurrent, parallelized applications, functional programming eliminates many problems that you have to struggle with in traditional object-oriented approaches. The fact that even initially tricky problems such as reactive programming can be solved elegantly was also part of the talk, as was the application relevance in big data scenarios.
The most disappointing talk of the event was then on the program: entitled Software Quality, it featured a speaker who is probably firmly convinced that his presence and a few funny quotes on PowerPoint slides alone make a good talk. The rest of the information content could have been gleaned from 5 minutes of reading on Wikipedia. A pity, really, as the topic is certainly a perennial favorite.
Under the title "User-centered Data Visualization", Tobias Komischke showed how data can be presented graphically in such a way that it can be easily understood by the viewer. The fact that pie charts are often not as suitable as their prevalence suggests and why 3D can be confusing and how it can be misused to distort relationships were just some of the many very good tips and hints in this presentation.
Conclusion
The Developer Week is a good opportunity to get an insight and overview of the technical trends in software development in a compact form. Some of the talks perhaps lacked the technical depth that some visitors would have wished for - topic-specific specialist conferences are probably more suitable for this. Overall, the visit was worthwhile and the food was also good.