14/04/2011
Francesco Cirillo

Why an "Anti-IF" School

In 2007, everything changed when I created the Anti-IF Campaign.

This campaign was created as a fun, ironic provocation pertaining to the software systems that my team and I were routinely called upon by our customers to tame and prepare for change. These systems were often incomprehensible, impossible to control and grow. The most striking, evident, and aberrant aspect that we used to encounter was the excessive use and misuse of the IF statement. These IFs impeded changes and represented the real problem. Thus, the Campaign was created to add precious years to the lives of developers :-)

But this was only the beginning... One might have imagined that the authors of these programs were either novice programmers with limited experience or hardened COBOL programmers that did not have any desire for the object-oriented promise of flexibility. This was not the case.

The feedback from the Campaign was evident. Surprisingly, the authors of these systems - the code killers - were almost always skilled, well prepared object-oriented developers. What's more, they were eager and willing to do a good job. They knew how to apply design principles and design patterns, TDD, refactoring, and so forth. They even practiced continuous integration and deployment. As a methodologist and designer, this obviously made me think...

The Anti-IF Campaign was able to help us to resolve this apparent paradox in which competent object-oriented developers working in a sustainable way were, nonetheless, feeding and strengthening their code monsters with IFs.

The Anti-IF Campaign, born as an ironic provocation, had officially become a software engineering research project. In 2008, we began the Code Recruitment and were swamped with code of all kinds.

It took several years before a different way of developing software began to emerge, along with a different way of teaching how to do it. In the beginning of 2011, the idea of a different kind of programming school was born. Thus the name Anti-IF School.

Like the Anti-IF Campaign, the goal of this school is not to propose the elimination of the IF statement from programming languages :-), but to propose new, concrete programming techniques that enable software to grow in an effective, enjoyable, and conscious way. To learn to choose whether or not to put the next IF. To learn to choose each and every programming statement in a conscious way. The same spirit of the Anti-IF Campaign.

Considering the role that the Anti-IF Campaign has had, this school cannot help but want to make it grow. This is why the Anti-IF School is also a supporter of the Anti-IF Campaign: part of the income generated from the Anti-IF School is directly invested in the Anti-IF Campaign for free events, Code Recruitment, free resources and the sharing of experiences.

Not only this, but the Anti-IF School's students themselves will also produce sample material that will be made available to all on the Anti-IF Campaign website.

--Francesco Cirillo