Philosophy/Software: Value Theory
Here‘s a statistic I wonder about: how many programmers have had even an intro course in philosophy, let alone done any serious study that might have included the 20th Century variants of semiotics and literary theory. I bet that‘s a super super small number. Why? Because the people who make math curricula in this country don‘t think liberal arts subjects are worth a damn (and they don‘t care that they disagree on this point with every single prior civilization back to the Greeks, who invented their religion: math (though it wasn‘t a religion for them)). Nevermind also that the state of CS edu in this country is still a complete joke. People come out who can‘t possibly hold down jobs as developers. They need someone to essentially sponsor them while they learn all the things that they weren‘t taught by the people who charged them north of $100K.
Anyway, I have noticed in the last few years that a lot of people have been arguing that The Genealogy of Morals is Nietzsche's greatest book. I don't feel compelled to put one book above the others, but can definitely get with a lot of the arguments. Especially one I saw again last night that said that basically it's because the book is considered one of the most brilliant expositions of what is called value theory. The Genealogy of Morals begins with a discussion of good and bad v. good and evil. But then it goes on to explain the history of morals in a brilliant screed.
What on earth does this have to do with programming? It's so simple. Programming has a huge value theory problem. We've known about it forever. Process-wise, value theory is the central concern in most methodologies. For instance, RUP, the king of the 90s, was the 3 amigos. The most important, longest lasting contribution from that endeavor has been Use Cases. They are a treatise in value theory. They depict what? A value exchange Then the Agile guys showed up. What is the Agile Manifesto? It‘s the most basic type of value theory manifesto. ‘We value people over process..‘ etc. I noticed on the Agile Manifesto page that there is no representative on that page of the Lean group (neither of the Poppendick‘s are in there). How ironic is that, because Lean is really taking over the others now. No one even talks about XP anymore. And Lean, again, is basically a treatise in Value Theory: its central concern is what they call a VSM (value stream map). Kind of a stupid name, but what it is is the steps, elements, components required to produce value.
What do you see when you look around in programming today? I see a huge value theory crisis underway. One of the things Nietzsche argues is that values tend to erode naturally over time, and the people who are following them often lose their ability to a. understand their values, and b. remember their origins. I read the other day that Bob Lee said that what we have in the Java world is the ecosystem we have created around the language. Do we have that? I think Larry Ellison has that. Hudson would seem to indicate that he is the prince of JSF, JPA, etc. Do you care how long it takes to deploy your app? No one in the Java world did, until this past year. Do you care that the component model was a complete joke? That the platform doesn‘t support testing very well? The second release of JSF took what, 7 years? And it‘s not brimming with ambition (it‘s nice)... Go look at the distance between iOS 4 and 5 and those are like one year apart, or Xcode 4 and 4.2.
What I see is something that is very common in communities after a lot of time has passed: people are grasping for what they value. And they don‘t really know. In The Genealogy of Morals Nietzsche tries to explain how values not only get lost but end up actually believing in inverted versions of original values, and while so doing, they don‘t really even understand or remember the origins of their values. My next post is going to be about how the almost 10 year history of eclipse is a treatise in this process. One conclusion I‘ve already drawn is that one of the real problems is that the intelligentsia in the Java world have elongated the process of bringing their solutions to life, and that greatly increases the threat that these things will be born orphans.