Speaker

Marco Consolaro

Marco Consolaro

Co-Founder & Lead Socio-Technical Trainer at Alcor Academy

London, United Kingdom

Marco Consolaro is an amalgam of diverse professional skills - software crafter, technical coach and trainer, systems thinker, international speaker, and symmathecist - all peppered with his Venetian wit. He is also the co-author of the award-winning book "Agile Technical Practices Distilled, A learning journey in technical practices and principles of software design".

Marco's path in the world of coding began at the age of 9, with a Commodore and the Basic language sparking what would become a lifelong passion. Over the last two decades, he has been helping customers in Italy and the UK, integrating principles from eXtreme Programming, Agile methodologies, Lean, Domain-Driven Design, and Systems Thinking into his work. His main passion is broad Complex Systems Design, from teams organization to Object-Oriented programming.

In 2020, Marco took a significant step in his career by co-founding Alcor Academy (https://alcor.academy). This venture was born from his desire to help leaders promote a culture of socio-technical excellence at scale, starting within their software development teams. Alcor Academy has distinguished itself through its pioneering Software Craft Training program, which utilizes live remote Mob Programming. This innovative training model, inspired by principles from "Training From the Back of the Room", has been widely successful throughout Europe, leading to the satisfaction of hundreds of software professionals.

Area of Expertise

  • Information & Communications Technology

Topics

  • Software Design
  • TDD & BDD
  • Mob Progamming
  • Socio-technical systems
  • systems thinking
  • software craft training
  • Sociotechnical Architecture
  • Lean thinking
  • Domain Driven Design

To TDD or not to TDD: that is the question!

Whether it is more effective to adopt well-known
but still misunderstood Agile Technical Practices
or to keep doing what we did in the past again
and again despite the poor outcomes?
Is it worth investing time, money, and effort to
learn these practices and principles of Software Design?

Honestly, I think so! I will explain why by telling a real story from my experience. And I will explain to you what are, in my opinion, the most relevant topics development teams need to understand to improve dramatically their chances to succeed.
We will see some history of TDD from Kent Beck to the London School, why it evolved in different techniques, and what other technical and collaborative practices every team may adopt to be effective in modern organizations.

Learning outcome: Understand the difference between the various TDD techniques and what problems they solve Listen to the story of how we applied them to rescue a failing project Have a first-hand opinion of the level of software craft in the wide industry Get a few pragmatic "pearls of wisdom" for improving yourself and your work environment. Video of this talk: https://www.youtube.com/watch?v=fXpYK1wdwZA

Part 1/2: C# .NET Outside-in development guided by tests in mob programming

Hands-on workshop in fishbowl mob programming where we will guide participants to implement and design software from the business perspective with tests that won't get in the way. Starting from some requirements and the acceptance criteria, we will write one acceptance test driving the outer loop of our Acceptance Test Driven Development suite. We will then use it as feedback for the progress of the implementation of the feature until it is completed.

This is a technique that we tried several times within delivery teams in the past, achieving amazing success, as far as we describe it also in our award-winning book. It includes elements of ATDD (London school), BDD, classic TDD, Domain Driven Design, Modular/Hexagonal Architecture, and it is ideal for expanding the functionality of the system incrementally, in harmony with business folks.

Join the mob and help navigate the development of the solution in C# .NET or just relax among the audience watching the progress of the exercise!

Outside-in development guided by tests in mob programming + AI

This interactive workshop offers a deep dive into the world of Outside-In Development, guided by the dynamics of collaborative programming.

Participants will engage in an exciting fishbowl Mob Programming session, focusing on implementing and designing software from a business-centric perspective. Utilizing tests as a guiding tool rather than a hindrance, the workshop begins with established requirements and one acceptance criteria. From there, we will craft an acceptance test that initiates the outer loop of our Acceptance Test Driven Development (ATDD) suite. This test serves as a continuous feedback mechanism, steering the implementation of the feature to completion.

Our approach is well-tested and proven in numerous delivery teams, a methodology we have detailed in our award-winning book "Agile Technical Practices Distilled". It incorporates elements of ATDD (London school), Behavior-Driven Development (BDD), classic Test-Driven Development (TDD), Domain-Driven Design, and Clean/Hexagonal Architecture. This technique is exceptionally effective for incrementally expanding system functionality, and ensuring alignment with business objectives.

Participants are invited to join the "mob" and actively navigate the development process with the aid of GitHub Copilot, or relax and observe the unfolding development journey from the audience.
We can deliver the workshop either in Java or C# .NET and we will decide on the spot with a quick poll!

This is a hands-on workshop where we will write code. We will use the speaker's machine, so no laptop is required.

We delivered this workshop successfully at the following conferences:

WORKSHOP Outside-In development guided by tests Working Software Conference 2019 - Milan https://www.agilemovement.it/workingsoftware/2019/schedule.html

WORKSHOP Outside-In development guided by tests Agile Venture Firenze 2019 - Florence https://www.agileday.it/venture/2019/firenze/

WORKSHOP Outside-In development guided by tests Domain-Driven Design Europe 2020 - Amsterdam https://2020.dddeurope.com/schedule/#!/2020-02-07/9po8lma5a2gj/outside-in-development-guided-by-tests

WORKSHOP Outside-In development guided by tests DEVOPS DAYS ZURICH 2021 https://devopsdays.org/events/2021-zurich/speakers/marco-consolaro/

WORKSHOP Sviluppo Outside-in guidato dai test Italian Agile Days 2022 - Brescia https://www.agileday.it/2022/#:~:text=Friday%2C%2014%20October%202022

NDC Oslo 2023 WORKSHOP C# .NET Outside-In development guided by tests in mob programming

WORKSHOP Outside-in development guided by tests in mob/ensemble programming Working Software Conference 2023 - Milan https://www.agilemovement.it/workingsoftware/2023/speakers.html

Soulful Socio-Technical Architecture: the intangible link between code and humans

'Soulful Socio-Technical Architecture' is a vision of architecture that transcends the technical and delves into the social dynamics within rapid learning teams. Join me as we uncover the roots of the "socio-technical" idiom and analyze the backdrop of last century's failed reform of the UK coal mining industry. Through this historical lens, we'll draw parallels to contemporary scenarios within the software industry, unraveling the threads that connect our past to our present.

In this thought-provoking talk, I'll guide you through considerations of design and architecture heuristics, showing a path from the 'complexity in the heart of Software' to the soul of the people with the potential for transforming organizations into living, breathing socio-technical systems. We will transcend the boundaries of mere technical and operational discourse, weaving a narrative that acknowledges the pivotal role of social dynamics in the evolution of rapid learning teams.

This is not just a talk; it's an invitation to reimagine how we craft the future of organizational design with a harmonious blend of great technology and thriving culture. Prepare to challenge conventional thinking as we explore how the symphony of a soulful socio-technical architecture harmonizes technology with the essence of humanity, creating environments that transcend the ordinary and can be the future of radically new organizational designs.

Yes, we can: the miners did it a century ago.

From Eventstorming to ATDD passing by Hexagonal Architecture. Go live on your first day on our team!

Imagine you are going to start working on a new team: this is your first day in your new job. How do you expect it to be? Boring? Would you be able to write code and deploy to production on your very first day?

In this hands-on workshop, you will join our team and work with us for one day in a production-like environment we prepared. The goal is to deploy one story to production by the end of the day. Impossible?

We will start by explaining the context of our Car Finance Business. Using Core Domain charts, bounded contexts mapping, big picture Eventstorming, Team Topologies, C4, and some custom Hexagonal Architecture class and sequence diagrams, we will show how to leverage the artefacts for onboarding new team members fast.

In the second part of the workshop, we will start writing code collaboratively with an acceptance test. We will help you to test-drive the user story on an enterprise-like application with live databases and APIs, Service Bus and event messaging, trunk-based development, continuous integration&deployment on Azure, and information radiators.

We will write Java code collaboratively in a mob/ensemble "fishbowl" programming and focus on the most important properties of an architecture: modularity, loose coupling, and business alignment.

Sit within the mob and help navigate the development of the solution, or just relax among the audience watching the progress, and asking questions in real-time. Impossible is nothing!"

Modular Architecture Deep Dive

In this hands-on workshop, we will start with an acceptance test and test-drive some user stories on an enterprise-like application with live databases and APIs, Service bus messaging, a continuous deployment environment on Azure, and information radiators.

We will write Java code collaboratively in a mob/ensemble "fishbowl" programming and focus on the most important properties of an architecture: modularity, loose coupling, and business alignment.

Sit within the mob and help navigate the development of the solution or just relax among the audience watching the progress of the development and asking questions in real-time!

Modular Architecture Workshop


Hexagonal, onion, clean, ports-and-adapters, layered... many names have been used for this architectural pattern.

In this hands-on workshop, we will test-drive a user story on an enterprise-like application with live databases and APIs.

We will write code collaboratively in a mob/ensemble "fishbowl" programming and focus on the most important properties of an architecture: modularity, loose coupling, and business alignment.

Sit within the mob and help navigate the development of the solution or just relax among the audience watching the progress of the development!

Bounded rationality, complex Systems and Agile principles

"Human beings make quite reasonably decisions, but only based on the information they have." This is the concept of bounded rationality, as defined by Nobel prize Herbert Simon. If we look at Agile principles and practices from a systemic perspective, they focus on maximize rationality boundaries related to the product we are building. However, the whole organization and its teams are interacting complex systems which follow the very same principles of Systems Theory. Bounded rationality plays a subtle but fundamental role in every System, beyond just development teams. In this talk I will try to explain how Systems Theory can help organizations and why motivation is the key of success in complex Systems made by human beings.

Outside-In development guided by tests

Hands on workshop where we will guide participant on implementing and designing software from the business perspectives with tests that won't get in the way.

Connascence: beyond Coupling and Cohesion

In 2009 Jim Weirich defined Connascence as "The Grand Unified Theory Of Software Development". The concept it is simple, yet very powerful in context of Object Oriented software development. It generalizes the ideas of Cohesion and Coupling, combining them in a more exhaustive classification under three axis, using a proper taxonomy. In this talk I will try to explain you the different kinds of Connascence using code and real life examples.

NDC London 2024 Sessionize Event

January 2024 London, United Kingdom

Conferencia Agile Spain (CAS'23) Sessionize Event

November 2023 Tarragona, Spain

KanDDDinsky 2023 Sessionize Event

October 2023 Berlin, Germany

Working Software 2023 Sessionize Event

June 2023 Milan, Italy

NDC Oslo 2023 Sessionize Event

May 2023 Oslo, Norway

KanDDDinsky 2022 Sessionize Event

October 2022 Berlin, Germany

Italian Agile Days 2022 Sessionize Event

October 2022 Brescia, Italy

Domain-Driven Design Europe 2022 Sessionize Event

June 2022 Amsterdam, The Netherlands

SPA Conference 2021 Sessionize Event

September 2021

DevOpsDays Zurich 2021 Sessionize Event

September 2021 Winterthur, Switzerland

Domain-Driven Design Europe 2020 Sessionize Event

February 2020 Amsterdam, The Netherlands

KanDDDinsky Sessionize Event

October 2019 Berlin, Germany

Agile Venture Firenze 2019 Sessionize Event

September 2019 Florence, Italy

Working Software Sessionize Event

July 2019 Milan, Italy

Domain-Driven Design Europe 2019 Sessionize Event

January 2019 Amsterdam, The Netherlands

Marco Consolaro

Co-Founder & Lead Socio-Technical Trainer at Alcor Academy

London, United Kingdom