Thursday, November 13, 2008

Innovation Game - " Buy a Feature ", Product Manager's Tool

Got a chance to attend SDForum event after a loooong time . Came across the session
on 'Buy a Feature ' game and attended the talk about emerging technology behind the game.

After listening to one of the fundoo techie Gurus, David Pollak, I am prompted to over come my inertia ( dust my blogs) and capture at least few points before they disappear from my small cache forever.

'Buy a Feature ' might prove a useful tool for Product Managers to manage priorities.
The technique used is collaborative prioritization. In simple words, the Prod Mgr requests the customers to play a small online game among themselves and prioritize the features they are looking for . Example , each customer is given 100 points and 5 features. The customers have to allocate the 100 points to the given features . Hence the customer will act judiciously and prioritize the features. This game could go iteratively and in the end all customers would come to see the group's priority on different features . They could discuss over chat , debate , collaborate etc in the process.

Not a bad idea . In fact the offline version of the Game was used by many reputed companies such as Qualcomm to drive their product road map. Now whether , this online version of the game will be accepted by serious customers is definitely a question ?

Takeaway is that this concept works - voting by a group , conducting elections , conducting referendums, students bidding for courses in univs. The same principle can be extended to business situations , but has to be applied with more discretion . Some businesses like Borland have even incorporated this online game into their development tools.

More such innovative games are from the stable of Luke Hohmann.

Coming to the technical side of the game, one feels there is hope as new open source projects spring up to solve current/emerging issues.
This game was developed using Scala (Language based on Functional and Oops concepts) and Lift ( web framework). Scala is used by Twitter now to solve performance issues esp the huge stateless concurrency headaches. Lift and Scala both leverage java libraries.

David Pollak was one of the developers of buyafeature game and is also one of the Lead developers for open source project Lift. Some of the Computer Science principles that he
he discussed ( Optimal keep-alive , long held web requests ) pertaining to
Nginx, Jetty and pertaining to Lift (state management machine) are mind boggling.
Instead of theoretical discussion, he could explain the concurrency improvements he gained in buyafeature game , esp in collaborative chat discussions.

Scala might come across as complex, elitist R & D language project and totally geek . But there's hope as the main stream is screaming for simplicity and I am sure the future versions will be geared towards simple syntax and programming constructs suitable for enterprise application developers
But for few developers now ( of Twitter etc ) struggling with scalability issues , the learning curve is worth the effort esp if one wishes to leverage the Lift framework for rapid development and high performance applications. Lift does most of the concurrency, state management plumbing, cross browser compatibility and integration with comet applications.

From wikipedia's definition of Comet. Comet is an umbrella term for technologies that attempt to eliminate both the limitations of the page-by-page model and traditional polling. Comet-like applications offer real-time interaction by relying on a persistent HTTP connection (or where not possible a long lasting HTTP connection) to provide the browser with updates as designated by the web application.

Some of the pending , nagging issues of Java, Spring, AJAX frameworks, Javascript libraries (dojo, prototype etc ) are taken up in Lift and solved elegantly . I feel both Scala and Lift have great potential only if they are refined for the masses.

I would encourage developers in Bay Area to check out Lift workshop on Nov 22, 08. The workshop will have a hands- on session on "Adding Real-time Chat " illustrating Lift and Comet concepts. All other developers, join the Lift community and check it out.