Separating the View And the API

Thursday, August 14th, 2008

Assaf writes about using Hahlo and Fluid, and I find this paragraph especially interesting:

A great Web app uses persistent, readable URLs for every interesting resource. Twitter does that, so it’s pretty easy to share links to people, statuses and other points of interest. Hahlo hides the entire user interface behind a single URL, but it works extremely well because Hahlo is just a front end, Twitter is the system of record. If I need to link, I wouldn’t be using Hahlo links anyway (although link discovery is missing in the current version).

Perhaps this is a good way to both have the cake and eat it? Have a restful, share nothing API, which is accessed by a separate GUI app built in say Seaside that can use state as much as it wants.

Agile GUI Development

Sunday, November 6th, 2005

These days when almost every body is doing the agile thing, there is still one part of the software development process that is missing out - the design of the GUI.

Too often some snazzy web design studio is brought in, thumb rings and all, to produce mockups in Photoshop. These are then given to the programmers to implement to the last pixel.

I am sorry, but this is the waterfall process straight up. And it does not help that you implement it page by page or even component by component - that is just dividing the predefined work into smaller bits.

If you want to be truly agile, bring the usability people into the development process. Have them work iteratively as well in accordance to the stories being implemented, making paper prototypes the first round and refining in the coming iterations.

Now I can hear all the usability people go “But we need to see the whole picture”. That argument is what everybody has had when resisting the agile change. Remember, project leaders could not do agile development - how could they steer the project if they would not know where the project was going?

I have full faith in the usability community that they also can make the switch.