Feedback after attending the course: you must attend! Seeing how and why Francesco makes software design decisions is super helpful in improving how you make your decisions!
Learn along with Francesco Cirillo how to make the construction of your software system effective and enjoyable.
Develop features of a real application and solve design challenges with Francesco.
Francesco will show the principles and practices that he applies to make every design decision.
Each adventure is centered on different features and applications.
"How to apply design principles and practices in your real life? How to choose design patterns to reduce the complexity of your system?"
"What is an Adventure? It is a workshop in which I develop real software features together with the team participants. We have to solve real software design challenges on a real system. I explain how and why I make certain design decisions or how and why I apply certain practices. Here you can find more about our software design adventures. Usually, the idea for these adventures comes from software applications that I want to develop and grow." — Francesco Cirillo
Software Design Adventures (SDA) are a series of 3.5 hour workshops in which the participants (no more than six) experience how Francesco solves design challenges based on real requirements of real applications, applies a certain design process and a series of practices.
Software Design Adventures (SDA) are designed to train developers in the reality of development.
Fill in this form to tell us more about yourself/your team.APPLY NOW
Francesco has worked at the forefront of the software industry for more than 30 years.
In a career spanning startups, corporations and freelance consulting, he has mentored thousands of professionals, developers, managers and software teams.
In the 1990s he worked as a Senior Consultant and Mentor for Sun Microsystem, expert in Software Architectures and Software Development Processes and Java and Object-Oriented Evangelist.
Francesco is one of the pioneers of agile methods. He started working on XP and TDD in 1999. He was chosen by Kent Beck as reviewer of the second edition of the book Extreme Programming Explained.
He created the Anti IF Campaign in 2007 to raise awareness in the international community of developers to apply good design principles.
Francesco has been developing RRP, a new method of software development, since 2008.
He has been running the Software Design Training Programme since 2019.
Francesco created the Pomodoro® Technique, a renowned time-management tool used by millions of people all over the world, while a university student looking for a way to get more done in less time.
Software Design Adventures are journeys in which Francesco, you and the other participants will develop one or more customer requests of a real application.
Francesco will lead the development of the customer request to be delivered and show the participants how he makes software design decisions. He will show how he applies principles, patterns, practices and tools, why he chooses one pattern over another one. He will explain why he prefers specific practices in specific contexts.
Each adventure is organised in a series of episodes. Each episode features a series of design challenges.
Each Episode is independent. You can participate in the whole adventure or in individual episodes.
At the end of each episode Francesco writes a report with the most important things that happened during the session. You can read some of them here:
Each adventure is characterised by the choice of a particular development process:
Here's some of the adventures which are part of this series
Perfect for newbies as well as experienced developers.
Your team will learn and apply proven techniques for productivity, time management and decision-making. You’ll see measurable results in the first week.
In the Software Design Explained seminars you have learned about design principles, design patterns, development practices, development processes, tool functionalities. In the Software Design Practice workshops you have applied what you have learned to concrete cases.
It is now time to put all this knowledge together and apply it to develop a real application.
You want to learn how to reduce the complexity of a system by introducing new functionality. To learn how to develop software you need a real system.
Isn't this exactly the same context we find ourselves daily when we develop software? We know design principles and patterns and yet when it comes to apply them something doesn't work. We apply design principles and patterns as we have studied them from really good books and, in the result, software becomes more complicated, it starts to hinder rather than help the development of the next features.
By the end of each adventure, you will have acquired greater awareness on how to make effective software design decisions, which principles to apply and why. It will be clearer to you how to choose design patterns, recognize good and bad IFs, reduce the complexity of your software system design by implementing new features or scenarios, and how to meet your deadlines maintaining maximum quality.
A customer sends an email with one or more software requests to be developed.
Francesco and the participants analyse the request(s).
Francesco then leads the design and development of the customer's requests.
Software Design Adventures can be offered live online, and, when COVID restrictions will allow it, also onsite in your company and in-house in our offices.
Is your team bigger than 15 people?
We will be pleased to make you an offer tailored to your needs.
Fill in this form to tell us more about yourself / your team.
The following is the report of the first session of the Accounting Adventure. The time is 31 March 2021 at 9.30. The place is somewhere on the Internet on Zoom.
The following is the report of the first session of the Accounting Adventure. The time is 27 April 2021 at 9.30 am. It is a beautiful day outside in Berlin: 18 degrees Celsius.
Do you have a question not listed here?