As several technologies (Flash, Ajax, Flex, WPF/E…) have barely started vying for developers’ attention, it already seems from the AjaxWorld Conference in NYC that the interest level in building richer applications while complying with open standards is high. (Come on! Even Microsoft speakers were demonstrating ASP .NET AJAX on Ubuntu!)
With the extraordinary biodiversity of Ajax toolkits in this just-born ecosystem, this level of interest will necessarily drive the focus away from graphical user interfaces to more abstract questions on the business logic and data representations in such applications. And in typical Web 2.0 spirit these business logic and data architectures are no longer your good ol’ client-server tiers!
Should they run on your side, the User side, they should now be a complete part of the personal, custom, user experience, as easy to create, change, update, as posting to a blog or contributing to a wiki.
But wait, doesn’t this turn somewhat upside-down the common understanding about IT methodologies, models and code development? In an early 2007 post, Dion Hinchcliffe called “Product Development 2.0” the on-line business trend of “building highly competitive online products by turning over non-essential control to users directly via the Web“. But where do we draw the line between “non-essential” and “essential” control?
This is really a spectrum from completely open, emerging processes to centralized, authoritative, goal-driven planning—and everything in between. Development tools should accordingly accommodate such diverse, and possibly evolving over time, architectures of participation. In the design of the DreamFace Interactive Framework, we constantly kept in mind that frameworks are a class of tools geared at leveraging best practices and design patterns, while a declarative approach to business logics and data models goes a long way towards the adaptablility required by Product Development 2.0.