FILIve: Experience Driven Development and Contract First Development

SuAnne Hall and Ryan McGinty from Effective UI.

Contract-First Development

Overall, these two did a good job presenting a case study of a site redesign engagement their company recently completed.  If I’m remembering correctly (without the slides in hand), they were doing primarily the front end work.

SuAnne started out by explaining their approach.  They drove the requirements from the user experience perspective, back to the other layers of the application.  I’ve seen projects done in this manner, and oftentimes it can be very effective.  Here’s their reasoning on why it was appropriate in their case:

Why Experience Driven?

  • Ensures it makes sense to the user since it’s focusing on how the user will interact. (And it’s not good enough to guess at what the user wants: Gotta ask the users.)
  • Should result in a user-friendly good user experience moreso than an approach that comes at it from a different angle like the company’s internal business processes. Should be personal, engaging, contextual, communicative, simplifying.

Haha. They brought up photojojo and the “do not pull” handle.  Try it out. Gotta love mixing a little humor into a product.  Makes me love it!

Contract- first development

I found it interesting that Contract-first got a mention at this show, being that most of the time I’ve heard it discussed more in development circles.  However, it makes sense in their situation.  By pulling apart the components on the wireframes and defining contracts between the ui side and back end side, they were able to leverage the different groups working on the separate parts.  I’m trying to see how this would directly help in quite the same way in a group where the whole team were generalists and working interchangably on both front and back end, but I love having clear separation between layers.  Services can be a beautiful thing.

Next, Ryan showed an interface definition.  JSON in this case.  I believe they used JSON Schema to help define and possibly JSON hyper schema.  I haven’t played around with either, so add that to the list.

Ryan pointed out lots of MVC javascript libs that might be useful.  Angular, JQuery, Backbone, etc.  I’ll need to ponder those a little especially in the context of applications that aren’t a clean slate.  Websphere Commerce for instance.

One final takeaway I got from this was a reminder to focus on the error handling and edge cases ASAP in the process!  Good point, and one that I’ve violated more times that I’d want to admit.

Good presentation.

Advertisements