Learn with Francesco Cirillo — the creator of the Anti-IF Campaign — in this 4 session Online Course.
Learn how to make the construction of your software system effective and enjoyable.
In this Course you will develop real world software features.
Francesco will show you concepts, tools and practices to grow software in an effective way one feature at a time.
Participants will become aware of the process through which a continuous series of small programming decisions - such as the seemingly
simple decision to put an IF - can achieve the emergence of effective design structures.
You will re-invent practices such as Refactoring, Testing and TDD to understand how to grow software incrementally,
maintaining maximum quality
and delivering the highest possible number of functionalities.
At the end of each session the trainer will set a series of assignments to be completed for the next session.
Your solutions will be analysed and commented by your trainer and discussed with the other participants at the beginning of the next session.
Why sign up for this course? Read this blog post by Francesco: “The New Anti-IF Software Design Online Course”
About the course
This is an official course taught online by Francesco Cirillo. You will attend four Anti-IF Software Design sessions lasting 3 hours each.
By the end of the course you will be able to:
- Get rid of bad IFs by learning to grow software in an emergent way - You will be able to distinguish dangerous IFs, those that can cause a system to degenerate into a Code Monster - from physiological IFs. You will also learn how to transform those dangerous IFs in good code in an emergent way by implementing new requirements.
- See and recognize the flow of design dependencies and be able to organize them in a conscious way without fear and without rushing.
- Identify effective solutions without running the risk of over design - A dangerous IF can be eliminated in many different ways. Not all of them are able to reduce complexity.
- Learn to recognize patterns and combinations of patterns in an emergent way instead of imposing them.
- Grow software incrementally while maintaining maximum quality and delivering the highest possible number of functionalities.
- Direct your own independent improvement using self-observation techniques.
Why is this course so special?
- Each course session focuses on different topics and cases. Therefore, even if you have already taken the Workshop, you can take it again and still be able to work on new cases and learn new topics, always with a focus on real-world issues.
- The course is extremely hands-on, with 70% of it dedicated to Coding and Review Sessions. You will learn by working on the code.
- The course considers real cases - The exercises are taken from real system code.
- The course deals with real-world software development issues: from video games to parser development, exception handling, mobile app development, construction of complex sales reports.
- You will learn new powerful decision making tools that will enable you to identify the next best steps to take, especially when faced with difficult design choices.
- Participants will become aware of the process through which a continuous series of small programming decisions - such as the seemingly simple decision to put an IF - can achieve the emergence of effective design structures.
- The objective of the course isn't to follow "this" or "that" particular practice, but to become more aware of why such practices are used in the first place.
- Another objective of the course is to learn techniques and criteria for self-observation in order to be able to direct your own independent improvement, allowing you to achieve ongoing progress.
Each Anti-IF Software Design session focuses on different topics and cases. Therefore if you have already taken the Course,
you can take it again and still be able to work on new cases and learn new topics, always with a focus on real-world issues.
Languages. The Anti-IF Software Design Course is open to OO and functional languages.
One of the objectives of the Course is to facilitate contamination.
The sharing of diverse perspectives promotes the emergence of creative and effective solutions.
Check out the detailed programme for the Anti-IF Software Design Course.