how to work in group?

hi, I've started developing websites with rails about 3 months ago, and now I need to work with for people at the same project. How can I do that?

first, I can't allow access of the entire code to everyone for security purpose; second, it seems to me that rails works in a very coupled way, I don't understand how I would be able to split the project in parts so I can delegate one part to each member of the team.

if anyone can help me with any tips or website that explains how I can work in groups I apreciate it.

thank you, Rodrigo

hi, I've started developing websites with rails about 3 months ago, and now I need to work with for people at the same project. How can I do that?

first, I can't allow access of the entire code to everyone for security purpose; second, it seems to me that rails works in a very coupled way, I don't understand how I would be able to split the project in parts so I can delegate one part to each member of the team.

if anyone can help me with any tips or website that explains how I can work in groups I apreciate it.

At the risk of sounding unhelpful, start by finding people you trust. If it's write access that is problematic, you could have them work on a fork of your project and pull changes from them when you're happy with them (similar to how a lot of open source projects work)

Fred

Thank you.

But still, my main problem is how to split things in a rails project so that a team can work on it instead of just one person.

hi, I’ve started developing websites with rails about 3 months ago,

and now I need to work with for people at the same project.

How can I do that?

first, I can’t allow access of the entire code to everyone for security purpose;

second, it seems to me that rails works in a very coupled way, I don’t

understand how I would be able to split the project in parts so I can

delegate one part to each member of the team.

if anyone can help me with any tips or website that explains how I can

work in groups I apreciate it.

At the risk of sounding unhelpful, start by finding people you trust.

If it’s write access that is problematic, you could have them work on

a fork of your project and pull changes from them when you’re happy

with them (similar to how a lot of open source projects work)

As well, even if you did give write access to the main repo, github allows you to easily see all changes made and you would have control to revert anything which is ‘bad’. As well, I am sure you are – make sure everyone is writing tests and no commits are made if a test is not passing. I think you will have an easier way of keeping in sync this way, assuming the others in the group are committing (and needing to pull) regularly.

I think the idea of splitting a rails project is problematic from the standpoint of dev’s being able to operate their environments as well as to regression test. I guess you could ask for classes and tests for them on an individual basis but that just seems impractical. End of day if you dont have trust in your devs, maybe you need to find others, or revise your policies… as well NDA’s are an option too if that is your concern.

Rodrigo,

take a look at "Distributed Workflow" section in Git Community Book: http://book.git-scm.com/3_distributed_workflows.html

It is assumed there however that everybody in your project has access to the full code.

Alexey.

It is possible to break up a Rails app (e.g. push bits of functionality out to gems/engines/etc.) but unless those bits of functionality are genuinely self-contained and well-defined then it's likely to be a hassle, and/or you'll end up having to do a bunch of speculative architecture design up-front. I would seriously consider whether it is worth this extra burden.

There was a similar thread on this topic a few months ago:

    Redirecting to Google Groups

Chris

Thank you everyone, and that link helped me with git.

Well, setting aside the code access concern, the other thing I wanted to know is how to work in a team with rails, and I mean, how should I split my project?

For example, one member will do the Controllers, other will do the Models, other will do the Views, one for Mailers, and one for Tests.

That is probably a wrong example, so thats what I need to know, how to explicitly split parts of my project for each one to work on. It seems to me that rails is like a one way straight coding, you can’t work on one part of the code without completing all the others that should come before.

I don’t know if I was very clear, so please give me some feedback if I wasn’t. If I was, thought, please give me answers =)

Thank you guys.

Ps.: Ruby (or Rails) community is awesome, every single question I’ve made was answered.

Thank you everyone, and that link helped me with git.

Well, setting aside the code access concern, the other thing I wanted to know is how to work in a team with rails, and I mean, how should I split my project?

For example, one member will do the Controllers, other will do the Models, other will do the Views, one for Mailers, and one for Tests.

That sounds really wrong to me. Splitting along vertical slices of functionality is normally how I do things

Fred

Thank you everyone, and that link helped me with git.

Well, setting aside the code access concern, the other thing I wanted to

know is how to work in a team with rails, and I mean, how should I split my

project?

For example, one member will do the Controllers, other will do the Models,

other will do the Views, one for Mailers, and one for Tests.

That sounds really wrong to me. Splitting along vertical slices of

functionality is normally how I do things

Definitely a recipe for disaster. Rodrigo, you might want to look at mountable engines here: http://railscasts.com/episodes/277-mountable-engines

This is one way to partition application functionality, where you add specific models + controllers + views as one mountable engine into a gem, which can be developed independently. So you could have one for accounting, one for sales management, one for production planning or whatever your poison is. You might also want to look into SOD (service oriented design), there is a good book about it here: http://www.amazon.com/Service-Oriented-Design-Rails-Addison-Wesley-Professional/dp/0321659368

In any case, and please take don’t take that in a negative way: I think you are over-complicating things unnecessarily. Adding security requirements in a workflow is necessary when you work for the DoD, but in 99.9% of the cases it is just a huge waste of time and makes your project a magnitude riskier. Don’t worry about people stealing your code, worry about finding and making customers happy. It is much much harder than any coding you will ever encounter in your life.

Define the features you want to add to your project; give one to each developer, who will then write the tests and write the code.

If you have a big enough or specialized enough team, you might have someone working specifically on refining views/CSS/graphics.

Regardless, free and direct communication amongst the development team members is absolutely critical.

Good luck!