Recently we had the opportunity to demonstrate the quick deployment made possible by the Rails framework. We turned around an application for managing meet-ups within a few short days. This experience proved to be incredibly worthwhile and highly enjoyable.
With a mindmap to reference, we quickly set about building an application to manage the rsvps for a local meet-up in Brisbane, as well as keep track of the breakfast orders for that meet-up.
Our first roadblock was ensuring that the appraisals gem, which we use on a daily basis, could be utilised in this project. Up until this point the gem only supported Rails 4. Using this gem made the process to pull request relatively painless as well as providing valuable insight into how other gems enable Rails 4 support whilst still maintaining Rails 3 compatibility.
Due to the short time constraints on the project, decisions were often made without consultation, using only the initial mind map as a reference point. This proved to be both good and bad as it enabled quick development of a feature, but missed out on the valuable discussion around implementation details that can help shape a project from the ground up.
Regardless, the bare bones of the application was completed over a weekend and work began on fleshing out the existing features and polishing up the application.
As with all good Rails applications, tests ensured responsiveness to change and provided immediate feedback when developing new features. This was particularly important when some 11th hour structural changes around routing occurred. We had confidence in our ability to quickly make these changes without concerning ourselves with any flow on effects to the rest of the application.
Whilst I remained in the warm comforts of Rubymine focussing on the functionality, Rachelle and Sean worked hard on improving the UI and, more importantly, quickly ascertained areas of functionality that needed further work, or features that were missing. This gave the application some much needed usability also made a huge impact on how it was received by the group.
Thanks to some earlier tooling around our deployment process, this turned out to be the easiest part of the development cycle and was without using Heroku. This, in conjunction with Capistrano, ensured that as quickly as we were developing features and iterating through changes we were able to make them available on the UAT and production instances.
Throughout the development process, the focus was on creating a minimum viable product for the meet-up group and, whilst we continue to iterate on features and have some tidying to do within the application, we achieved a very short turn around and have provided the meet-up group with a way to manage and maintain their requirements for their monthly get-togethers.