Power to the Users!
December 23rd, 2008 by James CarrI’ve been facing an interesting problem of late… I have an internal tool that is useful and used widely across an organization, with many users with many different needs. Boy… that sounds like EVERY application doesn’t it? Anyway, I’ve been struggling with a small problem… how do I cater to every users needs without cluttering the user interface with options that people don’t need 90% of the time? I could just provide different landing pages that provide different options, but that would still leave me with having to create and maintain all those special little views. Is it valuable to devote time to a small feature if only one (and ONLY one) person finds that feature useful?
So, I’ve been struggling with this small problem lately. And I’ve been thinking… why not just let the users define the features they need themselves? I dreamed the idea up while at the dentist today… what if the tool provided extension points that end users could realize via user defined scripts, somewhat like greasemonkey?
I’ve been toying with the idea of using Rhino on top of my struts2 application to expose certain aspects of my application to allow end users to provide functionality via javascript plugins. Users can upload plugins, published for everyone to use, and enable those plugins as they need them. Other users can then vote on their favorite plugins, so that a new user to the tool could enable whichever plugins they want… with the most useful plugins to the community at the top so they know whats good.
I really like this idea… I’ll write more about it (with examples) as I play with it!

