Week 9 - T'was the week before Echelon

So this was our last sprint before echelon2010 and it was a great week in that, Gameplan is taking shape nicely as something sports league managers can use quite effectively to manage their leagues. There are still a few rough edges, but it's very exciting to see the work we've put in over the last two months resulting in a demo-able product for the conference starting on Tuesday.

The Site Audit On Monday, Andy and I sat down to do an audit of the site. This was to make sure that we have the right flow while setting up an entire league from scratch, figuring out what parts of the site need Javascript/AJAX magic dust and figuring out what parts of the site need a CSS makeover. The results of the audit got translated into issues on GitHub and we worked independently on fixing them one-by-one. Since this required either mechanical work in terms of making sure all pages contained the right data or design work, we worked independently for most of the week and whittled down all our pending issues at great speed.

The Heroku Move and Continuous Integration We also spent some time setting up our app on Heroku. While the barebones site has been up for quite a while, this week was the first time we migrated all of our data on to Heroku as well. Not surprisingly, this gave us some issues because of the small differences between using PostgreSQL and SQLite. We fixed all of them and it was great to see our site live on Heroku in all its glory. This also strengthened our belief in the need for a Continuous Integration setup which mirrors the Heroku setup as closely as possible, since we want to catch these problems early, rather than just-before-we-push-a-feature-live. We've been experimenting with Integrity, but ran into some problems with it on Heroku (as far as I understand, it's not possible to run C.I. on private Git repositories with Integrity on Heroku) so would love to hear from you guys on what you use for C.I.

AJAX and Javascript Andy and I decided pretty early on that we were going to use JQuery for our site and not use the default Rails helpers (such as remote_form_for etc.) for AJAX, as they were not unobtrusive and we didn't want spaghetti Javascript littered all over our pretty site. Rails 3 promises unobtrusive Javascript along with drivers for all major Javascript libraries, and since we aren't on Rails 3 yet, a compromise measure was required.

Enter UJS We therefore decided to use jquery-ujs which follows semantics such as adding a data-remote class to your form, with jquery-ujs then binding to such forms and performing AJAX when submitted. The end result is an elegant unobtrusive solution, which will enable us to move quite easily to the Rails 3 helpers once we make the move over to the promised land.

We also added other Javascript niceties such as auto-generating permalinks while creating new competitions and Google Maps for venues.

Pairing We haven't been pairing as much as we did during the first few weeks, and while we've been able to maintain a brisk tempo while releasing features, the security blanket of another pair of eyes looking out for edge-cases is something that we've both missed and we're definitely going to be pairing a lot more once we re-start adding features to Gameplan.

Bring it On It's been a great ride so far and we're happy that we've been able to achieve what we set out to do two months ago. We're excited to take Gameplan to the next level and the next few months promise to bring even more excitement and fun.

We're also looking forward to having a great coupla days at echelon and if you're coming by, do drop by our exhibition booth.

Stats 32 issues closed on GitHub, 66 features in total leading to a current total of 3726 lines of code and 7031 lines of test code with a code-to-test ratio of 1:1.9. (Our code-to-test ratio dropped further because of the addition of more spidering scripts and more muscle in our views)

Posted by Andy Croll