Monday, December 28, 2009

A great story about how social software enables innovation

When I reflect on what I did during 2009, one of the things that gives me most satisfaction is my involvement with the Status Updater project (also known as MicroBlogCentral). This is a really cool piece of software that I think will prove to be very popular. However, the story of how the software came about is even more interesting because it illustrates how social software can help unlock innovation and so I decided to write about it here.

My involvement in the project started when I was trying to come up with a project idea for Hackday 6.5 which was held in IBM Ireland back in June. At the time, I was just becoming familiar with the idea of micro-blogging and was feeling overwhelmed with all of the different places that were expecting me to regularly post an up to date "status message". It occurred to me that it would be very handy if I had a tool which would automatically post my status updates to all of the sites that were asking me "what are you doing now?".

I thought that it would be a cool Hackday project to implement a Notes/Sametime plugin to do this. At the same time I realized that it might be challenging to implement such a tool in a single day and so I posted the idea to the TeamBuilder page in the wiki to see if anyone would like to join my team. Someone saw my project proposal and told me about an existing tool called MicroBlogCentral (MBC for short) which did much of what I was proposing. It allowed users to update their status in Lotus Connections Profiles, Twitter and Sametime in a single simple UI. The tool also gave users a panel which summarizes recent activity in their Lotus Connections network. This had been developed as a hobby project by Jessica Wu Ramirez, so I contacted Jessica and she happily agreed to allow me use her tool as a starting base for my project.

Luckily the MBC code had been very well designed with extensibility in mind. Jessica had defined an eclipse extension point for the status updater interface - to add support for more services, I simply had to develop additional plugins that implemented this interface. During Hackday 6.5 I implemented instances of this service for a number of services that are used within IBM:
  • BlueTwit which is a service similar to Twitter which was developed by Ben Hardill in the IBM Hursley lab in England.
  • Fringe (also known as BluePages+1) which is a prototype of an enhanced corporate directory developed by the Almaden research lab in California. One of the enhancements in this service is the ability for employees to post a status message.
  • BeeHive (later renamed to SocialBlue) which is a social networking service limited to IBM employees which was developed by the Cambridge, Mass. research lab.
  • I also started work on a service to interface with Ping.FM so that we would have support for several external services in one plugin. However, I never got this plugin working properly.
I am not sure if I would have been able to complete anything if I was starting from scratch and I am fairly certain that if I was designing the UI it would have been much worse than the beautiful one that Jessica created. As I was doing this work, I restructured the build process such that the core feature only supported Lotus Connections and Sametime - support for all other services including Twitter is  now an optional install so that people who don't use these services won't have them cluttering up the UI. As a payback to Jessica for allowing me use her code, I added extensive comments to the code as I figured out how it worked (we felt that these comments would be useful if the code was ever published).

The updated MicroBlogCentral tool was well received within IBM. Since the people using it were by definition active users of social networking services, word about the tool spread rapidly. I personally was quite happy to use the tool because I felt it allowed me to avoid having to choose between being active in the BlueTwit communty or be active in the Lotus Connections service hosted on TAP. It also allowed me to begin using Twitter for the first time.

After a while, I began to notice that by helping me post status updates everywhere,  MBC wasn't really helping me engage in meaningful conversations. People were replying to my Tweets on Twitter and BlueTwit, but I wasn't seeing the replies because MBC only writes my updates to these platforms and doesn't read updates from other people. I discussed with Jessica the possibility of updating MBC to implement a two way interface to the additional services. Jessica was keen on the idea, but she cautioned that it would be a substantial piece of work.

We decided to post this as a potential project for Hackday 7 in October to see if anyone else was interested in helping out. At this stage MBC had become quite well known and so we were pleasantly surprised to get lots of volunteers offering to help out:
  • Emil Varga from Dublin, Ireland
  • Varun Sattigrahalli and Vinay Roy Thykkuttathil of India
  • Erika Flint from California
Myself and Jessica met with the new volunteers and agreed a project plan for Hackday 7. It is difficult to co-ordinate the work of several people on a project which needs to be completed in a single day, especially when with the exception of myself and Emil none of the people ever met each other.

Unfortunately, I was not able to help out on Hackday 7 itself because I was at the UKLUG conference in Edinburgh (ironically giving a talk about how the Hackday events encourage innovation). The team got on fine without me and completed all of their goals apart from the Facebook interface (maybe they got on better because I was not there to get in the way).

While I was at the UKLUG conference I naturally attended the Ketnote talk by Bob Picciano the General Manager of the Lotus Division. This talk covered all the useful features in the latest products from the Lotus brand. Bob was trying to explain how useful the Notes side-shelf plugins can be. What he said was: "For example, the first thing I do every morning is open the MicroBlogCentral plugin and check out the latest updates in my network. This really helps me get quickly up to date on what is happening". I was naturally delighted to hear such a high profile endorsement of the the MBC plugin. However, when we were reviewing afterwards how the talk had gone, Mary Beth Raven said that he should not have chosen an example plugin which was not available outside of IBM. Bob's response was "we should make this plugin available to our customers as soon as possible". I took this as a call to action.

When I got back home, I was delighted to find that the team had done a great job on the enhanced version of MBC (internally code named the Hackday 7 version) and the Hackday judging panel awarded the team the prize for "The Best Social Computing Application".

The team discussed a few possible mechanisms for making the plugin available outside of IBM before finally deciding to publish it via the OpenNTF organization. Publishing, via OpenNTF meant that we had to OpenSource the code under the Apache license. It was my first time to be so closely involved with releasing  a project Open Source license and I was a little surprised by how much work was involved (e.g. we had to replace all of the icons in the product and we had to rename it from trademarkable  MicroBlogCentral to the more descriptive Status Updater). Luckily Niklas Heidloff provided us with assitance to rapidly handle all of the steps and on 15th of December it was released by Niklas with a blog entry titled "OpenNTF Christmas Gift". Niklas' post has probably the best description of how to use the plugin (Hackers are not big on documentation).

This plugin has already started to attract many compliments. I am confident that the Lotus community will embrace this tool and it won't be long before we see people outside of IBM contributing extensions for their own favourite services which should make the tool more useful for everyone. Early in the new year we plan to publish and article on Developerworks which gives detailed instructions on how to do this (it is not hard - you could probably figure it out yourself by looking at the Twitter plugin we posted to OpenNTF).

I encourage you to download the code and try it out (IBM internal people install the plugins for the IBM internal services from the Hackday 7 update site). Even better, you could get involved in helping to improve it. In years to come you could be proudly telling your grandchildren that your were one of the first people to get involved in this famous project.

1 comment: