I've decided to become a Oakland A's fan.

I just
finished "reading" an
incredible book – Moneyball:
The art of winning an unfair game
. This book is about the Oakland
A's
, and how it's general manager, Billy Beane, has made the team successful in
a market place (major league baseball) that is supposedly substantially bias to the
big market, wealthy teams – of which the Oakland A’s are not. st1 ns = "urn:schemas-microsoft-com:office:smarttags" />For
example,

Oakland

generates about $50-60 million in revenue a year compared to the $100-300 million
generated by the big city
teams
. This makes it very hard for

Oakland

to bring in good players via the free agent hiring process and therefore should mean
that

Oakland

should not be a good team every year. However,
the opposite has happened – the

Oakland
"urn:schemas-microsoft-com:office:office" />
A’s have been one of the top teams in baseball for the last several years.

Ok,
I know what you are thinking, how good can a book about baseball be? Or that you don’t
even like baseball, so why would you read a book about it. Bottom
line, this book is less about baseball and more about the objective analysis of complex
systems. Billy Beane has decided to analyze
the world of baseball from a completely objective point of view by using the one thing
baseball has plenty of: raw statistics. Now,
there isn’t much revolutionary or amazing about that, in fact professional baseball
has been driven by statistics for more one hundred years. However,
Billy Beane and his team of mathematicians have found which stats are significant
and which are not. By doing so,
he has found a way to leverage the market inefficiencies of major league baseball
and keep his team winning even though his revenue restrictions would dictate that
is not possible.

The
most interesting element is that the book describes many of the techniques he has
discovered and how they work. Hence one
would assume that other teams would catch on quickly – however there is such an old
boy network in professional baseball that excepts a lot of tradition as “fact” and
don’t even believe objective statistical analyze when it slaps them in the face, this
is not the case. This has lead me to
think about a lot of the “facts” associated with software development, and question
whether we really objective analyze our way of doing things enough. For
example, we often use the traditional water fall project cycle at work… but is there
really any proof that this is the best way to develop database programming software
for the enterprise. We use it so often
that I believe a lot of people assume it is the best way to develop software or are
just so comfortable with this project cycle they accept it as fact.

 

Let’s
even go further and think about coding conventions. How
many coding idioms does one accept as “fact” without objective understanding of why
the idiom exists? For example, when I
was programming in C++ we knew that string management and manipulation could be very
expensive, so we used some semi-hacky techniques to avoid copying buffers, etc. However,
when moving to C#, System.String is
immutable – thereby forcing us to completely rethink how they handle strings. The
example is a fairly obvious case, and most C# developers have made this transition
– but I believe it illustrates my point. I
guess, bottom line it pays to have a strong technical knowledge of what is going on
when one uses a given programming language and/ or library and to objectively question
the existing “facts” associated with it. As
the entire software development industry moves up the abstraction ladder, this is
going to become much harder – if not impossible. And
to some low level developers, this has already happened.

In reality,
there is no way we could afford to completely objectively and exhaustively analyze
every element of software development… we would never ship anything. However
personally, I am going to strive to be better going forward about questioning what
really is fact and what is “tradition turned into fact” as much as I can get away
with… or forget about this software gig and try to become a general manager for a
major league baseball team and steal all of Billy Beane’s ideas.