Close and Go BackBack to Viget

Outsourcing to Open-source

Ben Scofield
Ben Scofield, Development Director, September 24, 2007 0

Patrick gave the low-down on our full Europe experience, but I wanted to call special attention to one session in particular: Tobias Lütke‘s “Outsourcing to Open-source”.

Lütke is one of the driving forces behind Shopify, one of the oldest and largest Rails apps on the web. His company only has five employees, though, and so was faced with a challenge: how can such a small team accomplish all of the various tasks that needed to be done? In building a merchant platform, you’ve got internationalization to worry about, dozens (if not hundreds) of different payment gateways to integrate with, and the worry of letting your clients customize their storefronts, just to name a few things.

Shopify solved these problems by open-sourcing the relevant components of their application. End-user customization is allowed by Liquid, which they released to the community and were receiving patches for even before their product launched. For payment, they built and open-sourced ActiveMerchant, bundling a few gateways at the start and relying on others to integrate the rest of them as they were needed.

One of the more interesting outsourcings they did, however, was related to the ActiveMerchant documentation. Shopify is a Canadian company; all of the core documentation is in English. Furthermore, it gets updated fairly regularly, so translating it and keeping both (or all of the) versions up-to-date would be onerous. Instead, Shopify has a system for allowing the community to take over maintenance of the translated documentation. Each language has a progress bar, tracking the current state of the translation - French might be 100% complete, while Italian sits at 80% until someone finishes it up.

Whenever the core documentation is updated, all of those completion statuses are updated - the 100% numbers get reduced to 99%, and so on. As a result, the translation maintainers know that something new has happened, and can go back in quickly and update their version of the content.

It’s a win-win strategy - Shopify gets free development time, and the community gets useful tools - and I think that many small teams and companies would do well to consider it.

We're the Developers

at Viget Labs. We write about web development trends, tips, best practices, industry events, and our projects — all with an emphasis on Ruby on Rails.

Recent Comments

Tony,

I understand and agree that the back-end shouldn’t output code (html code), and only content. The templates (aka views) should do the trick, but instead of having lot’s of if/else conditionals inside the view, you may just output the following content.

No information available

The template would loop in an array and put all the <li>’s inside the <ul>.
I don’t see anything wrong, nor...