views:

60

answers:

2

I am thinking of outsourcing development of a Rails app to dispersed developers overseas. But I am concerned that I would be exposed to having the entire system stolen, with the stealee setting up a parallel SaaS service. Is it possible/practical to somehow split up the code or partition the app so no single developer gets access to all the code?

If so, how would this be done?

+2  A: 

I worked for a very large financial services firm that did exactly this. Because of how easily Rack allows several applications to work in concert, they simply used a service oriented architecture with different developers responsible for each service. Each service provided a REST API as it's interface that the other services use.

You have to keep in mind that you're adding overhead when you do this, but you're also adding some modularity as well. This approach has to be evaluated in the context of your business to judge its utility.

Also, if you need more flexibility/control/sharing between the apps than strict APIs, you might want to look at something like Pancake.

Joe Martinez
A: 

If you are able to architect the application in such a way that the various Controllers, Models and Views can be developed and tested independently, then sure, it's possible. I would venture to guess that it'd end up being so difficult and time-consuming that you'd start losing the benefits of outsourcing.

Adam Crossland