Does free work sound like a bottomless pit of time expenditure, with no chance of compensation? Have you ever wondered how to do pro bono work in a way that not only improves the world but helps out your bottom line? Our team just released some pro bono work for Vittana, which I think was time well spent. Below you can find out how it came about, why it was worthwhile, and read some lessons learned to improve the odds of success for your next pro bono project.

Discovering the project

When I ran into my friend Kenji at a mixer a couple weeks ago, it seemed like a usual incidence of our paths crossing, given that in one recent week we ran into each other 4 times at various tech events. Little did I know that the project I’m posting about now would be revealed. Kenji mentioned trying to raise awareness for Vittana as a means of making a difference, via a blogger challenge. For those not in the know, Vittana provides microloans to students in the developing world, and donors can choose how funds are distributed, as well as distribute funds each time students pay back their loans.

Over drinks, Kenji and I bounced around a bunch of ideas and eventually we came together with a plan to create a blogger challenge with a leaderboard sorted by tweets and dollars lent through the challenge. It took a bit of back and forth, but eventually we were ready to rock.

Working with Another Team: How we did it.

In order to keep the project from spiraling out of control we:

Defined Scope:I’ve talked with people who have done pro bono work, and one of the worst outcomes is ever expanding project scope, with no end in sight. To prevent this, we established some ground rules to keep it from getting out of hand. By the time that the contest started, we agreed that we would hand over the code, and give maintenance responsibilities to the Vittana team.

Established the Concept:Our first task was to establish the concept before any serious coding began. We wanted to create some background tasks that made Twitter API calls to search for number of retweets associated with a given blog post. To narrow the search down, we suggested using hashtags. A possible side bonus is that we could create a trending topic and create some buzz.

Minimized Reliance on the Vittana Team:To ensure we didn’t have to take a deep dive into their code base, the Vittana team gave us JSON feeds containing all of the necessary fields (including donation totals) for each of the bloggers. Given the nature of the work, we were able to have a quick pile on of a few developers, giving them a change of pace for a couple days, and then allowing them to move on cleanly.

Why did we do this?

First off, I’m always happy to make my friends look good and improve the chances of a successful project. Given that the Vittana team was already slammed, I saw a great way to help out a friend. I was also able to do some good for a cause that I care about personally and professionally. TangoSource trains developers in our locale to increase their odds of professional success after college.

We also have a few developers that we’ve been training and were just about ready for production quality code. I believe that real work is more interesting and effective in training junior developers. This seemed like a good opportunity to expose some guys to a real world project.

Finally, we were presented with a chance to expand our business. Despite being relatively young, Vittana has a strong brand with a lot of awareness, which was a chance for great exposure. The possible value for the TangoSource brand seemed significant. Here’s a screenshot of the link we were given on the contest page:


I also found out recently that the Vittana team is interested in discussing TangoSource doing paid work. This should not only provide us a means of growing the business, but also help us do good at the same time.

Lessons learned

1. Don’t rely on others to test your code.To a certain extent, we assumed that the other team would test our code on production. We ended up having to do some last minute patching that would have been more efficient if encountered earlier in the development cycle. Initial testing also exposed some places where the interaction design was broken on the admin side that would make further testing difficult, and we had to code out a much more involved administration panel. This was an affirmation of test early, test often, with a realistic scenario.
2. Remember to nail down the environment before writing a line of code.In this case, we assumed that Vittana was using the same database as what we were testing for in our local environment. That mistake was an fast way to waste a couple hours. Also, unit test your code regardless of the scope of the project. We wasted a fair amount of time on regression errors.
3. Whenever possible, try to limit scope in a way that’s win-win.It makes sense for the Vittana team to take ownership of our code. The more complex our product, the more work needed on their side. Also, since this was a new type of initiative, we were able to execute a lean exercise for them without too much investment for either party.
4. Networking is valuable but often in an intangible way.Deeper connections are more useful, but take work to find and cultivate. For me, this means meeting plenty of people to find those that I connect with. Afterwards, there’s the enjoyable investment of staying in touch, which helps create opportunities.
5. Genuine altruism is a great business strategy.You never know what might result from doing good. After starting work, I ran into the some of the Vittana leadership, who mentioned they might need some development help on future projects. This was confirmed in later communication, after they performed some code review.

Final results

With 90 hours of work total, I feel this was a worthwhile way to spend our time, even not including the chances to grow TangoSource’s business. From a purely utilitarian standpoint, this effort will probably pay out regardless. Subscribe to our blog to find out!

Stay tuned

During the course of the blogger challenge, check out Vittana Twitter and the leader board we helped create:
Be sure to spread the word to help fund students around the world.

Also, we’re planning on releasing a Rails gem that does the majority of the Twitter heavy lifting, so keep an eye on the TangoSource blog if you want help automating the tracking of tweets.