Every system has an architecture, whether accidental or intentional, and regardless of whether it was put in place by a nominated architect or whether it emerged from the decisions and discussions of a team. All too often the focus of what is often described as architecture is centred around a specific set of platform technologies, which forms only one part of the set of concerns an architecture s...
<p>Programmers need automated tests to avoid wasting huge amounts of time manually checking and fixing code. But automated tests also tend to waste a huge amount of time:</p><ul><li>Flaky tests fail randomly.</li><li>End-to-end tests run slowly.</li><li>Mock-heavy tests can be hard to understand, lock in implementation, or only test themselves.</li></ul><p>People use design techniques such as Hexa...
How do you practise test-driven development (TDD), really?! It feels a bit like chess: the rules are simple to understand and follow, but playing well requires understanding complex strategies, making moves in unclear situations, and playing with confidence. In this workshop, we will discuss and practise the essential strategies that will help you program with more confidence (and less stress), ev...
Increasingly developers are relying on distributed architectures to solve the problems of scaling their applications and their development teams. But that means they now have to consider the problem of getting the parts of their systems to talk to each other.In this tutorial, we will look at distributed systems, such as microservices, and how we integrate them. We will understand why we would pref...
This hands-on workshop aims to help developers, architects, product and tech leaders & managers accelerate their learning of the fundamental principles of Team Topologies but also advanced patterns and practices to successfully adopt Team Topologies in their organizations.Over the past four years, Eduardo and Rich (the oldest Team Topologies Valued Practitioners) have collaborated with over twenty...
No matter how much advancement we see in programming tools and hardware technology, software development remains resolutely difficult. The preoccupation of today’s developers is exactly what it was fifty years ago: how can we create software which works reliably, and how we can extend it without breaking it? We just accept that software is inherently flawed, that all software contains bugs like or...
Learn how to model and implement software from a business perspectiveDomain-Driven Design (DDD) is an approach to software design that focuses on the domain, or problem area, of the application. It is a technique for aligning the implementation and team topology with the underlying structure of the domain.This training course will teach you all the fundamentals of DDD. How to collaborate between s...
Under pressure to deliver more, faster? This Workshop Is for You!Lean Poker isn't a traditional training; instead, it puts you and your team in the heart of the action, competing to create the best poker bot on the market. This dynamic, hands-on experience helps you explore the true value of agility, DevOps, and short lead times in a fast-paced environment, providing a level of understanding that ...
Get expert guidance and live coaching to pick the right quantitative and qualitative metrics that will empower your team to achieve better results, using research-backed methods.Beyond just what to measure, we'll also talk about why to measure, go through examples of successful metrics initiatives, talk about measuring the impact of tools like GitHub Copilot, and more.This workshop includes:DORA m...