Speaker

João Rosa

João Rosa

Independent Consultant

Zeewolde, The Netherlands

Actions

João has experience enabling organizations to transition to fast-flow operating models. As CTO with scale-ups or as a consultant, he supported firms with different structures based on Team Topologies principles. He focused on bridging strategy to execution in areas such as alternative funding models or effective use of technology, where teams and organizations can thrive in a complex world.

He is a Team Topologies Valued Practitioner (https://teamtopologies.com/all-ttvp/joao-rosa). He is also one of the authors of the book Software Architecture Metrics (https://www.oreilly.com/library/view/software-architecture-metrics/9781098112226/), the curator of the book Visual Collaboration Tools (https://leanpub.com/visualcollaborationtools/) and the host of the Software Crafts Podcast (https://www.softwarecraftspodcast.com/).

You can find him travelling with his daughter and wife or lying on the beach reading a book when he is not on his duties. João is an amateur cook in his remaining time.

Area of Expertise

  • Information & Communications Technology

Topics

  • Leadership
  • Management and Leadership
  • Management
  • Domain Driven Design
  • Software Architecture
  • Software Engineering

Leveraging Team Topologies for Software Evolution

# Increase the flow of delivery with effective software design and team interactions

Have you ever faced roadblocks in software development stemming from disjointed team structures or interactions? You’re not alone. Misalignment between software and the domain, siloed teams focusing on discrete tasks, or processes dictating software architecture often end up in rigid software that is not coherent with evolving requirements.

Enter Team Topologies, a pattern language, and a set of principles and practices to ensure a steady flow of value while respecting human-centric aspects like trust boundaries and cognitive load. This perspective prompts a burning question: What if we change how teams interact with each other and leverage these interactions to evolve the software? What would such a world look like?

Through real-world use cases, we’ll discuss and understand the implications of applying Team Topologies, Domain-Driven Design, and fast-flow principles. This workshop is not just theory; it’s about practical engagement, discussion, and learning by doing. You will have the opportunity to reflect on your context and discuss it with the other participants.

## What is this workshop about
The software we produce quickly changes the user's needs, which has a ripple effect on the software itself. Requirements change, and people want different things. This is good; people are engaged, and the software's value is sound. But there’s a caveat: how the teams inside the organization interact can be an enabler or blocker to evolving the software services. You probably have experience with how the friction between different people and teams inside a company didn’t yield the desirable results.

This workshop focuses on a different angle. What if we take how teams interact and leverage our native humane capabilities, such as trust and empathy, around a common goal? Rather than starting from the technical angle, we start from the social and humane angle. With this in mind, we use Team Topologies and Domain-Driven Design principles and practices. We design how teams can interact with each other and how to have a sensible software architecture that enables a fast flow of value toward the service users.

You will work in smaller groups around a fiction company example based on real-life use cases. The workshop provides a space to safely experiment with different options and reflect on the trade-offs and implications. There is a strong emphasis on the practical side of things, with short theory blocks to give you the foundation for the exercises. At the end of the workshop, you can apply the principles and practices to your context, improving the flow and business outcomes.

## Learning goals
At the end of this workshop, you’ll be able to:
- Engage in insightful discussions with your team on the core concepts of Team Topologies and Domain-Driven Design.
- Apply learned techniques to explore how your software can evolve and what the implications are.
- Explore and detail the alternatives to your current team setup and how they interact with each other to increase the flow of value and achieve the business goals.

## What do I need to know
If you are not an expert on Team Topologies or Domain-Driven Design, don’t worry. The workshop is designed to explore the concepts hands-on. You will have a workbook to support your journey, and the materials provide a reference so you don’t get lost.

The workshop is designed to improve the flow of teams that create and maintain software services. Anyone with any level of experience is welcome, and you will maximize the workshop results if you are looking for alternative ways of doing things rather than just the next big and shiny framework.

## Audience
Shout out to software engineers, testers, tech leads, architects, product owners, and scrum masters. This workshop is for you, folks who are part of a team, either to design, build, and maintain software or to work in a function that enables good software services, such as product management or Agile roles. It's especially for you if you have influence over or directly can change the software architecture or the way that teams interact with each other.

Intentional Architecture - Applying open sociotechnical systems theory to evolve organisations

Are you tired of the constant pressure to adapt and evolve in a fast-changing and increasingly unpredictable world? Do you struggle with the complexity of software development, the difficulty of evolving your architecture, and the rising cost of change? It's time to put people at the centre of your design process with open sociotechnical systems. In this 2-day workshop, you'll learn how to apply principles of open sociotechnical systems, Domain-Driven Design, Wardley Maps, and Team Topologies to create a more effective, resilient, and adaptive organisation. Say goodbye to accidental complexity and hello to a brighter future for your software and your organisation. Don't miss out on this opportunity to learn and grow with us!

Summary
In this 2-day workshop, you will learn about open sociotechnical systems design, which prioritises people and practices in the design process. Through interactive and practical exercises, you will apply principles of open sociotechnical systems design, Domain-Driven Design, Wardley Maps, and Team Topologies to explore and design systems that make people an integral part.

You will also learn how to recognise the impact of the environment on sociotechnical systems and create evolutionary paths for the architecture (both business, product and IT). These principles and practices can be applied to create a more effective and resilient organisation, regardless of whether you are a technical or non-technical professional. This workshop is suitable for anyone responsible for any decision about an organisation's architecture (business, product and IT).

What is this workshop about
The world is constantly changing, and software plays an ever-increasing role in this change. Companies that leverage technology, such as software, are under pressure to adapt. To support a fast flow of change, we can’t just apply old methods that don’t support the organisation's adaptability and treat it as an open and exposed system. We might recognise some consequences of those old methods: accidental complexity keeps growing in your software, people find it incredibly difficult to evolve the system, and the cost of change is rising exponentially. Last but not least, the pressure on people is increasing, and their well-being is at odds with technical progress.

In this workshop, we will explore open sociotechnical systems thinking, which gives equal weight to social and technological aspects and puts people back in the centre of the design. This approach profoundly impacts how we do architecture and organise people to deliver value. We will combine the open sociotechnical systems theory principles with Domain-Driven Design, Wardley Maps and Team Topologies. By combining those principles and practices, we will explore the environment around the organisation, discover and discuss sensible boundaries for the teams and architecture, and generate options for the evolution of the sociotechnical system.

The workshop is dynamic and interactive. It has the foundations in the research of open sociotechnical systems, together with the principles and practices of Domain-Driven Design, Wardley Maps and Team Topologies. The workshop is designed with several practical exercises in small groups. We will resort to different visual collaboration tools to support the discussions.
Whether you are a technical or non-technical professional, this workshop is for you. Join us and learn how to apply these concepts, principles and practices to create a more effective, resilient, and adaptive organisation.

Learning goals
- Understanding what an open sociotechnical system is and what its design principles of it are
- Applying Domain-Driven Design, Wardley Maps, and Team Topologies to explore and design open sociotechnical systems that put people in the centre
- Recognise that we operate in an unpredictable environment and how its complexity affects the sociotechnical system (and vice-versa)
- Discover how to create evolutionary paths for the architecture (IT, product and business) and be intentional about its options
- Participating in interactive and practical exercises to apply these concepts and principles in small groups using visual collaboration tools
- Understanding how these principles and practices can be applied to create a more effective and resilient organisation, regardless of whether you are a technical or non-technical professional

A modern-day software architect: why sociotechnical systems are important

The craft of a software architect is in constant change. Technology evolves, and our skills and practices develop as well. How about the teams we are part of? And the organisations? The evolution at the team and organisation level is slower but more disruptive. Our brain likes routine, and it is hardwired that way. However, everything around us evolves.

How do all of those dimensions play together? How can we thrive in our craft? As software architects, we should also be aware of the implications of technology changes in the teams and the organisation. We work in sociotechnical systems, and we create sociotechnical systems. It sounds like the movie Inception, doesn't it?

Join me in this talk, where I will share my insights on the skills of a modern-day architect and how we, as a community, can learn from each other.

Evolving organisations using sociotechnical systems design

"Change is the only constant in life.". You might recognise it. The saying is from Heraclitus, a Greek philosopher. The organisation you work with is changing. You don't understand why, nor can your manager explain it. Our brains like routine, and it feels like we control our lives. But more than we would like, we are faced with change.

Organisations constantly evolve, sometimes with intention, and others grab an opportunity. Often, those changes have side effects: they can affect people's practices, teams' mission and organisations' processes. Is there a way where we can be prepared for such changes?

From my experience, yes, we can be prepared for those changes. And we can use one of the oldest human skills: visualisations. More specifically, we can combine different visualisations to discuss, reason and communicate change. It doesn't matter your role in an organisation; it is possible to use visualisations to discuss other points of view and the different options and trade-offs.

This hands-on will take you through evolving an organisation using different visualisations such as Wardley Maps, Context Maps, and Team Topologies. We will start with a Wardley Map to create the context for everyone and have a series of exercises to evolve the organisation using other visualisations such as Context Map and Team Topologies. By doing it, you will be creating and evolving the sociotechnical system of the organisation. At the end of the session, you will have experienced the different visualisations and combined them. More importantly, how to visualise change and tame the brain.

Domain-Driven Design and Enterprise Architecture: partners in design

Did you ever experiment tension between different people inside of an organisation, with regards to design strategies? On one field, the Enterprise Architects and their business capabilities, and on the other side the Domain-Driven Design practitioners with their patterns? Endless hours of discussion about the design strategy, leading to waste and polarisation.

What if we could combine these two worlds? Are they so different?

Join us on this hands-on, where we will work a serious of exercises where you can leverage business capabilities modelling and strategic Domain-Driven Design patterns to model different functions inside of an organisation. You will learn on to move from the different methods while leveraging the strengths of each other. Leveraging those perspectives, you can start modelling based on intention, creating highly autonomous agents (agency in the works Jabe Bloom), whilst aligned with the organisation purpose and mission.
If your role is architect, line manager or you just want to gain experience in modelling at the enterprise level, then this is the right spot. We will model a use case, and walk through several scenarios where we apply the different modelling techniques. Previous knowledge of Strategic Domain-Driven Design and Enterprise Architecture is welcomed, but not required. You will leave the hands-on with a toolset that will allow you to apply to your product portfolio, creating sensible boundaries.

From EventStorming to CoDDDing

To really understand what our users need so that we can build the right thing, we want to have a first-hand experience of 'real-life stories' before we model and create our software. To quote Alberto Brandolini "it is not the domain expert's knowledge that goes into production, it is the developer's assumption of that knowledge that goes into production". EventStorming is a visual technique that minimizes assumptions by engaging in collaborative deliberate learning across different disciplines. This helps to solve complex business problems in the most effective way.

Although the learning of the domain helps us to understand the domain better, EventStorming can be quite an overwhelming experience. Developers can be left with the question of how to turn a few stickies on a wall into working code.

Join us in this talk in which we show the basic principles of EventStorming. We will cover the different forms of EventStorming and in which situation they best can be applied. And, we will show how you can leverage DDD (Domain-Driven Design) patterns in an EventStorming software modelling session that will ultimately result in coding TDD (Test Driven Development) style!

Leveraging Team Topologies and Domain-Driven Design to increase reliability

Site Reliability Engineering (SRE) has become mainstream. From Google practices, we can see adoption in the IT industry. Organisations tend to procure and deploy technical solutions that can be leveraged to increase reliability. However, most of the times, it creates accidental complexity in the organisation landscape, increasing the burden on teams to use and maintain the solutions.

If we take a sociotechnical perspective, organisations are the product of people and technology. Instead of trying to use technical solutions, we can invest on the social side and create more straightforward solutions, yet reliable. Reducing complexity can lead to an increase in reliability.

Join João in this talk, where we will demonstrate how to combine Team Topologies and Domain-Driven Design to increase the reliability of services. Taking a sociotechnical approach, we can fight complexity, creating a safe and stable environment, leading to an increase in the reliability of products and services.

A DevOps journey: why the sociotechnical architecture is important

In recent years, we observed some DevOps transformations across the globe. Like any transformation, there are uncertainty and pain from it, given the teams and people are asked to change their values, principles and practices.

One of the aspects of a DevOps transformation is the impacts on the culture of the organisation, mainly on the social structures. With the ambition of breaking silos, it also forces people to create new relationships, given the team composition changes. The new DevOps teams gain new capabilities, are their scope changes. The potential cascading effects are the misalignment with the business goals and miss the fundamental point of DevOps, eliminate waste.

Join João on his journey of the recent past, where he was involved on DevOps transformations. During the transformations, he applied some heuristics from sociotechnical architecture and Domain-Driven Design to accelerate the business capabilities of the DevOps teams. He will share the lessons learned, from the pitfalls, failures and successes!

Crunching 'real-life stories' with DDD EventStorming and combining it with BDD techniques

To really understand what our users will need, we want to have a first-hand experience from 'real-life stories' before we can model and create our software. While both the DDD and BDD techniques emphasis on ‘real-life stories’ by doing collaborative deliberate learning, they both focus on different goals. DDD focuses more on creating bounded contexts in which a single model is created, BDD focuses more on different scenarios and can create executable specifications as an outcome. By doing EventStorming and using techniques from BDD based on feature mapping, such as Example Mapping, we can create more insights. We can simultaneously create a model and executable specifications for our user needs. This way, we can write software and tests which matches the shared understanding of the user, creating a ubiquitous language. Value will be shipped at a faster pace.

In this hands-on session, we start with a Process EventStorming. We will use Example Mapping to get more insights into our process. Eventually, I will show you how the outcome can drive our Software Modelling EventStorming and create Executable Specifications. This way we can create a ubiquitous domain language that we can use in our application and test code. You don't need a laptop for this session as the focus is on the discovery phase.

KanDDDinsky 2022 Sessionize Event

October 2022 Berlin, Germany

Domain-Driven Design Europe 2022 Sessionize Event

June 2022 Amsterdam, The Netherlands

Domain-Driven Design Europe 2021 Sessionize Event

February 2021

DevOps Summit Amsterdam 2020 Sessionize Event

October 2020

DevOps Summit Amsterdam 2019 - Two days DevOps experience Sessionize Event

October 2019 Amsterdam, The Netherlands

Domain-Driven Design Europe 2019 Sessionize Event

January 2019 Amsterdam, The Netherlands

Techorama NL 2018 Sessionize Event

October 2018 Ede, The Netherlands

João Rosa

Independent Consultant

Zeewolde, The Netherlands

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top