How I handled a new code base

19. April 2012 One-Time 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.


1 thought on “How I handled a new code base”

  • 1
    jmarnold on April 19, 2012 Reply

    I appreciate you, Nate. Every person/team has their preferences for how to handle build scripts/infrastructure. I like that you kept an open mind and chose to learn our preference versus focusing your energy on debating whose approach is better.Other methods work great for other teams. Ours works great for us. Let’s spend our energy on more productive discussions or being productive, just like you have.

Leave a Reply

Your email address will not be published. Required fields are marked *