How to hide parts of Ruby source code

Hi,

How can I hide parts of Ruby source code from another programmer
working on the same project? I plan to outsource development of parts
of my RoR web site to an overseas programmer. For example, I would
like him to work on only certain views, controllers or models, or
certain features such as the ability to login using a Facebook
account. I don’t want him to have all the source code of the web site
because I don’t want him to be able to clone the entire site easily
and operate it overseas. I am in the U.S. I am afraid that a non-
disclosure or non-compete agreement with him will be difficult and
expensive to enforce outside the U.S. under a developing country’s
legal system.

Ideally, I would like my overseas programmer to be able to check in
his code into Github and test his code against the whole web site
while not being able to see the source code of other parts of the web
site.

Thanks.

Vincent.

On Mar 11, 2011, at 4:06 PM, Vincent P wrote:

Hi,
How can I hide parts of Ruby source code from another programmer
working on the same project?

Ideally, don’t. It’s a lousy way of working. Understand the business
drivers, but it’s hard enough to work with developers that you trust.

That said, if you really have to, consider a web services based
application. You write back end web services but just provide developer
with stubs they can call for doing the UI. Or create separate silo’d
apps for different parts of the problem domain and only outsource the
commodity ones.

You could also ask the offshore dev to write a gem, writing them some
automated functional tests it needs to pass so you can both agree on
“done”.

You could also write gems and get the dev to write the app around them.
Then you just need to create a “stub” version of the gem that just
responds in a static manner to calls so you’re hiding your business
logic but providing something they can use to test the interface.

You could also get them to create a project and then you could just pull
elements from it and integrate them into your real project.

Understand that any of these approaches will have an overhead on your
side - I’d suggest re-evaluating working with someone you don’t trust as
the overhead and verification may be greater than just working with
someone you can trust (whether that means onshore or just someone
offshore you have a better relationship with).

Best Wishes,
Peter

If you’re using git and github, I believe adding files/directories to
your
.gitignore file should do what you want. It would hide a part of a
file,
however, but the entire file itself.

Thanks,
Culley

On Mar 11, 2011, at 4:13 PM, Culley Smith wrote:

If you’re using git and github, I believe adding files/directories to your
.gitignore file should do what you want. It would hide a part of a file, however,
but the entire file itself.

But then the tests and the app may not work. You’d have to think
carefully about not breaking automated testing - you’d also need to add
the appropriate test files to your gitignore.

But then of course you’re stuck with no version control on those files -
so now that I think about it, probably not a good idea.

Best Wishes,
Peter

Thanks Peter and Culley. What about something like RubyEncoder? If I
would like my overseas programmer to work on the views and controllers
(just the UI), can I encode all the model files and give them to him?
Will the automatic test scripts continue to work with the encoded
model files?

Using stubs for models sound good but does that mean I have to rewrite
lots of the integration testing scripts to accommodate for the fact
that the models are just stubs which do not return the results you
would expect from fully implemented models?

Thanks.

Sorry, I meant to say it would NOT hide part of a file, but the entire
file
itself.

CS

I am in the U.S. I am afraid that a non-disclosure or non-compete
agreement with him will be difficult and expensive to enforce outside
the
U.S. under a developing country’s legal system.

You could save you’re self a lot of hassle and just hire a worker in the
U.S. where you will be able to enforce the NDA and NCA. This route saves
you
an extremely cumbersome process of trying to constantly hide all your
code.
If you find someone in your own area/time zone it becomes easier to
coordinate with them on code check-ins. The cost difference is well
worth it
for the sleep at night you will gain because your fears will be at ease.

B.

We tried this whole offshore thing in the late 90s. and found that the
money saved on labor was more than eaten back up by longer production
schedules and additional layers of communication. Not worth it.

Walter

On Mar 11, 2011, at 5:25 PM, Walter Lee D. wrote:

We tried this whole offshore thing in the late 90s. and found that the money
saved on labor was more than eaten back up by longer production schedules and
additional layers of communication. Not worth it.

Been my experience too. Interestingly a number of manufacturers are
coming to the same conclusions - cost isn’t everything.

That said there are some awesome software engineers that don’t happen to
live in the US. The overhead of finding, mentoring and partnering with
them is non-trivial though.

For a good example, check out how ThoughtWorks integrates their Indian
offices with their US and UK teams. Long cross postings so the teams
really bond and work well with each other - seems like a great model,
but only if you’ve got the resources and need the team size to make it
viable. Can’t believe it’d be worth it if you only need 10-20 devs.

Best Wishes,
Peter

On 11 March 2011 21:06, Vincent P [email protected] wrote:

How can I hide parts of Ruby source code from another programmer
working on the same project? I plan to outsource development of parts
of my RoR web site to an overseas programmer. I don’t want him to
be able to clone the entire site easily and operate it overseas.

It would probably be better to hire a developer you trust.

I am afraid that a non-disclosure or non-compete agreement with him
will be difficult and expensive to enforce outside the U.S. under a developing
country’s
legal system.

“a developing country’s legal system” really?? That’s your angle? It’s
okay to take advantage of their cheap labour, but god forbid they
should try to take advantage of you?!
:-/

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs