On this site, there is only displayed the English speaking sessions of the OOP 2022 Digital. You can find all conference sessions, including the German speaking ones, here.
The times given in the conference program of OOP 2022 Digital correspond to Central European Time (CET).
By clicking on "EVENT MERKEN" within the lecture descriptions you can arrange your own schedule. You can view your schedule at any time using the icon in the upper right corner.
Thema: Software Engineering
- Artificial Intelligence Now!
- C++ and Programming of Embedded Systems
- DevOps & Automation Now!
- Diversity & Inclusion
- From Projects to Products/Services: Aligning Architecture and Organization for Sustainable Speed
- Full Day Tutorial
- Fusion: IT-Future-Society
- Half Day Tutorial
- Modern Software Architecture
- Product Development in Times of Digitalization
- Signature Track: The Time is Now!
- Social Integration
- Software Architecture Communication & Assessment
- Testing & Quality
- Trends & Techniques
- Use Domain-Driven Design Now!
- Artificial Intelligence
- Domain-Driven Design
- Product Development
- Programming Languages
- Requirements Engineering
- Soft Skills/Social Skills
- Software Engineering
- Talks with Limited Attendance
- Testing & Quality
- Virtual Reality
Functional programming is the future of software development. As software gets ever more complex, unintended side effects flourish - you push on one side, and something unexpected squirts out the other. Functional programming cuts down on complexity through high-level abstractions and avoids unintended side effects through pure functions. The result is simple and elegant code that captures the essence of the problem you're trying to solve. Fortunately, functional programming is easy to learn, and this tutorial will get you started.
Target audience: Architects, Developers
Functional programming is the logical continuation of object-oriented programming: OOP managed to encapsulate mutable state with the goal of ultimately eliminating it one day, and functional programming finally realizes that vision. Language implementations have been mature and robust for many years now, and the practical functional languages - Haskell, OCaml, Scala, Clojure, F#, Racket, Erlang, Elixir, Swift - all have thriving communities and ecosystems. Moreover, decades of experience and research teaching functional programming have produced effective didactic approaches that enable anyone into programming to easily get into FP. The time to get started is now!
Chaos engineering, popularised by Netflix, is an approach to building scalable, resilient systems through destructive experiments, but what other impacts does it have? How can adopting chaos engineering change organisational culture? This talk explores the parallels between modern distributed architectures and the unpredictable challenges of the modern world, and how approaches like chaos engineering help organisations deal with both.
We will deep dive into the practices needed to make chaos engineering a success in your organisation and uncover how they help beyond just chaos engineering experiments. We will also explore the nature of complex, socio-technical systems and why new approaches are needed to deal with them.
Target Audience: Anyone in a team or organisation considering adopting chaos engineering
Digitalization has been changing existing industry B2B businesses, digitalization business models arrived and the Digitalization solutions need to be developed to support this. The sudden enforcement of social distancing has given the digital transformation a significant push forward. How do we develop innovative Digitalization offerings in the future? We will show how to seize these opportunities and forge new paths toward the new normal for Software Engineering.
Target Audience: Software Engineers, System and Software Architects, Software Managers
Prerequisites: Knowledge in Software Engineering Practice
Each project has its own unique technology stack, different business logic and a unique team. The definition of quality in our projects can vary greatly. However, there are good practices that will work everywhere. There are steps that can be taken in every project and team to produce the software of better quality. I will tell you how to improve communication and processes, and what tools we can use not to be ashamed of the fruits of our work. Everything from a programmer's perspective.
Target Audience: Developers and Tech/Project Leaders
Prerequisites: Some experience in profesional software development
Each project has its own unique technology stack, different business logic and a unique team. Some of us work on mature products that have been in production for many years. Others are constantly struggling to innovate in the race against time. The definition of quality in our projects can vary greatly. However, there are good practices that will work everywhere. There are steps that can be taken in every project and team to produce the software of better quality. I will tell you how to improve communication and processes, and what tools we can use not to be ashamed of the fruits of our work. Everything from a programmer's perspective.
“TDD is when you write tests before implementing the business logic” - a simple sentence that is also often misunderstood.
Moving from one project to another, I have observed how many times people were terrified of TDD. I have been there too.
This session will focus on trying to understand HOW and more importantly WHY you should consider TDD. I've transformed failures from my experience into a series of lessons learned, things that in hindsight should have been obvious.
Target Audience: Architects, Developers
Prerequisites: Basic knowledge in testing techniques
Moreover, she is passionate about new technologies, clean code, and best practices.
In her free time, when she’s not spending it on hobbies, she likes to build demos around real-life use cases, share knowledge with others, and the opposite, learn about someone else's experience.
In this talk, we will give an overview about all the different aspects that affect climate change from the software engineering perspective and discuss a number of concrete actions that every software engineer can take (and should keep in mind day-in day-out) to help fight climate change. During the talk, we will not only provide an overview of the landscape, but also cover topics in more depth and discuss the challenges that come with them.
Target Audience: Architects, Developers, Project Leads
In this talk, we will give an overview about all the different aspects that affect climate change from the software engineering perspective and discuss a number of concrete actions that every software engineer can take (and should keep in mind day-in day-out) to help fight climate change, including:
- Energy consumption of software and what that means for software engineering
- Research studies about software running in data centers and the problem of zombies
- Work towards operating software in a carbon-aware way
- When and how far do renewable energies help
- How does carbon offsetting works and how to select the right projects
- And more...
In 2020, the three big cloud providers signed us all up for a revolution in the way we write and operate software. The deadline is 2030. Are you ready?
Target Audience: General techie. This works for all
In 2020, Google Cloud, AWS, and Azure all committed to be carbon zero by 2030. It's the incredibly tough goal of zero emitted carbon as a result for operating our applications and services. They can't do it alone. AWS says "we optimize for sustainability of the cloud, while customers are responsible for sustainability in the cloud, meaning they must optimize their workloads and resource utilization." I don't think this is a request. They've signed up to be carbon zero by 2030. That means we have too. The clock is ticking.
When breaking up our software into modules we all too often forget the important social aspects; how the design affects the teams. We need modules that not only make us efficient but also harmonious.
We know that good fences make good neighbours, but only when the boundaries are placed correctly. We are going to take a closer look at why modularity is needed, what it actually can do for us, and how we can increase our chances of getting it right by taking a systems thinking approach.
Target Audience: Software Architects, Developers, Systems Designer
Modularity is a key aspect of software and architectural design, setting explicit boundaries between different parts of the system. But we have been banging on about this since the 70s, and still we are creating big balls of mud -- now even the distributed kind. Either modularity as a concept is insufficient or maybe there are aspects here we seem to get wrong. We know that good fences make good neighbours, but only when the boundaries are placed correctly. How can we create robust and sustainable modular designs when identifying those boundaries are so challenging?
In this talk, we are going to take a closer look at why modularity is needed, what it actually can do for us, and how we can increase our chances of getting it right by taking a systems thinking approach. The claim made is that a holistic view of the problem space is critical; one that considers all its parts, including the business and all the people affected. Software development today is inherently a sociotechnical endeavour and any modularisation effort, be it information hiding, SOA, microservices, DDD, Team Topologies and more, must take this into account in order to be able to create solutions that are sustainable and have the necessary conceptual integrity.
In summary, this talk will help you piece together all of the these good modularisation practices and understand the theory behind them, improving your holistic system design skills, and enabling you to create requisite coherence in your designs. Maybe this will guard you against the dreaded distributed big ball of mud, the killer of agility and productive collaboration.