Thursday, January 22, 2009

Knowledge Management ……….. Simplified




I was talking to my colleagues the other day and were discussing about the clients we worked so far. In the midst of the discussion I realized that I do not remember some of the patterns I used, the tweaks I made to the code and I had to go back to my documentation that I had with me over the years.

My friend was talking about the issues he was having finding the relevant information he was looking for on the intranet.

My other friend told about his experience as to how much he missed the guidance of a guy who worked for the company for a very long time and had left the company.

The solution is possible if the business treats the knowledge component of business activities as an explicit concern of business reflected in strategy, policy, and practice at all levels of the organization

Requirements of a good KM.

· Workspaces for teams to coordinate schedules, organize documents, and participate in discussions within the organization on the intranet.
· Easily manage documents and ensure their integrity:
o require document checkout before editing
o view and post revisions and restore previous versions
o set document-specific security
o storage capability for multiple Gigabytes of data
· Real-time communication triggers that let others know when their actions or attention is required (i.e. documentation, announcements, sophisticated alerts, surveys, discussion boards).
· Templates for ease of creating:
o Weblogs (blogs)
o Wikis (quickly editable by team members)
· Templates for Discussion Boards / Forums
· Searchable Content within Knowledge Base
· Web enabling of e-mail chains
· User rating of content; ratings should affect searchability of content

I have evaluated MOSS (Microsoft Office SharePoint Server 2007) as a potential tool for KM and I am impressed by the features available.





Tuesday, January 20, 2009

Content Management …………… Simplified

Let’s go back in time for a minute. Say the Business wanted to change the word "Colour" to "Color". They will communicate this to the Developer and he or she will make changes to the code base and has to go thru the change management process before it finally gets deployed.

The question is how to give the business owners the ability to make content changes without having to make the changes to the code base.

Let’s go back to our Insurance Company example to illustrate this better.

For the sake of this example let’s assume that all businesses have web interfaces that are consumer facing and the business wants to have a review process in place before the content gets to the consumer.

In a nut shell we need a Workflow.

We need to have clearly defined roles like Author, Reviewer, Approver, Publisher to support the business process of publishing the content.

Now let’s explore how the content is consumed by the departments.

"New Business" consumes the content by directly interacting with the content database, "Renewals" consumes a DLL which is generated say by a batch process which is run twice in a week, "Claims" gets the content via Web Services exposed by the CMS.

Now we not only have inconsistency in terms of how the applications access the content, but also how fast the content is available for application consumption.

Things will get further complicated if the Business decides to expose business process to different delivery channels.

I illustrated this as a cross domain example for the sake of understanding, but the same principle applies to all the applications within the domain that consume content.

So need to not only develop a good Content Model but also a consistent Delivery Model that could address these issues.

Monday, January 19, 2009

Board the ......... BUS

What Bus?

Let’s find out.

Assume that our New Business is a .Net shop, Renewals is a Java shop and Claims is some other shop.

How many times do we come across of a situation that forces us to change our client side code if the provider of a service decides to switch technologies, protocols, endpoints?

Sounds familiar….

How about having a mediator that can hide the complexities of these very same headaches?

Let’s take another scenario.

If an accident takes place and Claims department processes the claim but you want them to notify the event to other departments (New Business and Renewals)?

How about having an infrastructure that could handle these things?

The answer to above questions is Enterprise Service Bus (ESB).

Services………Simplified

“Services” is the buzz word these days.

So what are Services in SOA?

Services are broadly classified into two categories Business Services and Technology Services.

Let’s explore these with the example of a fictious insurance company “XYZ”.

For the sake of this example assume that there are just three departments (domains) New Business, Renewals and Claims.

New business as evident from the name issues new policies to the consumers and the business process ( for issuing a new policy) includes the following steps.

Capture Driver Info
Capture Vehicle Info
Get Prior Insurance Info
Get Accidents Info
Calculate Premium
Process payment
Issue Policy


The ones in bold above are the best examples of business services that support the underlying business process.

Make a note that we have not talked about technology yet.

Renewals on the other hand has the following steps.

Get Accidents Info
Calculate Premium
Process Premium
Issue Policy

Now if you are designing/building a system to process renewals it is important to not only have a vertical view of the domain but also have a horizontal view across domains(New business and claims in our example) to make sure that the information you need is available or not.

As you noticed that there are similar business services available in New Business.

The question is how Renewals will be able to use the Business Services from New Business.

The answer could be the much talked about Web Services. However, great care should be taken to expose a business service as a web service. Not every business service is a candidate for a web service. If some of these business services are very specific to a particular domain, we have to think twice before exposing these services as web services.

Now let’s talk about Technical Services.

Technical Services are services that will help build business services. These could be set of common services like logging, security etc….

Enterprise Frameworks built on .Net and Java assist in accomplishing these tasks. Frameworks however has a much broader scope. It is a vertical that can be used across horizontal layers like (UI, Business Services, Data Services, Utility Services)

Now that we have a determined that GetAccidentsInfo is a good candidate to be exposed as a web service, we will create one using WCF.

Tuesday, January 13, 2009

Azure, Oslo and more....

Just came back from the Dev Con in chicago.

In a nut shell,
Azure is Microsoft's Cloud services Platform.
Oslo is Microsoft's Model Driven Application Platform. I am not sure at this point how the two will come together. Hopefully Microsoft sticks to a plan on Oslo.
I liked the last presentation on ASP.Net MVC and Dynamic Data.

Sunday, January 11, 2009

Windows 7 Beta

It is good to know that there are a number of users who are eager to get the software.
There were issues downloading the software on Friday but was restored on Saturday. You can get the latest updates on Windows 7 from the blog.

Monday, January 5, 2009

MSDN Developer Conference

Want to learn more about cloud computing. MSDN Dev Conference is coming to chicago on 13th Jan.

Friday, January 2, 2009

Microsoft SOA

As the year 2009 unfolds, I agree with Eric Roch's prediction and strongly believe that Microsoft's SOA strategy will gain further momentum and will be an even bigger player in the space in a few years.

Here is an excellent read on the subject from Microsoft. The link lets you download a PDF version as well as XPS version.

With so many definitions and explanations going around on SOA, I thought this one is a good effort from Microsoft.