Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

My friend and I have started to try to collaborate on some projects. For background, I come from a PHP/Wordpress/Drupal coding background, but recently I've become more experienced with the RoR framework, while he is more experienced as an HTML/CSS designer, working with PHP and WordPress.

We're both relatively new to RoR I think, and so we're trying to figure out our collaborative workflow, but we have no idea where to start.

For instance, we were trying to figure out how he could do some minor edits to the CSS file without having to do a full RoR deploy on his box. We still haven't figured out a solution, so I think it's best if we start to set some sort of workflow based on best practices.

I was wondering if you guys have any insight or links to articles/case studies regarding this topic?

share|improve this question

migrated from stackoverflow.com Jan 5 '12 at 3:32

This question came from our site for professional and enthusiast programmers.

add comment

4 Answers

I'm not familiar with RoR, but as far as git goes I would start with the Pro Git book: http://progit.org/book/ which is free online or you can order a copy.

Once you are both comfortable with git you can work together online through https://github.com/ (if you don't mind the code being public - or you can pay for private repositories).

Don't be scared of branches either, they are a great feature, make as many as you want since they don't duplicate code by having them around.

share|improve this answer
add comment

(before the question goes away) you'll need to setup Rails on his machine if you want him to work on the views in their native language (Haml, Erb, etc.) if you don't want to he'll have to work on pure HTML and you'll have to adapt everything he does (not recommended).

as for git, the most common approach is "topic branches" that is, use a new branch for each feature and merge everything to master.

share|improve this answer
add comment

Particularly if you're targeting Rails 3.1, he'll need to be able to run rails on his own machine because the asset pipeline produces all of your CSS and JavaScript from Sass and CoffeeScript source in app/assets. (You can still use regular CSS and JavaScript, but once your designer friend tries Sass, he'll never want to go back).

But a 'full rails deployment' for development is pretty straightforward:

  1. Install Ruby
  2. sudo gem install rails
  3. ????
  4. PROFIT

I would do this: generate the scaffold for a dummy resource just to have something to design against. Then you'll at least have some views for him to work with. He can get started on the styles, scripting, and layouts while you start building out the logic. Use Github Issues to keep track of who's working on what, and to reassign issues based on when things are ready for him to start creating the views. And as Samus_ mentioned, definitely use topic branches as you work, merging features back into master as they are completed.

Also, take a look at Haml. Every designer I've ever introduced to Haml wept openly for joy (slight exaggeration) because it's so much more elegant than HTML.

share|improve this answer
add comment

The designers need to run the stack, collaborate on the same codebase, commit to github, and in some cases do deployments on their own.

Really, it's not too hard, and the simplest solution is usually the best.

I'd avoid uses branches unless it's strictly necessary, keep it simple.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.