Create Situational Applications with XWiki

Aug 26 2009

Clay Shirky's piece on Situated Software was an eye-opener to me when I first read it back in 2007. I was reminded of it a couple days ago while working on our internal CRM application.

We tried using vtiger CRM for a while but abandoned it since it did way more than we needed and, more importantly, wasn't integrated tightly enough with our intranet wiki. This is why we set out to build a simple internal CRM applications that met our needs a couple years ago.

Our CRM has accounts, projects, contacts and invoices. It gets populated automatically using data from the requests we get from our website. Having it on our intranet wiki is great since we get single sign-on, new accounts are displayed on the wiki homepage upon creation and we can create additional wiki pages as needed. Our current CRM by itself is an example of situated application even though it required some time to create and develop.

Fast-forward to today. Last week I had to reply to a number of enquiries and send matching purchase orders. Until now we used a standard OpenOffice template to create such documents. The drawbacks are obvious: we had to edit them locally before uploading them to the wiki and we couldn't visualize our Purchase Orders without opening a dedicated desktop application. We had to stick with OpenOffice for the quality of its PDF exports.

However since our upgrade to XWiki Enterprise 1.9 we benefit from a greatly improved PDF export. It's now good enough to generate commercial-grade documents such as... purchase orders :-)

Thus when I realized I'd have to write 3 orders the same day I quickly created a content template with the standard text of a typical purchase order. I also added a button to our project pages in order to make the creation of a Purchase Order for any given project very easy. Now all it takes to create a new order is to click a button, modify the template in a couple places, save it and export it!


That's a perfectly good example of a situational application: a simple application quickly designed by an end-user of the app to match a very specific need. The whole thing took me a couple hours (I also improved other parts of our CRM in the process) and yields immediate benefits. I iterated on my initial template a couple times until I was happy with the standard wording.

#lightboxproduct("XWikiEnterprise/Picture4.png" "A purchase order" "~Click the image to view a bigger size.~") 

The result is a simple application that provides great value to our sales team at a minimal cost. You too can start creating your own situational applications. Simply download XWiki and get started!