The Anti-IF Campaign

Anti-IF® Course

Dealing with fast growth, technical debt, demanding deadlines? Are you fed up of feeding a dangerous Code Monster, one IF at a time, feature after feature?

Course Info

Date

Time

Course

Trainer

Location

Language

Price

Length

Nov 7th
09:30 am
Online
Italian
€575.00
3 weekly online sessions (3 hours per session) + 2 weekly assignments

Code Monsters? No thanks!

The participants of the Anti-IF Course learn through a series of lectures and exercises how to solve design problems related to complexity, growth and change without applying the "IF strategy".

"Let's add an IF" is the most widely chosen "design strategy" used by teams to manage complexity, growth and change. It is also the most damaging one. One IF after another, your software becomes a dangerous code monster: an intricate mass of interdependent lines of code impossible to test, to read, to modify.

By the end of this course participants will have learnt a range of design techniques and patterns to deal with complexity, growth and change in an effective and sustainable way. Replacing the "IF strategy" with more effective design strategies will also enable you to deal with the stress of a demanding deadline.

LEARN HOW TO DEAL WITH COMPLEXITY, GROWTH AND CHANGE WITHOUT USING THE "IF STRATEGY"

In this course we want to achieve an important goal: Defuse the "IF strategy".

WHAT IS THE "IF STRATEGY"?

Let's consider a real case. Our company has an online store. We are settled in Germany and sell products of various types all over the world.

The tax to be calculated on this kind of sales is called value-added tax (VAT) in Europe. We must calculate it and show it on our invoices.

Of course the VAT rules to be applied depend on several factors. Let's develop this feature together.

If the product sold is a physical product, a specific rule applies. If it is a digital product, another rule applies...

"Let's put an IF to deal with the physical products and another IF to deal with the digital products... Simple and effective!"

If the country where the product is purchased belongs to the European Union and the customer is an individual, a certain rule applies: the "German VAT rule"...

"I'll have to add more IFs. Bummer!"

I'm not done... If the customer instead is a European company a special rule - called "Reverse Charge" - applies...

Whereas, if the customer is a company but not in the European Union.... Well, another rule - "VAT exempt" - applies...

"More IFs... aaargh"

I'm not done... It's obviously not that simple! :)

If you sell a digital product and if the customer is an individual and only if he lives in a European Union country... well a different rule - called MOSS - applies :)

"Nested IFs... Double bummer!"

Maybe one day a country will leave the EU. Could you also consider this?

"Nooooo it can't happen... "

(BREXIT)

Maybe one day a product that is not considered digital becomes so? Could you also consider this?

"Noooooooo it can't happen..."

(Online courses are now considered digital products together with audio books, and mp3:))

How many IFs you want to put before you want to do this course :)

The "IF Strategy": Why?

The IF strategy is very widespread and applied because it is simple and immediate.

You write "IF" followed by a specific condition, then you add what to do in that case and what to do in the opposite case. You can combine IFs, you can nest IFs... simple and effective :))

IFs are as easy to add as it is difficult to be removed. Over time IFs nest one inside the other generating an unpredictable and uncontrollable behavior of the software. "Please welcome the code monster!"

ABOUT THE COURSE

By the end of this course participants will have learnt a range of design techniques and patterns to deal with complexity, growth and change in an effective and sustainable way. Replacing the "IF strategy" with more effective design strategies will enable them to deal with the stress of a demanding deadline.

You will be able to:

  • Get rid of bad IFs - You will be able to identify 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 by incrementally implementing new user stories.
  • See and recognize the flow of design dependencies and be able to organize them in a conscious way, fearlessly 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.
  • 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?
  • It's an incredibly hands-on course: 70% of it is dedicated to Coding and Review Sessions. You will learn by working on the code.
  • The course considers real cases: 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.
WHO IS IT FOR
Productivity Assessment

This is the ideal course both attended individually or taken with other members of the team.

  • Taken individually this course will allow you to significantly improve your design skills and change your perspective on how you conceive design. You’ll learn not to rush when it comes to deadlines, but to stop, think and get help from the code to find a suitable design solution.
  • Taken along with your team this course will grant all its participants to line upwards your design knowledge. The team will be able to define a no-shortcuts shared design strategy for the software development even under demanding deadlines.
ABOUT THE TRAINER

Francesco Cirillo is a Senior Software Designer, an expert in emerging and traditional design with more than 30 years of experience.

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.

Francesco has worked at the forefront of the software industry for more than 30 years. In a career spanning startups, multinationals and freelance consulting, he has mentored thousands of professionals, developers, managers and software teams.

He created the Anti IF Campaign in 2007 to raise awareness in the international community of developers to apply good design principles.

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.

He has been running the Software Design School since 2019. A training school for Software Designers

Read the Francesco Cirillo's complete profile.

  • 1 PERSON REGULAR
    €575.00
    included VAT, if applicable
  • REQUEST INFORMATION
  • DETAILED PROGRAMME
  • LANGUAGE
    Italian
  • LENGTH
    3 weekly online sessions (3 hours per session) + 2 weekly assignments
  • WHEN
    Nov 7th, 14th, 21st 2019
  • TIME
    09:30 am
    Berlin, Germany time
  • WHERE
    Online meeting with Zoom
  • COURSE SIZE
    Min 4, max 12 people
  • EASY TO ATTEND FROM
    Europe
    Asia
    Africa
  • TERMS OF SERVICE
Testimonials

Marco Isella

Software Engineer

Francesco has changed the way I work, and more.

Simone Casciaroli

Senior software developer (Contractor) at Nutralete

Since attending this program with Francesco Cirillo, and learning his approach to software design, I have realized that my previous understanding of the topic was not as effective as I once thought. By understanding his approach, I have been able to significantly improve my own software design, benefiting both my team and myself. Despite the fact that my course was focused solely on software design, it has helped me become an all-around better software developer.

Matteo Regazzi

Agile Coach at inspearit Italy

Having experienced Francesco’s work and methodology in the past, I wanted to study with him again and try his mentoring program. Amazingly, I was able to regain immediate momentum, motivation, and obtain astonishing results, even though working remotely. This was also due in part to the organization of the sessions, which were always efficient and productive. One of the best investments I have ever made in myself. Thank you!

MORE RECOMMENDATIONS FOR YOU

Software Design Mentoring with Francesco

Software Design Mentoring with Francesco

Are you ready to take your software design skills to the next level?

MORE
Software Design Explained

Software Design Explained

Learn how to effectively apply design patterns, Anti IF practices, Refactoring, CRC, TDD, User Stories.

MORE
Software Design Adventures

Software Design Adventures

Learn how to apply software design to make the construction of your sofware system effective and enjoyable

MORE