I've been spending a lot of time improving ScrumDo recently, unfortunately the rate at which we've been able to release new & updated features has been slowing.
The last major change we made was a great new search interface. What should have been a few days, maybe a week tops, took almost a month to complete. I was awfully bummed by that, so after we were done with that, I took a step back to try and figure out why that happened.
I've come to the conclusion that the way I've been developing web apps just isn't scalable for RIA's (Rich Internet Application). Haven't heard that term in a while, but Rich Internet Apps are what we're making these days. No more render page, click, render page, click render page. More and more logic is done browser side and trying to maintain the old paradigm of page loads is really hurting.
So, here's the new plan.
- Actually implement a REST API that works (https://github.com/ScrumDoLLC/ScrumDoAPIV2)
- Use that API
- Create a reusable client application infrastructure
When doing Flex development, I just do all that. There's no thinking about it, it's just the way it's done. I'm not sure why it wasn't obvious here. So my new technology stack looks something like this:
Django Piston for the API - Originally, we were using TastyPie, but I really prefer Piston's way of thinking about resources. There's less "magic" and more explicit definition.
For the client, I'm using Backbone, Underscore, Handlebars templates, and tying it all together with Coffeescript. To make the workflow efficient, we're using Grunt.js to manage all that.