Skip to content

Instantly share code, notes, and snippets.

@louisscruz
Last active June 30, 2017 00:54
Show Gist options
  • Save louisscruz/13214fec6f33b96bf483a042fabe2782 to your computer and use it in GitHub Desktop.
Save louisscruz/13214fec6f33b96bf483a042fabe2782 to your computer and use it in GitHub Desktop.
Update Rails

Rails 5 Update Proposal

What follows is a proposal to update our curriculum projects, homework, and assessments to Rails 5.

Purpose

There are several reasons why we should update to Rails 5.

Students Are Already Using It

Perhaps the biggest reason to switch is that students are already using Rails 5. The school's computers currently use Rails 5.0.4, meaning that the majority of students' work on the daily projects is in Rails 5. This has been a source of difficulty for both staff and students. Students are confused when their code does not return what the curriculum claims their code should return, and staff members have to be on the lookout for bugs and unexpected results that occur because of version mismatches.

Students Would Benefit From The New Technologies

Rails 5 brings about several technologies that would benefit students' work. Three such technologies that it introduces are api_mode, ActionCable, and ActiveJob. Students in job search often use these in their projects. It's likely beneficial for our students to be acquainted with Rails 5 before they get to job search.

Rails 5 Is Mature

Rails 5, released June 30, 2016, has been out for a year. Most of the minor bugs that previously could have swayed us from adopting Rails 5 have been addressed.

Update While The Cost Is Relatively Low

If we plan to continue using Rails as the backend framework in the curriculum, we'll likely want to update at some point in time. Right now, the cost of switching is not very high. Some classes/modules are renamed, and some features from Rails 4 have been moved into separate gems.

Duration of Project

The following estimates are liberal estimates of updating various portions of our curriculum to Rails 5.x.

In order to update the curriculum, we will need to update the projects, readings, homework, assessment preparation projects, assessments, and quizzes.

I estimate that it will take about 55 hours of work to switch everything over. What follows is a breakdown of my estimate.

Projects

It will probably take about an hour on average to properly update a project in our curriculum. There are 16 total projects to update, meaning it will likely take around 16 hours to update the projects.

Readings and Homework

Readings and homework should probably be delegated by day, since most of them will deal with similar aspects of Rails. I estimate that it will take 80 minutes on average to convert a given day's readings and homework to Rails 5. This means that it will take roughly 15 hours to update them all.

Assessments

It will probably take 3 hours to update both assessment preparation projects.

It will probably take about two hours to update each of the assessments. Being that there are 8 assessments to update, it will likely take 16 hours total.

Quizzes

It will likely take thirty minutes to update each of the quizzes. There are 11 quizzes, therefore it should take around 5.5 hours.

Logistics

One potential problem is that the Rails 5 update could be made much more difficult if it doesn't occur quickly. If we end up having to merge in simultaneous updates to the curriculum, we could end up playing a game of catch up.

What I propose is the following:

1. Get A Team Of People

I'm hoping that we can get 4+ people interested in working on this update. Jr. TA's are prime candidates for this sort of work. They have spare time, and they have all expressed interest in working on this project. All of them are more than capable of doing so.

With four people working four hours a week on this, we would be able to finish this in three and a half weeks, according to the estimate.

2. Provide A General Guide For Updating

I would provide a general guide for updating our projects, pointing out things to look for when working on the update.

3. Delegate Work

Each person working on the update would be assigned several projects. Each person would also be assigned several days of readings and homework.

Assessments would be delegated to the assessments team, and I would fix the quizzes.

Manifest

Projects

Readings and Homework

Additional Changes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment