This spring I am attending the Software Factory Project. It’s part of the Facebook Open Academy program - a huge program where students from all the around the world make contributions to several open source projects. I am in the Ruby on Rails team. This blog documents my experiences during the project.
Now the first week is behind and we are progressing quite nicely. On first day we had an introduction session at the University where I met the rest of the team in Helsinki. In the following days we set up the development environment, got the tests running and installed a couple of tools to help with the development. After that we started familiarizing ourselves with the Rails source code by reading articles, watching screencasts and reading code.
What is Ruby on Rails?
Ruby on Rails is an open source web application framework that is intended for rapid app development. It’s written in Ruby and takes advantage of the Model-View-Controller software development pattern.
Ruby on Rails was created by David Heinemeier Hansson. Some of the other main contributors are: Jeremy Kemper - a programmer at basecamp, Aaron Patterson - a developer at Red Hat, and José Valim - the lead-developer of Plataformatec. The rest of the most important people are listed on the Ruby on Rails core members page. Just like one would expect from a large open source project, Rails has a lot of contributors - over 3700 of them!
The project has extensive documentation available. There are guides for beginners which also works as a great reference. An API documentation which clearly tells how all methods and classes are supposed to work. There are also screencast suggestions available at http://rubyonrails.org/screencasts/. What is more, the internet is full of tutorials, screencasts, and articles that cover all the possible things one could think of.
Our team
The Rails team has students from all over the world from ten different universities. We have 21 people working on the project with 4 people from the University of Helsinki. For communication we have a mailing list and we are going to use Campfire for online chatting. Everyone sent an introduction email to the mailing list so but we don’t know any more than that about each other.
Our local team consists of 4 people: me, Juho, Jussi, and Qian. This was really convenient for me since I have worked previously with Juho and Jussi on Rails projects. Qian also has some experience with Rails since she has participated in the Rails Girls program.
Mentoring us we have five Rails veterans: Matthew Draper, Aaron Patterson, Jeremy Kemper, Andrew White, and Eileen Uchitelle. What is more, Jeremy, Aaron and Andrew are on the Rails core team! They all seem to be great developers, so I am confident we can learn a lot from them.
In Helsinki, we have a Slack chatroom for internal communication. Most of our communication is probably going to happen face-to-face, though, as we are working all the time in the same room.
Thoughts
Rails is an important project so I am sure it has pretty high standards for code quality. Fortunately I know Ruby and Rails quite well so that shouldn’t be a problem. I probably should focus a bit in my collaboration skills, as I haven’t worked in such a large group before.
All in all, Ruby in Rails is a big project to work on and the project seems to be well organized. We experienced mentors so this should be a superb learning experience! I’m really excited to be part of this program and hope something useful comes out of it.