-
Get a monthly update on best practices for delivering successful software.
Achieving progressive enhancement at the view layer takes a lot of coordinated effort between server- and client-side developers. A lone UI developer can't make it happen without assistance and buy-in from the rest of the team. I'm not talking about selling the client or the business team. I'm talking about selling one's fellow developers.
I used to work for a giant company (Orbitz) with a large team of front-end developers and total organizational buy-in about accessibility and web standards. It took Orbitz years to get there, but once it did, progressive enhancement was the gospel.
Now I'm at Pathfinder, a smaller, agile shop with a large Ruby on Rails practice. Given all of Rails's built-in Ajax helpers, most Rails teams aren't used to separating the client-side behavior layer from the underlying, JavaScript-free web application. Progressive enhancement-style Ajax doesn't really take more work than normal Rails-style Ajax, but it does force a different style of application design - one that can't be imposed by the view-layer developers without assistance from the model/controller developers.
That's where pair programming comes in. I'm currently working on a Rails + jQuery project with some ambitious goals for cool UI widgetry and slick eye candy. Our approach for Iteration 1 went like this:
I think my Rails colleagues learned a bit about the progressive enhancement approach to Ajax. I definitely learned a bit about Ruby on Rails. But really, we were continuing to work from two separate conceptual domains.
Today we planned Iteration 2 and quickly resolved that our process next time around will go something like this:
Related posts:
Topics: Ajax, Javascript, Progressive Enhancement, rails, ruby, Web Standards
Way to go! That’s exactly how I feel it should be done. Not that a RoR programmer needs to know every single browser quirk, neither does a frontend developer have to know how to solve a complicated Active Record issue, but they both should have more than a general understanding of what the other person is doing and should be able to jump in on medium tasks. This leads to better code, more considerations on software design, accessibility and web standards, and also helps a lot if team members leave the team. Im sure your new workflow will be a huge success.
Comment by Andreas Stephan, Tuesday, June 24, 2008 @ 4:34 am