Introduction

Sunday, April 17, 2005

The name of Ludwig Wittgenstein is often associated with the idea of a certain "skepticism" about rules. The main reason for this is the following passage:

This was our paradox: no course of action could be determined by a rule, because every course of action can be made out to accord with the rule. The answer was: if everything can be made out to accord with the rule, then it can also be made out to conflict with it. And so there would be neither accord nor conflict here. (PI §201)

Leaving aside the question of whether this expresses Wittgenstein's own opinion, it indeed seems that, if the above is granted, the very idea of a rule vanishes into nothingness. From an MIS perspective, there is a striking similarity between this statement and what happens when a project turns bad. Then, as people start to argue about whom to blame, the tendency is to turn to specifications, to the expression of rules contained in theses documents, for arbitration. But then, it suddenly seems that certainties vanish as the question of how to interpret the rules arises. As Wittgenstein writes, just after the above passage:

[...] in the course of our argument we give one interpretation after another; as if each one contented us at least for a moment, until we thought of yet another standing behind it. (PI §201)

As the endless bickering that surrounds failed projects shows, specifications are not enough to determine the behavior of a system without ambiguity. In fact, we are almost ready to admit to so much when we think about it at leisure. However we still think and speak as if it was not the case. When the next project starts, we are still inclined to say to ourselves : "this time I will write a perfectly clear spec.!" Fortunately there is a way out of this perplexity and it is also hinted at in the same passage of the Philosophical Investigations:

What this shows is that there is a way of grasping a rule which is not an interpretation, but which is exhibited in what we call 'obeying the rule' and 'going against it' in actual cases. (PI §201)

In MIS terms, this may be understood as an emphasis on live tests, i.e. those tests that are performed with real users on real data. There only can it be ascertained in a reliable way whether the behavior of a given system is in accord with the rules or not. Interestingly, this idea has already emerged by itself from within the MIS community; it is the basic principle on which Rapid Application Development and Extreme Programming methodologies are built.

The three quotations above reproduce the §201 of the Philosophical Investigations almost in extenso. It is one of the most frequently cited passage in the whole works of Wittgenstein and has given rise to a vast secondary literature. We believe that looking at it in the light of MIS experience can yield two benefits: