(All timings are in British Summer Time)
9.30am - 9.45am (10.30am CEST) - Welcome
9.45am - 10.30am (10.45am CEST)
Redefining the unit
Michael Calvert & Felix Holzäpfel-Stein
Mainframes handle 30 billion business transactions each day and 87% of all credit card transactions*, they are not traditionally associated with flexible, fail-fast development approaches. Can we bring the practices of agile, CI/CD and fully automated deployments to applications running on a mainframe? During our talk, we'll tell you a story about test automation; redefining the smallest testable unit of a program. And we'll discuss our learnings from introducing continuous integration and agile practices to the world of insurance and mainframes.
*9 Mainframe statistics that may surprise you
10.30am - 11.15am (11.30am CEST)
Exploring docker container security: Risks and good practices
Mónica Calderaro & Marina Kjaer
The continued adoption of containers for deployments has introduced a new path for security issues. In this talk, we will cover the most common areas of vulnerabilities, the challenges in securing your containers, some good practices to help overcome these issues and how to run container security scanning as part of your deployment pipeline.
11.15am - 11.30am (12.15am CEST) - Break
11.30am - 12.15pm (12.30pm CEST)
Don't cross the Rubicon
As a tech leader at ThoughtWorks, a large part of my job involves recommending practices to our clients so they can build and deliver good quality software faster. In doing so repeatedly for many clients I have created a toolkit that contains practical advice from being on the ground. This is what we do, we know it works. When Julius Caesar entered Rome with his army by crossing the river Rubicon, he did something that couldn’t be undone ever again. In your journey as a leader, avoid mistakes that are difficult to correct later. Here are a set of practices that you want to adopt as soon as possible.
12.15pm - 1.00pm (1.15pm CEST)
XConf Community Radar
1.00pm - 1.45pm (2.00pm CEST)
Moving away from null and exceptions: An alternative way of error handling
Mario Fernandez & Andrei Bechet
Handling error conditions is a core part of the software we write. However, we often treat it as a second class citizen, obscuring our intent through abuse of null values and exceptions that make our code hard to understand and maintain. In the functional programming community, it is common to use datatypes such as Option, Either or Validated to make our intentions explicit when dealing with errors. We can leverage the compiler to verify that we are handling them instead of hoping for the best at runtime. This results in code that is clearer, without hidden path flows. We’ll show how we have been doing this in Kotlin, with the help of the Arrow library.
1.45pm - 2.30pm (2.45pm CEST)
When in doubt, go live: Techniques for decision-making based on real user behaviour
Klaus Fleerkötter & Irene Torres
Find out how to validate hypotheses quickly using feedback that comes from a (large enough) number of actual users interacting with your product. In this talk, we will show you the technical foundations, research techniques and organisational setup that we have used successfully on large-scale products. These will save you development time, enable you to go live with confidence, make decisions based on real behaviour instead of best guesses, and solve the actual problems your users are facing.
2.30pm - 2.45pm (3.30pm CEST) - Break
2.45pm - 3.30pm (3.45pm CEST)
Your test coverage is a lie!
Mutation testing in software development surfaced in academia during the 70's and has recently seen a resurgence in popularity as a legitimate tool in your testing arsenal. In this session we review the conventional testing pyramid, modern approaches to testing software and look at how mutation testing can help fill in those blind spots.
3.30pm - 4.30pm (4.30pm CEST)
KEYNOTE: It's different with Data
Martin Fowler & Em Grasmeder
The field of data science was born with an identity crisis. The fundamental question of who or what a data scientist actually is, and what they should be doing, remains largely undecided. Regardless of where the answer falls, there are a number of tools and techniques that every data scientist should have in their tool belt. Many of these tools will be familiar to traditional computer scientists, who work in many of the same environments and in many of the same ways as data scientists. But practitioners of both fields often have a hard time seeing how the other side lives. In this session we will discuss the ways data changes things: starting from development and strategy, then expanding outwards.
4.30pm - 5.00pm (5.30pm CEST) - Keynote Lounge