A nice sunny morning in London started with a very interesting Keynote on Artificial Intelligence.
Peter Morgan gave an introduction into Intelligence and its types. It was fascinating to see what areas of science and physics are needed to build A.I. systems and at what stage we are to even understand how the brain works. He quoted Geoffrey Hinton, who said we seem to be close to understanding how the human brain works and that we might not be that far away from a break through.
“Who broke Prod?”, by Emma Button, was all about your company’s culture and how to deal with situations when things go wrong. Things can go wrong and will go wrong, so don’t blame but deal with it. Develop a culture where it is okay to fail, then review and take action. One way to deal with it is to be transparent: be honest and share with your organisation what went wrong, e.g. in Slack. Document the steps you used to fix the problem, so that you later have a “How to” guide or a report. This can also encourage people to help you and collaborate. Very important is to use the term “We”, as it is about the whole team or organisation. Make failure visible through physical dashboards and monitors, as this can lead to less blaming and a focus on fixing the issue. But also reward experiments and celebrate people who take action. Praise success: say “Thank you!” and “Well done!”. I think the main thing I take from this talk is to praise and thank my team or individuals in public.
Bernd Ruecker – Complex Event Flows in Distributed Systems. One of the main topics at this year’s QCon was Tracing and Monitoring. Be it through microservice architecture or, as described in this talk, decoupled systems using event-based flows, it is easy to lose sight of the larger-scale flow and end up not knowing what is going on anymore. To help us regain sight and control, we need tracing and montoring tools. But beside just adding the tools, we need to add the right matrix and understand what they do.
The talk Reactive Systems Architecture by Jan Machacek and Matthew Squire, was again about regaining sight into our distributed systems by using tools for observability and monitoring. In this talk, the emphasis was mostly on checking the default setups of your tools and environments in terms of timeouts, retries, pool sizes and so on to gain control over the amount of logs and information you might collect. Make sure you configure your incident management and review it from time to time. Another buzzword mentioned in this talk was Chaos testing, which seems to mean just use all kinds of input to test your system.
Ron Pressler gave an overview on Project Loom for Java, with an introduction of techniques dealing with concurrency and how it is handled in Project Loom. Then he gave an introduction to Project Loom’s continuations and fibers, and how they help to write code in a modern style. It was a nice heads up on a future feature in Java.
So all in all a very insightful day. This year’s themes are all about observability and monitoring; looking at where we are with current technology and architecture; and managing risk and failure in your technology as well as in your people. On Java specifically, the themes were on its updating model, Java 11, Java 12, and future features.