How I handled a new code base

19. April 2012 Uncategorized 1

A month or two back I was checking out various validators for .NET.  I wasn’t doing MVC and didn’t want to try the workarounds to use Dat Model Validations, but at the same time, I didn’t really want to write a lot of validation code.

As I looked through NuGet to see what was out there, I saw one called FubuValidation. I was drawn to this, because I admire the guys doing the FubuMVC project (and Jeremy Miller is a Chiefs fan so you know it must be good code.)

I downloaded the code and realized one of the attributes I wanted (MinimumLength) was not there.  Thankfully it’s an OSS project on GitHub.  So I created a fork and set to work to add my new attribute.  I was excited because this was going to be my first ever Pull Request on an OSS and it was going to give me the attribute I needed.

I was instantly greeted with the fact that simply loading the solution into Visual Studio didn’t work.  There were missing files and assemblies.  I figured I just missed a couple files but couldn’t find them on GitHub.  As  I read and re-read the Readme, I noticed there was a rakefile, so I set out to get the necessary files to make the rakefile build.  Still no look.  I spent a couple hours trying to get the code to build, but couldn’t.

The next day, I reaced out to Jeremy and Josh Arnold on Twitter and asked them where I could ask some questions.  They directed me to their Google group, where I asked my question about building Fubu Validation.

Thankfully, those guys were able to get me up and running in now time. Turns out I needed a newer version of Ruby than what I had. 

I took a couple things out of this experience. First, it helps to be nice to the OSS guys. I didn’t go in “Guns blazing” complaining about needing Ruby, or telling them their code was broken. I asked a question, explained my situation and took their advice.

Secondly, I gave them the benefit of the doubt. That is, I assumed the project did normally build and run. I don’t always do this, sometimes I assume the worst, but in the end, it usually shows people that I’m a fool.  After all, what’s more likely, that an active project on GitHub (which is written by developers who are working on several projects) doesn’t actually build and run? Or that there’s a piece of information that I’m missing, either because of miscommunication, or because I ignored something?

I hope in the future that when I come to more new code bases, I’ll give those code bases the same benefit of the doubt that I did FubuValidation.