Wed
Mar 25

For the record: my American Idol prediction from last week was really, really, really close. Yes, I said that Michael would be voted out – he wasn’t – but I also said that I thought Alexis would need, and receive, the first ever Judges’ Save. It’s a bit weird but when Alexis and Michael were shown to be the bottom two I actually threw a fist in the air hoping that it was Alexis on the bottom. It was. And then Simon said he was thinking about using the Judges’ Save… just call me Nostra-wyvern. Yeah, it turns out that Simon refused to save her, and she fell earlier than I had otherwise projected, but I still claim my projections to be good. I made one crucial blunder: not with the contestants, but with Simon. I figured that Simon would be eager to flex his muscle by saving someone, but I foolishly forgot to consider that Simon’s ego is so big that even better than actually saving someone would be to threaten to save someone… and then not do it.

My bad.

Anyways, progress on the FantasyBlueBook front has been speedy over the past few days. And of course by “speedy” I mean that Lukas and I have been fighting ourselves to a relative standstill, locking our philosophical horns into an epic deadlock from which we managed to emerge only a handful of hours ago. As these things usually go, the problem resulted from my being right, his being wrong, and neither of us willing to concede.

In truth, the disagreement went to the fundamental cores of our individual beliefs. Just as some others might argue religion or politics, Lukas and I found ourselves literally yelling at one another… over math.

The very heart of our current online endeavor is a dynamic algorithm for determining the relative values between different fantasy players based on a variety of settings. This is something that Lukas has been doing on his own for many years, but is for me entirely new. When it came time for him to actually explain his method, so that I might translate his specific process into a more generalized programmatic version inside our databases, I found that the more I understood the worse I felt.

Without going into too much detail, our algorithm reads in statistical data for a little over 1000 people and then assigns each of those people a normalized value – essentially their “worth.” What made me so uncomfortable was that the algorithm Lukas gave me was somewhat incomplete. That is, the end result was shifted off of reality (according to Lukas’s experience) and therefore we needed to add in a few adjustments to make our final data accurately reflect the real world. My concern was that while the algorithm was theoretically sound, the adjustments were seemingly arbitrary. We were making adjustments for no “reason” other than to make our answers correct.

And it turns out that this is where the ideological foundations of Lukas and I crashed violently together.

It is my core belief that just about everything can be understood, explained, and broken down into a collection of rules. I am a purist for theory. In this case, when the result of our algorithm does not match reality I don’t just shrug my shoulders and say, “well that’s just life…” Instead, I point my finger at the algorithm and say, “the math is wrong.” Then, when Lukas counters by saying, “no… the math is right,” I in turn respond, “ok, well then the data is wrong.”

Lukas carries a much more pragmatic view of the world. It is more important to him that things work correctly than that they work for the correct reasons. In this case we have a black box algorithm with numbers going in and numbers coming out, but when the numbers come out a little wrong his natural response is to build a second box to correct the mistakes. My natural response is to completely dismantle the first box.

I’m not even kidding when I say that the two of us started yelling at one another over this.

When Lukas eventually walked away towards his room in frustration, I stayed awake for several more hours scrawling furiously across our dry erase board. The next morning I proudly displayed my hard-fought improvement to his system, which he then quickly tore down using a few examples of real-life data giving the same wrong answers. I went back to the board and designed yet another system… only to have it disproved once again with a few doses of bitter reality.

This process continued in its horrible cycle for about two days, the whole time featuring an irritated Lukas yelling, “just fucking make the adjustment” and me bitterly refusing to write the code that would give life to his abomination of logic. However, although we could barely stand to talk to one another – and indeed, relegated ourselves to separate rooms most of the time – progress was gradually being made. At four in the morning yesterday (well… today) I executed a finished procedure… and Lukas approved the results.

“Yeah… I can live with it.”

His ringing endorsement falls slightly below my own level of enthusiasm… which I guess makes me the winner of this confrontation. Neither of us is completely happy, but in the end:

1. The algorithm spits out the right answers.

2. There is a fairly stable foundation of logic behind every step in the process.

However:

1. For Lukas the “right answers” are still very slightly shifted from his perception of absolute truth.

2. Some of the “logic” includes very slight adjustments for mathematical intangibles like injury risk and manager bias

Still, our final product gets far more right than it gets wrong. According to Lukas our method from two days ago was still 100 times better than anything that anybody else does and that I was an intolerable, obsessive-compulsive asshole to not be happy with that. And yeah, I can appreciate that sentiment… but two days ago our “100 times better” was still ten percent bullshit which, in my mind, made it one hundred percent bad. The argument that we were better than everybody else only proves their negative, not our positive.

It’s extremely difficult to quantify the improvement between our final version and the original, so I guess I will say only that it is “significant.” There are no right answers to check against; we must use a different baseline for success. For Lukas our algorithm is True because it takes the numbers he expects and spits out the numbers he expects, based purely on his experience and intuition. For me our algorithm is True because the reasoning behind every step of the process is accurate and logical. Therefore, assuming we start with the truth, the end result must necessarily also be the truth.

The past few days have been an exercise in compromise for each of us I am sure, but it is heartening to realize that this was an argument that neither of us would likely have ever had with anyone but one another. Hopefully it is a sign of a good and unique partnership that we can disagree so violently over something so wholly abstract and theoretical… but end up better because of it.

As Matt remarked after seeing Lukas mock-punch me in the face over an (incorrect!) adjustment that would have perhaps made a two percent change to perhaps five percent of our data, “Of course… the only serious argument the two of you have ever had… and it’s over math.”