Sunday, April 27, 2008

Mining Twitter for the Enterprise: Survey your Customers' Candid Thoughts using a Social Web 2.0 Service

One BEA customer recently posted on Twitter: "hating weblogic". Another said: "F@#% you weblogic for not handling HTTP 500 errors properly."

Whether you personally participate in one of the numerous internet social platforms or not, some of your customers are out there. WebLogic isn't the only brand being discussed - name the brand and there are customers voicing their opinions on these platforms.

This blog entry focuses on Twitter, and shows how you can mine Twitter for feedback on your brand using a tool called TweetScan. Because of the very informal nature of Twitter, and it's low barrier to participate, it is a good channel of candid opinions on your brand. Companies like Comcast have already used TweetScan to identify and remedy customer relationship problems in a highly proactive manner. How is your brand perceived on Twitter?

 NOTE: this blog entry was originally posted April 27th, 2008 on my previous blogging system (dev2dev.bea.com).

What is Twitter?

Twitter is a service that allows you to publicly post messages in small doses - 140 characters or less. The basic idea is to answer the question What are you doing? but you can use those 140 characters to say whatever you want.

While blogs are a great source of public opinion, they tend to be more filtered because they require more effort to produce. Twitter lowers the barrier to post dramatically, and therefore is a better medium for capturing those minor annoyances and random thoughts we all have throughout our day. There is also less of a imperative to post something interesting - your readers only need to invest the time to read 140 characters and not paragraphs of a blog entry.

 

Me and Twitter

I am a reluctant poster to Twitter. Do people really care that I just ate dinner or that I am about to watch a movie? Not really, apparently, as I don't have too many followers. Granted, I haven't been at it that long, but is this time well spent?

Is participating in Twitter worth your time?

I really don't know, and certainly am not an expert. But I suspect it depends on how you view Twitter specifically, or the other social platforms in general. Are you using it to get something done, improve your social life, for pure entertainment, or what.

Sarah Perez  talks through the issue in her blog Real People Don't Have Time for Social Media, and an e-consultancy article "Social media's inconvenient truth" expands on it.

   "But there's an inconvenient truth that proponents of these sites tend to ignore - the average person just doesn't have the ability to participate fully in social media."

 

TweetScan - Improving the Signal to Noise Ratio for Observers

The silver lining is you don't have to participate to acquire great value from these social computing tools. Lots of people are using Twitter as a medium for publishing their unfiltered thoughts. As simply an observer, you can use these platforms to great advantage. But how?

A problem that cannot be ignored is the amount of noise on these platforms. While Twitter is a wealth of information on customers' opinions and comments, much of this is chaff - "sitting on toilet listening to lily Allen". But buried within the mountain of irrelevance are some nuggets of useful information - "Angry at BEA. Why doesn't WebLogic play nice in OSGi?".

With just plain old Twitter, its impossible to separate the crud from the gold. TweetScan is the solution - it is a search engine built on top of Twitter to help you find the diamonds in the rough, especially when you are focused on a searchable keyword like your product brand.

image

 

Monitoring your Customer's View of your Brand

Savvy marketing and customer relationship people have started to take advantage of TweetScan to help manage their PR and to capture raw customer data. Michael Arrington's adventure with Comcast is the most famous.

Michael Arrington was having trouble with his Comcast internet account. Calls to their service center didn't provide a relief, and so he fired off some Twitter posts in anger. Being who he is, others picked up on this and triggered a fire storm of net activity. Then something wonderful happened:

"And this brings me to the point of this post. Within 20 minutes of my first Twitter message I got a call from a Comcast executive in Philadelphia who wanted to know how he could help. He said he monitors Twitter and blogs to get an understanding of what people are saying about Comcast, and so he saw the discussion break out around my messages."

As far as PR and customer relationships go, this is a fantastic show of force by Comcast. But not everyone who posts to Twitter is a famous net personality like Michael. It is fair to assume that Comcast cannot afford to provide the same level of response to the average joes out there. At least one on one. Instead, Comcast can monitor the Twitter channel and detect general patterns in service problems. Michael sums up how this can benefit Comcast (and its customers):

"Well before most people they have identified blogs, and particularly Twitter, as an excellent early warning system to flag possible brand implosions."

A few more references to using Twitter like this:

  • Blip.TV - Blip.TV used TweetScan to eavesdrop on its customers and detected and resolved a service problem using this approach.
  • Using Twitter as a Research Tool - Krishna De talks about using Twitter derived information for research.

 

WebLogic on TweetScan

The brand I care about is WebLogic. As an architect on WebLogic Portal, I am heavily invested in this brand. Up until now, the primary way we received feedback on the product have been these channels:

  • Monitoring the WebLogic newsgroups
  • Customer support cases
  • Direct interactions with customers

All of these have been effective, but it is interesting to see how TweetScan can provide a new channel for feedback. Here are some selected entries in the current search for "weblogic" on TweetScan, with a focus on the negative posts:

We see negative comments on the newsgroups. But these Twitter posts are far more unfiltered and more of the flavor "how do you feel about weblogic", as opposed to the newsgroups/support cases which are "what is not working for you with weblogic". Now, most Twitter posts by definition don't have nearly enough information to really understand the underlying issue. But you get a flavor of what your customers are feeling, and you can always follow up for clarification by asking the user to clarify offline.

And to be clear, this list is fairly typical of ANY brand you search on. Pick a brand, and do the search, and you find a litany of complaints and negative comments. This is normal. Check your pride at the door before searching on your brand. Twitter posts on brands usually err on the side of being flames, not praises.

 

Comments from original blog:
  • Jott - looks useful. Notice they have a "custom service" capability where you can give it a server URL to HTTP POST the messages to, instead of predefined endpoint like Twitter. I love open systems.

    Posted by: plaird on April 30, 2008 at 10:39 AM

  • Excellent post, Peter, on an important topic.

    As people become increasingly frustrated with voice mail systems and email auto-responders when trying to report problems to companies, tools like blogs and Twitter will become the means by which honked-off customers express their frustrations. That trend will grow, and with it the need for companies to get proactive, pay attention, and track these sites and services in order to manage customer satisfaction and public relations.

    BTW: In conjunction with Twitter, I also use Jott, a free service that transcribes voice messages to text, and pushes those messages out to my Twitter account, or to one of my blogs, or directly to an email to a contact -- all based on how I configure the service. Cool stuff: I just dial the Jott number, use voice commands to select the message destination, then recite my message. Unless there's a lot of background noise, the transcription is pretty good, and it's a lot easier and faster (for me, anyway) than trying to type a Twitter post on a tiny cellphone keypad.

    Posted by: brhubart on April 29, 2008 at 1:38 PM

  • Someone asked offline what my twitter handle is so they can follow me:

    Follow: plaird

    Posted by: plaird on April 28, 2008 at 8:41 AM

  • I am no Michael Arington - by any stretch of the imagination. I'm just a guy. Last week I had a similar experience with twitter based support from SlideShare. The best thing is I sent out just 1 twitter message in frustration and within 10 minutes, 2 employees of SlideShare contacted me via twitter to give me the low down on the problem I was having. I blogged the story under How Twitter-Enabled Customer Support Saved the Day. I was completely blown away and felt much more special than my individual status really warranted. Extremly powerful use of technology. Dennis Stevenson blogs.ittoolbox.com/cio/origina-thinking

    Posted by: denthewise on April 27, 2008 at 8:52 PM

Thursday, April 24, 2008

SaaS Podcast Links and Notes - Key Insights into the World of SaaS, Platform as a Service (PAAS), On Demand

About two months ago I had 14 hours to spend alone in a car - I was meeting some friends out in Telluride and decided to drive it from my home near Boulder Colorado. Fortunately, I prepared myself. I stocked up on a collection of tech podcasts and made productive use of the time as I rolled through the beautiful mountains. Because I am the architect for BEA's SaaS Platform (code name Genesis), a fair number of the podcasts were focused on SaaS. This blog entry recaps the key insights from some of those SaaS podcasts. Links are provided to the original audio.

NOTE: this blog entry was originally posted April 24th, 2008 on my previous blogging system (dev2dev.bea.com).

SaaS at BEA

For those that know me as an architect on WebLogic Portal, this blog entry may seem odd. What does SaaS have to do with WLP, or even BEA?

The answer is I took on responsibility for the BEA SaaS Platform architecture a few months back and have been hard at work defining that (and not blogging, if you notice the gap in posts). The idea at BEA is to provide a platform for building SaaS applications that includes features like metering and billing, multi-tenancy, and cloud provisioning.

If you pay attention to the space, you will notice that 2008 appears to be the year of Platform as a Service (PAAS). Perhaps I will explain what is going on with that in a future blog entry. This post is focused on podcasts. For those of you are interested in learning about SaaS, I have provided links to podcasts that I found very helpful in understanding the business of SaaS.

 

The Podcasts

Here is the collection of podcasts that I would recommend.

 

Podcast Title SaaS is Mainstream
Podcast Participants Jeff Kaplan (THINKStrategies), Paul Gillin
Podcast Series SaaSAdvantage Series, SaaSCon
Podcast Link  SaaSAdvantage #1

Podcast Notes:

  • Compliance/security issues were expected to prevent the adoption of SaaS, but are actually helping.
  • SaaS vendors are savvy on compliance, and implement it as well/better than IT can.
  • SaaS vendors have been certified on compliance standards such as SAS-70.

Further Reading:

 

Podcast Title Living in a SaaS World
Podcast Participants Mitchell Ashley, Jeff Kaplan
Podcast Series Converging on Microsoft, NetworkWorld
Podcast Link  SaaS Podcast

Podcast Notes:

  • SaaS and IT
    • SaaS growing faster than Gartner thinks, because Gartner just interviews IT.
    • A fair amount of SaaS is sponsored directly by the business, outside of IT.
    • However, more SaaS solutions are now targeting IT instead of trying to work around IT
  • Microsoft SaaS Strategy
    • They are very cautious, so much to lose
    • Microsoft Live solution is an experiment
    • They can’t alienate their all important VAR sales channel
  • Channel sales and Offering SaaS products
    • Role of the sales channel changes
    • Historically have helped to implement complexity
    • SaaS removes complexity
    • Channel partners must evolve into advisors, not just implementors
  • Business buyers of SaaS are trying to figure out the sourcing model for apps
    • Outsourcing is changing from major deals (outsourcing entire IT dept) to focused SaaS deals
    • “Outtasking” more appropriate name for this

Further Reading:

 

Podcast Title What is Saas (Part II)
Podcast Participants Jeff Kaplan
Podcast Series WhatIs.com
Podcast Link  WhatIs Podcast

Podcast Notes:

  • Industry is ready for SaaS
    • Cost conscious, especially now with possible recession in the US
    • Outsourcing of IT functions is now a proven model
    • Internet bandwidth is in place to support this (to the office, home)
    • 75% of IT budget locked in maintenance, not a successful model
    • TCO is proven to be lower with SaaS
  • How ISVs need to adapt when selling a SaaS solution:
    • Technology – must adopt web application model for delivering product
    • Revenue model – subscription model requires longer time to receive revenue
    • Must continually invest in the relationship – not a one time sale
    • Lower switching costs mean more competitive market

Further Reading:

 

Podcast Title Lecayla Session
Podcast Participants Conor Halpin, Jeff Kaplan
Podcast Series Spotlight on SaaS, THINKStrategies
Podcast Link  Lecayla Podcast

Podcast Notes:

  • Per user pricing is the obvious, but is not a totally effective billing model
    • Easy to turn into a compete-on-price model with competitors
      • If the other guy charges $20 less per user, it's too easy for the customer to focus on that.
    • All users are not equal, some will use the system every day, some twice a year
    • Key is to bill based on added value – transactional events
    • One of Lecayla’s tenants offers a hybrid model to their customers
      • User based for frequent users
      • Transaction based for infrequent users
  • Vendors with existing perpetual license products are afraid of cannibalization
    • Can avoid by pricing based on type of usage as well as transactional
    • Example: BI vendors make a ton of money off of end of quarter financial roll ups
      • Low transaction volume, but high value transactions and very time sensitive
      • Priced out of low end markets that are high transaction volume, low value per transaction
      • Can continue on-premise model for former, SaaS for the latter
    • Enforce through contract

Further Reading:

 

Podcast Title Understanding SaaS Architecture
Podcast Participants Gianpaolo Carraro, Fred Chong (MSFT),
Paul Gillin
Podcast Series SaaSAdvantage Series, SaaSCon
Podcast Link  SaasAdvantage Podcast #8

Podcast Notes:

  • SaaS barrier: Loss of control
    • Lack of workarounds if the software doesn’t provide what you need
      • Cannot just query the DB
    • Ops and SLAs are in the hands of the SaaS vendor
    • Internet connections aren’t as reliable as LAN
  • SLA issues
    • Outages
    • Data security
    • Termination terms – how to extract the data
    • Compliance issues
    • Response times, backups

Further Reading:

 

Podcast Title Understanding SaaS Architecture
Podcast Participants Colleen Smith (Progress Software), Dana Gardner
Podcast Series Briefings Direct  (Interarbor)
Podcast Link  Progress Podcast

Podcast Notes:

  • Business Implications of SAAS Software
    • Cash flow
    • Down market opportunities (long tail)
    • SMB opportunities
  • ASP vs. SAAS
    • ASP was all about hosting
    • ASPs did not manage application
    • No multi-tenancy with ASPs
    • ASPs had no application expertise
  • Why time is right for SaaS
    • Cost of computing is low – web browser is the distribution
    • Long tail is reachable – new Geos, adjacent markets, low end
    • Computing clouds
  • Business Service Providers
    • Combination of SOA and SAAS
    • BSP provides an end to end service
    • Vertically focused

 

Podcast Title Software as a Service and IBM
Podcast Participants Dave Mitchell (IBM), Scott Laningham
Podcast Series IBM developerWorks
Podcast Link  Mitchell Podcast

Podcast Notes:

  • What is SaaS?
    • SAAS is all about transfer of risk to the ISV
    • SAAS implies a subscription model/pay as you go
    • SAAS is served remotely, with little/no option to bring back in house
  • What is ASP?
    • Software is purchased up front by the customer, not a subscription
    • Hosted remotely, but can be brought back in house
  • Ajax/RIA is enabling more applications to become SaaS
    • SaaS requires a web application
    • RIA/Ajax allows more applications to become viable as web applications

 

Wednesday, April 23, 2008

WebLogic Portal: Exposing Portlets (JSR 168, WSRP, JSF, Struts, etc) as Enterprise Google Gadgets

Wondering how to expose Google Gadgets from WebLogic Portal? As promised, this is the second entry in a two part series talking about Google Gadgets. The first entry explained how to build a simple gadget. Now we will explore how to surface a Java portlet as a gadget using WebLogic Portal. Exposing a Google Gadget from any WLP portlet type (JSR 168, WSRP, JSP, Pageflow, JSF, Web Clip, etc) requires no coding - just a simple XML configuration file. This blog entry will show you exactly how to do it.

NOTE: this blog entry was originally posted April 23rd, 2008 on my previous blogging system (dev2dev.bea.com).

History of the Integration

As I mentioned in the first posting we have been doing demos of WLP portlets as Google Gadgets for a long time - since the second half of 2006 with our WLP 9.2 release. This was all possible because of a feature introduced in that release called Portlet Publishing. Portlet Publishing allows any WLP hosted portlet to be exposed as a URL. If you understand the basics of Google Gadgets, you can hopefully see how this feature can be used to turn any portlet into a gadget simply by referencing that portlet's URL in the gadget descriptor.

Early demos used a servlet to dynamically generate the appropriate Google Gadget descriptor on the fly. We even experimented with clever hacks to enable Single Sign On between iGoogle and WLP. We worked with the Google Gadget engineering team to explore ideas in this area.

But in the end we decided not to productize the integration. This is due in large part because authoring the Google Gadget descriptor for a portlet is quite easy, and therefore an official feature wouldn't add tremendous value. Additionally, we were concerned about the supportability of such a feature, for example what would happen if the descriptor format changed. Also, the explorations around authentication were not enterprise quality approaches, and so not something we wanted to promote.

Therefore, at this time WLP does not offer a "Generate Google Gadget..." option in the IDE, or provide any other specific feature. However, as this blog entry will show, using the FULLY supported feature of Portlet Publishing, you can expose your portlets as gadgets with NO CODING required.

Portlet Publishing

Before we can talk about generating a Google Gadget, we need to take a look at Portlet Publishing. Once again, this feature exposes any WLP hosted portlet as a URL - an HTTP addressable end-point. The power of this feature is that any thing that can consume an HTTP end-point (e.g., an IFrame within any webpage) can be host to a WLP portlet. It is important to note that Portlet Publishing works for all WLP portlet types, like JSR 168, WSRP, JSF, Struts, Web Clipper, etc.

This means that with a single deployment of your portlet on WLP, it can be used over the following channels simultaneously:

  • Directly embedded in a standard WLP portal/desktop
  • Directly embedded in any JSP hosted on the WLP server (see the portalFacet JSP tag)
  • Federated to external WSRP consumers (WSRP is a web services standard for consuming remote portlets)
  • Federated to any consumer of HTTP, notably browsers via IFrames and XmlHttpRequests (which means ANY website on the planet)

image

In WLP 9.2 and WLP 10, Portlet Publishing was limited to the library instances of portlets. This meant user preferences were not supported through the HTTP channel. However, with WLP 10.2, Portlet Publishing has been augmented to allow for Desktop Instances (and thus user preferences) to be exposed over the HTTP channel. Consult the documentation for more details on this point.

To consume portlets published over the HTTP channel in any web page, you can inject the portlet into the HTML using one of these techniques:

  • An inline frame (iframe) that points to the URL to the portlet
  • DOM Injection - using simple JavaScript that WLP provides, you can dynamically inject the portlet into the page using Ajax (XmlHttpRequest)

Once again, consult the documentation for more details on these points.

Exposing your WLP Portlet as a Google Gadget

You have hopefully read my previous blog entry on how to build a simple Google Gadget. This section builds on that knowledge. Essentially, we will author a Google Gadget descriptor that points at a WLP portlet exposed over HTTP (via Portlet Publishing).

To make this entry as simple as possible, we will use the library definition form of the Portlet Publishing URL. For example, assume you have a portlet that is exposed at this URL:

http://wlp.bea.com/dvt/portlets/wlp/stackWLP.portlet

If you are unfamiliar with WLP, the .portlet file is a file based XML document that describes a portlet's meta data. In this case, it has been deployed in the portlets/wlp directory of the dvt webapp. When directly addressed, Portlet Publishing kicks in and serves up the portlet implementation associated with this .portlet file (this is the library definition approach to publishing).

You can now easily author a gadget descriptor that targets that URL, and thus exposes that portlet as a Google Gadget:

<?xml version="1.0" encoding="UTF-8" ?>

  <Module>

<ModulePrefs

title="WLP Portlet Gadget"

height="120"

author="Peter Laird"

  />

  <Content href="http://wlp.bea.com/dvt/portlets/wlp/stackWLP.portlet" type="url" />

</Module>

Copy this gadget descriptor to a public web server, and then add this gadget to your iGoogle portal as I showed in my previous post. And Presto!

The Fine Print

Some details to think about:

Titlebars: WLP will by default render a titlebar to the portlet, and so will iGoogle. To avoid nested titlebars, use the "light" decoration option with Portlet Publishing desktop portlet instances.

Authentication: if you have a cookie based web SSO solution in place, your users will automatically be logged into the WLP server even when the user navigates to iGoogle (by virtue of how iframes work). In other circumstances, you will need to provide a login screen within the portlet.

image Add to Google button: it is often nice to have an "Add to Google" button on the portlet. This is easily done by just copying the URL pattern seen on other sites that provide such a button. You will essentially need to embed the URL to your gadget descriptor into the button link.

Preferences: you will need to decide what to do with preferences. WLP manages preferences on the server side. If your portlet is exposed over multiple channels, stick with that. However, if the portlet will ONLY be consumed as a Google Gadget, you may consider using the Google provided preference service.

JavaScript Libraries: Google provides a number of JavaScript libraries for Gadget developers. When developing a portlet that will only be exposed as a gadget, feel free to use these. However, if the portlet will be exposed over multiple channels (like on a WLP desktop), be aware that none of the Google libraries have been certified within WLP.

References

 

Tuesday, April 22, 2008

Introduction to Google Gadgets

We have been showing how to expose WebLogic Portal portlets as Google Gadgets for almost two years now. Embarrassingly enough, we haven't written any blogs or articles on HOW to do it. We have answered email questions about it, but nothing public. This two part blog series will correct that omission. You will hopefully see that it is really quite simple to do. This first entry will talk about building a generic Google Gadget (without WLP), and then the following entry will show how to convert any WLP portlet into a gadget.

NOTE: this blog entry was originally posted April 22nd, 2008 on my previous blogging system (dev2dev.bea.com).

What are Google Gadgets, and iGoogle, please?

Google Gadgets are web based widgets/portlets/[insert your favorite web component term here] that are based on technology provided by Google specifically to make federating gadgets easy. To see gadgets in action, the best place to try them out is on the iGoogle portal.

Gadgets can really do anything. This example shows an eBay integrated gadget that allows a user to interact with their eBay account within the gadget:

image

The technology provided by Google can be lumped into these buckets

  • An xml file format for describing a gadget (called the descriptor)
  • A gadget preferences model - for storing user specific preferences for a gadget external to the gadget implementation
  • Various JavaScript libraries for doing useful things
  • An online directory of pre-built gadgets
  • iGoogle - the reference platform for users to use gadgets
  • Google Gadgets for your Webpage - a JavaScript mechanism for including a gadget on ANY web page

Several things are notably missing from what Google provides with regard to gadgets

  • Gadget hosting - aside from a few official Google gadgets, all the gadgets are hosted independently by their creators
  • Gadget validation - treat every gadget with suspicion; even though it is flying the colors of a well known brand it may be hosted by a guy in a basement.
  • Authentication - there is no provided mechanism for gadgets to inherit authentication from the consuming page, notably no single sign on with iGoogle

Finally, note that there is another gadget technology offered by Google called Desktop Gadgets. There gadgets are targeted toward Google Desktop, and aren't related to the gadgets we are discussing.

The Google Gadget Phenomenon - why should you even care?

Google Gadgets and iGoogle were the fastest growing product offered by Google in 2006 and had strong growth again in 2007

“The star performer for [2007] was Google’s personalized start page service iGoogle which increased traffic in the 12 months to November by 267.64%.” (TechCrunch)

Useful Gadgets get heavily used:

“The Google gadget ecosystem received 960 million pageviews last week” (Niall Kennedy)

These metrics are largely based on use of gadgets and iGoogle in the consumer space. But consider how your enterprise can benefit from deploying Google Gadgets:

  • A new channel to your customers within iGoogle
  • Offered as a widget to your customers to place on their own web pages
  • A new channel to your partners/employees within iGoogle

Building a Simple Google Gadget - as easy as falling off a bike?

This section discusses the express route to building a gadget. Steps to build:

  1. Create a gadget implementation, which is nothing more than an HTML document served from a public web server.
  2. Create a gadget XML descriptor, that refers to the gadget implementation.
  3. Add the gadget to iGoogle.

Step 1: Create the Gadget Implementation

Save this HTML into a file on a public web server.

<html>

<body>

Hello World.

</body>

</html>

Step 2: Create the Gadget Descriptor

Save this XML into a file on a public web server (I have also hosted one publicly here for now: http://wlp.bea.com/blogs/simplestGadget.xml). You will need to update the href included in the body to the URL to your HTML document created by step 1.

<?xml version="1.0" encoding="UTF-8" ?>

<Module>

<ModulePrefs

title="Simplest Gadget"

directory_title="Simplest Gadget"

title_url="http://wlp.bea.com"

description="Very very simple gadget."

height="120"

author="Peter Laird"

/>

<Content href="http://wlp.bea.com/blogs/simplest.html" type="url" />

</Module>

Step 3: Add the gadget to iGoogle

Login to iGoogle, and then click the Add Stuff link, and then Add Feed or Gadget link. Provide the URL to the XML document created in step 2.

image

Step 4: Enjoy!

image 

Next Steps

In the next blog post, I will show how to expose any WLP portlet as a Google Gadget. Stay tuned!

References

I only covered a small part of the Google Gadget technology. Their developer documentation is excellent, so please refer to it for more details:

Technorati Tags: ,