Not a surprise, and since a couple of years now, the RESTful architecture style promoted by Roy Fielding is more and more adopted by the community… and that make sense specifically in the domain of web-based applications and web-distributed applications. I will not emphasize the importance of REST in this post as (too?) many contributions have already been published by various experts.
However, for software companies who has already a range of existing products and solutions it is not always easy to bend their development roadmap to encompass the requirements of this architectural style. In fact the consequences and let’s name them, the “collateral damages” can be significant.
Although, REST for REST can be pointless if not supported by a real strategy and business benefits. At Nstein, our core offer is composed of 2 products (a web content management software and a digital asset management software) which leverage a powerful text-mining engine (what
CMS wire call our ‘
secret sauce‘).
And there we go: At the end of 2008 we decided to make sure that our offer will be 100% REST in the 6 months to come… and we did it!
From a management standpoint, I can see several reasons for this apparently easy success that I would like to share with you:
- First of all, WCM and DAM are products which, by nature, manage resource. Therefore a RESTful architectural style was a natural fit.
- The “RESTification” or our solution was a global project involving every actors in the company from the product development and QA to the implementation services, support and even marketing and sales. This global commitment was key to ensure a neat change management.
- REST was not the objective but the means! The means to improve our scalability and ease of deployment of course, but also another way to reinforce our global “user-centric” strategy.
- The R&D organization has been adjusted to better match this new challenge and ensure the most reactive but still effective work.
Actually, for this last two points (REST as means to support our objectives and new organization) we decided 5 month ago to create a dedicated UX/UI team in the R&D department to focus our efforts on usability and user experience in general.
And there you are: in the same way that you cannot expect from chiropodists to be experts in microsurgery (even if both of them are doctors) you should not expect that a programmer can be an expert in mathematics, database optimization, Java, C#, PHP, Python, Ruby, UI design, XHTML, CSS development, and
can even fix your computer! (even if sometimes my Neighbours or my Parents do believe that ;-)
This to say that IT people has different skills and poles of interests. However, most of those skills are required to release a whole user-friendly product. So, by intentionally splitting the responsibilities and development tasks between a “hard-core” team and an “UX/UI” team (and the REST design was the perfect excuse) we have focus on the best skills of each person.
The effect is that we have reached our global objectives in less than 4 months with quite satisfying benefits: As geeks were enjoying focusing on tuning, performance and scalability, the designers and UX/UI programmers were enjoying creating cool and dynamic AJAX-based interfaces…
The development team itself has moved from a product-based approach to a competence centers organization that not only fully leverages the talents but enables a real agility (as you have guess, ‘
Agile‘ is the development methodology we use and promote)
Thus, thanks to a combination of REST style, organization changes, strategy, willingness and several lines of code, Nstein provides a better than ever user experience while guarantying that our solutions will stay innovative, efficient and scalable.
So if you are designing web-based products and applications, do not rest until you are RESTful ;-) but be sure to include your architectural choice in a global strategy supported by those – too often forgotten - business benefits!