It's probably your fault: humility and other virtues programming taught me.
Lesson 3: Consistency
As a programmer:
There’s a development style that many programmers employ called “Test Driven Development” (TDD). The idea sounds sort of strange when you first hear it. The fundamental idea is that you should have code that tests your code. That’s not the strange part. The strange part is the notion that you should write your tests before you write the code that you want to test. For example, suppose you are building a web site and want to make sure that a user doesn’t enter in a first name that’s longer than 20 characters. Well, you should write a test first that verifies your code works to limit the name. But wait, if you haven’t written the code yet, won’t the test fail? Yes it will. The idea is that first you have to define what the test should look like. The test really shouldn’t change. The only thing that can make the test pass is if you write code that makes the test pass. Now, a great benefit of this approach is that if at some point someone says: “I think I have a better way for this code to work” or “I think this can be sped up by 10 minutes” or whatever the case is, you simply say: “As long as all the tests pass, great!” So, we’re always happy to change the code, but the tests are what they are. They never change.
As a human:
Friends, might I suggest that having an immutable set of “tests” is fundamentally the only way to maintain a consistent morality. Just as the code must always pass the same test, so must moral actions. Note that I am not speaking about judging the subjective component of moral actions. Of course, in the subjective realm we ought to always be willing to give the benefit of the doubt to anyone with regard to their culpability. I am speaking of the objective realm of reality. It is against this reality that we must firmly apply a consistent moral lens. If I am willing to state that such-and-such an action is wrong in the abstract, I must be consistent and stand up for the wrongness of that same action when it becomes concrete. Yes, even when standing up means we are accusing ourselves, friends, family, or other loved ones. In fact, that is precisely when it is most important to stand up for these unchangeable rules. We must be willing to adhere to these rules, even when we would wish with all our might to just slightly, subtly, apply a slightly different test. That simply won’t do; it is we who must adhere to the rules, not the rules to us.
“Everyone who listens to these words of mine and acts on them will be like a wise man who built his house on rock. The rain fell, the floods came, and the winds blew and buffeted the house. But it did not collapse; it had been set solidly on rock. And everyone who listens to these words of mine but does not act on them will be like a fool who built his house on sand. The rain fell, the floods came, and the winds blew and buffeted the house. And it collapsed and was completely ruined.”
Final lesson:
If we are willing to treat our rules for living a good life as if they can be shifted as easily as the sand, then we are effectively saying that they aren’t truly rules at all. It is one thing to sometimes fail a test. After all, we are all human beings and we shouldn’t be discouraged if we or those we love may sometimes fail. It is quite another thing altogether to change the test to transform failure into success. No, Christ has set the bar: “Be perfect.” This is a high bar. As we look at it, let’s encourage each other to say: “Brothers, though I cannot help you lower it, here is my hand to help you over.”