We’ve been using IM in the Community Project to create scripts. I’ve found it quite useful as a manner of creating content for the WIKI. One collaborator from Norway suggested using Meboo and I did a little research on it. I then searched for the term in SDN and found that Craig Cmehil had already mentioned in it a Mashup – Jabber , Qunu and SAP?. I then read Craig’s description of Qunu and this sort of stuck in the back of mind. What’s Qunu? Qunu is a next-generation expertise matching service and uses instant messaging to connect — in real time — people who have questions with experts who are passionate and willing to help.
Craig’s idea regarding the use of Qunu in a corporate setting was intriguing and it stuck somewhere in the back of mind.
I mean how interesting would that be to get a service like Qunu integrated into your R/3 or NetWeaver system for your entire user base? Might make your job and life a whole heck of a lot easier – not to mention your support desk.
Lately, I’ve been E2E: Enterprise SOA in Enterprise 2.0 environments about Enterprise 2.0 technology and I remembered Craig’s quote about Qunu and I started to think about the infinite possibilities of using these new technologies that are linked to social computing in other contexts. Just by being a member in the SDN / BPX communities, we are all part of a social computing environment. There are other examples such as LinkedIn, Facebook, etc. This blog focuses on the use of this technology and the related $32 question is how to use these communities in a corporate setting. In particular, what are the possibilities of using this phenomenon in processes?
The leap of faith
First, let’s look at a little bit closer of social computing. We must distinguish between two usage possibilities.
- The use of existing networks in social computing environments.
- The use of social computing technology in corporate settings.
Use of existing communities
If you look at Facebook, there are an amazing number of communities that are present. Wouldn’t it be cool to use these networks in corporate processes? Before you say “Stop. Facebook is for private usage and private communities”. Let’s take a more broad definition of corporate processes. Although this may be true, many marketers have been creating profiles of their products in this environment and interested users can register themselves as “friends” of these products. Thus, these companies have already found the usefulness of using these platforms for marketing purposes. Thus, the relevance to corporate interests has already been discovered. You might also say that a definition of Enterprise 2.0 deals with the use of Web 2.0 technologies within the corporation. In my opinion, it is critical to expand this definition to include all interactions between the corporation and involved individuals – be they customer, partner, etc.
Next, you might suggest that these existing networks are closed environments. Wrong again. Such systems are usually very interested in integrating existing systems and are quite often SOA-based. The Facebook Platform is a standards-based web service with methods for accessing and contributing Facebook data. Thus, the available data is accessible. Based on experiences in regarding EAI and the integration business, you start looking immediately for details regarding authentication without which a clean / efficient access is possible. This is also available. Of course, there are the usual considerations regarding the necessity of having common identities between involved systems to assure that user gets the correct data. The problems associated with the use of private id (for example, based on a Hotmail account) and a corporate one would also be a consideration to be taken care of.
The presence of trust relationships between the involved systems must also possible (I didn’t check to see if Facebook used SAML tokens…). Thus, there appear to be no obvious technical hurdles regarding the use of existing networks. I haven’t considered such important factors as common SLAs. As is the case in all SOA-based environments, it is critical when using external services in corporate processes that availability and performance standards are met. But these are things to be considered in later blogs.
Use of social network technology
It is also possible to use this technology within the firewall. The idea is that corporations may create their own social network environments for the usage of their employees (and perhaps partners). SAP’s Harmony is one example of such usage and is a social network behind the firewall.
Returning to the introduction when I discussed Craig’s blog, I think his idea is great one. Unfortunately, I didn’t find any API for Qunu but the possibility could be used in another setting where user’s profiles (which they have composed themselves) are mined for their areas of expertise and placed in some sort of social network database. Users can either ask questions and be connected to experts or a URL-based query interface might automatically select those experts who might be of assistance. These experts might then be contacted via IM to answer questions or assist others from the social network.
A note: The next versions of the SAP NetWeaver portal will include also profiles (I don’t know whether they have the same technical basis as those currently present in SDN /BPX. I’ll be curios to see if there is an API for these profiles.
The heart of the matter
So now you might be saying “Great ideas. But is it technically possible to use this stuff today in standard corporate processes. This might be possible in 3 years but what about using it right now?” Well, there is a possibility of using this technology today. I always return to the use of Guided Procedures (GP) when I examine the integration of E2.0 technology in processes, because it is currently the most obvious SAP technology that focuses on human interaction in process contexts.
Before we consider what type of processes or individual process steps might be able to use in conjunction with these communities, let’s discuss if it is even technically possible to integrate them into GP.
As I have discussed in previous blogs, there is currently often a restriction that a particular action step is usually restricted to one individual. One immediate possibility is the use of social networks to give multiple individuals the responsibility for process steps. In my last E2E: Enterprise SOA in Enterprise 2.0 environments dealing with the inclusion of E2.0 technology in processes, I suggested that we must expand the definition of processes to include community-based responsibility for particular steps. This technical functionality is partially available in GP through user-management functions, especially the Callable Object “Assign Users to Process Role” with which you can assign users to the possible roles of the current process. The role that is created for the relevant action is filled during runtime with the appropriate data of all the users defined as input parameters of the callable object. The idea would be to fill this role with those individuals from the social network usually based on a web-service that returns the information.
Of course, a direct call to external web-service may not be possible in which case a CAF Service could be created to wrap the multiple web-services.
You could combine this functionality to add community members to a role with that of the already existing “Mass Initiation” functionality which creates a separate process for each individual in the selected role. This of course would only be useful when each member in the community should be given the opportunity to participate at the process level.
What happens however when the use of the community is not desired for the entire process but rather for a particular step or series of steps. In situations where the input of multiple individuals is necessary, for example dealing with the creation of polls, there are possibilities to implement this functionality. In Guided Procedures there is a special block type, called Parallel Dynamic Block (PDB).
As with standard parallel blocks, this block type can be processed at runtime by several users simultaneously; however, it has a different structure. The PDB always contains one subordinate block. The system creates as many instances of the subordinate block as there are rows in the input table of the PDB.
Process designers use the PDB if they do not know at design time how many instances will process the action of the PDB’s subordinate block in parallel. The name of this block type is derived from the fact that the system determines the number of block instances dynamically at runtime.
The use of this block allows that multiple individuals may work together on one process step.
The tough part is determining when the process step is finished. Is it finished when all members from the social network perform the action? I haven’t tried it out yet…It would be curious to see if it is possible to make parts of the PDB optional.
Of course, there also the considerations associated with integration issues, for example a common user base including common user-ids. These must be examined in detail before any implementation occurs.
We’ve now seen that it is technically possible to include the networks from social computing-based environments in corporate processes. I think the tough part is determining what process steps or processes are really desirable to use this capability. I think to discover the type of processes it is necessary to first categorize the interaction based on the following table (Sorry, I haven’t filled the table yet….):
It is not possible to say that one process task or process type is perfect for all social computing environments. A lot is dependent on the process itself as well as the characteristics of the community involved. In my opinion, one of the most important criterions is the determination if the process or community is purely internal, purely external (for example “Facebook”) or a hybrid (for example, on an extranet.) There may be other important criterion based on process-specific characteristics. Processes in different industry may also have different characteristics. Some critical processes may not be appropriate for the use of external/personal communities inasmuch as time-criticality may be difficult to achieve in large private communities where process participation may be voluntary.
This blog has discussed one possibility of using social computing based networks in GP-based processes. There may be others available in the GP. Since GP has an open API, it is also possible to develop new Callable Objects. Perhaps, someone should develop a few new Callable Objects that really are able to exploit the collaborative potential of these social computing environments.
A Challenge to all the PI experts
I’d like to make a challenge to all those PI experts out there to consider if and how this social computing-based technology might also be used in PI.