Barriers

December 29th, 2006
by Jeremy Thomas

We’ve seen a great amount of interest in Enterprise Search in recent months (especially the Google Search Appliance). In my experience this is the starting point for deploying a full blown SLATES system into an enterprise. Interestingly enough, however, the “C” level guys seem to be pretty interested in Enterprise Search, and also what the next generation of intranet applications is, but it’s the people below them who feel threatened by this and often talk the “C” level guy out of it.

Why? Because lateral communication threatens managers who define their roles by controlling the flow of information in and out of their group. As Rod Boothby points out, there is a lot of “dead wood” within organisations, and Enterprise Search is the first tool that will call them out.

I personally think it’s going to take a few high-profiled, highly-publicised Enterprise 2.0 deployments before it catches on as main-stream.

An Enterprise 2.0 Scenario

December 24th, 2006
by Jeremy Thomas

I’ve been traveling from Australia to Colorado during these past few days and was thinking of a scenario where Enterprise 2.0 would add significant value.

The Scenario

Imagine working for a consulting firm that has implemented Enterprise 2.0 with the Discovery and Collaboration capabilities I outlined a few days ago. The first think you do as a new hire is setup your personal profile, including resume details, likes, interests and possibly an avatar. This serves two purposes. The first is satisfying HR’s requirements that your skillsets be registered somewhere so you can be located when an appropriate role on a project becomes available. The second is establishing a single instance of “you” that will be used to link you to blogs and wiki entries you author and documents you might bookmark. It’s important that you have only one identity so that you get credit in this environment of reciprocal altruism.

The enterprise search system (i.e. Google Search Appliance) then indexes your profile making you discoverable to fellow knowledge workers. Because you’ve entered resume information, you’re searchable by more than just your name and title, you’re also searchable by resume content (i.e. “telecom service management platform“).

You might then post a blog about your past experiences, or create a wiki page on a topic you’re an expert in. This helps you get credit for the work you’ve done with previous employers and also elaborates on the resume content you’ve posted with your profile - narratives are generally better than a list of accomplishments and skills. This exposes you and the reason you’ve been hired to the rest of the enterprise and increases the likelihood that you’ll add value sooner. So, after a few blog and wiki entries, you’re now discoverable not only based on profile, but on the content you’ve just authored.

After discovery (either by an HR person or fellow knowledge worker), you’re now assigned to a project. So you register with the “project group” on your social networking page and now collaborate with others on the project. Others in your project group can get a quick rundown on who you are by checking all the wiki and blog entries you’ve authored and your social profile. Project management can then better integrate you into the team and refine your role to suit your background and career aspirations.

Why don’t companies do this?

All of this seems too easy to me. I don’t know why companies don’t do this. Instead we’re faced with 4 HR systems (one for CV compliance, one for listing skillsets, one for forecasting etc) and no standard for capturing the wealth of knowledge new employees bring to the table.

JEE and Web 2.0

December 21st, 2006
by Jeremy Thomas

It’s difficult not to mention Rich Internet Applications (RIAs) when talking about Web 2.0 or Enterprise 2.0. There’s one particular framework that stands out, and that’s Ruby on Rails. I have a lot of experience building enterprise applications in J2EE (or JEE as it’s called now) and .NET and wanted to understand what Ruby on Rails was all about.

So, I bought Agile Web Development with Rails - Second Edition. I read every page and did every tutorial (building a shopping cart application with a little AJAX magic).

Rails impressed me. Ruby did not. Ruby was invented in Japan in 1992 and was used without Rails until Basecamp came along and built Rails to “webify” Ruby. From what I’ve seen thus far, the Rails (and GEM and Rake) framework could have been created for any language. It seems that Basecamp had a bunch of Ruby programmers who one day decided to make Rails for Ruby because that’s what they knew. If instead Basecamp had a bunch of Java programmers we could be dealing with Java on Rails (although Java requires compilation, Ruby does not, so Rails might have ended up a little different).

What don’t I like about Ruby? For one thing, the method naming convention drives me nuts. In Java the convention is to use camel-casing, i.e. getCustomer(). But in Ruby, the convention is to use an “_”, i.e. get_customer. Furthermore, I can optionally insert the “()” (get_customer()), it doesn’t matter. Unbridled, the free-form and “flexible” nature of Ruby syntax could lead to unwieldy code, where one Ruby programmer finds it difficult to maintain another Ruby programmer’s code due simply to style differences (i.e. optional use of the return statement, optional use of {}). Furthermore, it is always better to detect and debug errors at compiletime rather than runtime, as runtime errors can often go unnoticed or be the result of something that happened 3 method calls ago (Ruby is a scripting language and is thus not compiled).

Ok, perhaps I’m just stuck in my ways. But, after reading my book I wanted to see if I could implement some of the cool AJAX and Scriptaculous features in a JEE application.

The first MVC (model view controller) I learned was ASP.NET. After 2 years of that I switched the JEE world and found a roughly comparable framework in Java Server Faces (JSF), and specifically Apache’s MyFaces implementation. JSF has a lot of support from the heavyweights in the software engineering industry including Sun, Oracle and IBM.

As of version 1.1.4 of MyFaces, AJAX does not come with it out of the box. So I found a great opensource project called Ajax4Jsf which essentially AJAXifies JSF applications. After resolving some version conflicts I was away, AJAX and all. Last I added visual effects with Scriptaculous and I was away.

The moral of the story is it is certainly possible to build Web 2.0-style interfaces using JEE, so there’s no need to abandon your Java programming skills just because people say “AJAX”, “visual effects” and “Ruby on Rails” in the same sentence. And certainly with mainstream adoption of data access frameworks like Hibernate it’s possible to simplify the process of database interaction in Java.

Discovery and Collaboration

December 20th, 2006
by Jeremy Thomas

Andrew McAfee, Dion Hinchliffe and Rod Boothby have been fundamental in shaping my understanding of Enterprise 2.0 (I particulaly like Dion’s diagrams). McAfee’s SLATES (Search, Links, Authoring, Tags, Extensions, Signals) approach outlines fundamental elements that must be present in an Enterprise 2.0 solution. I would also include Social Networking as a vital feature of Enterprise 2.0. Enterprises are constituted by people, and people are inherently social, and although the SLATES approach is socially oriented, Social Networking applications (i.e. myspace.com, facebook.com) are explicit in their goal of linking people together.

McAfee shows that increased efficiency is the principal business benefit gained from Enterprise 2.0. Rod Boothby, on the other hand, holds that the fostering of an environment that encourages innovation is the chief value proposition.

I think both are correct and I’d phrase the Enterprise 2.0 value proposition like this:

Enterprise 2.0 provides an environment that encourages innovation, facilitates the capture of tacit data, and creates a spirit of collaboration due to the participatory and social nature of said technologies. This allows enterprises to become more efficient due to increased sharing and discovery of knowledge, and helps enterprises maintain competitive advantage by fostering innovation from within.

In a very abstract sense, an Enterprise 2.0 solution must facilitate two fundamental capabilities so that the value proposition may be realized, Discovery and Collaboration:

DiscoCollab
We can then apply the SLATES methodology to this model to understand where the components fit. Discovery is about more than finding content (i.e. enterprise search), it’s also about finding people. Knowledge workers must have a means to discover other knowledge workers with interesting skills and experiences laterally. After discovery, after knowledge workers have found interesting content and have found individuals, collaboration happens. Knowledge workers create a social network with their newfound colleagues and bounce ideas off each other through wikis and blogs. With discovery and collaboration in place, enterprises can achieve increased efficiency and have fostered an environment in which its employees can innovate.

Here We Go…

December 20th, 2006
by Jeremy Thomas

I work for a global consulting firm and have been following the Web 2.0/Enterprise 2.0 evolution for several months now. This space is truly intriguing and I’m excited about the possibilities Enterprise 2.0 brings to our clients/prospective clients.

Social Glass will initially be a blog targeting Enterprise 2.0 themes, and I hope to bring personal experience into the mix as we test the market with Enterprise 2.0. I’m hoping that Social Glass will one day expand into an opensource Enterprise 2.0 solution offering. There are a lot of disconnected applications out there, wikis, blogs etc., but I haven’t seen any application in the opensource world that addresses Andrew McAffee’s SLATES approach (plus Social Networking) in one complete, integrated package (i.e. the intranet in a box).

I expect the style of this page to be changing frequently until things settle (I’m also hoping to get a cool logo).