Outsourcing to Open-source
Ben Scofield, Former Viget
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.