Enterprise 2.0 – Departure from Traditional Thinking

If you have not read this paper by Andrew McAfee on Enterprise 2.0 then it would be a good idea to glance through it. You can also look at this post by Dion Hinchcliffe.

For the last couple of weeks I was exploring how to give our Enterprise 2.0 initiative a fillip. This included exploring the Media Wiki engine, the open source software which runs Wikipedia. We installed Media Wiki and configuring it to allow access to only logged in users. This involved some tweaking to the PHP code as well as Apache configuration. We also did a sample transfer of existing content to the Wiki. I will share the technical details of what we did in a later post.

This post is about 2 realizations I had. Both are counter-intuitive and negate some long held views on integrated environment and structured data. I can summarize it by saying that for Enterprise 2.0 to succeed …

  1. No Portal – Do not attempt unified access to everything – opt for loose coupling over tight integration
  2. No Structured Data – Do not try to structure knowledge and store in RDBMS – opt for unstructured or semi-structured content and for flexibility

Let me try to justify these statements.

No Portal

What is the primary reason behind the success of the web? I think, it is the ability to have hyperlinks – the ability to attach a URI to a specific page and link it to anything and allow access from anywhere. It provides freedom, supports diversity and promotes innovation. Web 2.0 and by extension Enterprise 2.0 takes this one step further through the architecture of open participation. On the other hand, a portal …

“… provide a way for enterprises to provide a consistent look and feel with access control and procedures for multiple applications … (wikipedia)”

In an enterprise portal, the emphasis is on uniformity and control – which not only goes totally against the philosophy of Web 2.0, but also goes against the very grain of why web is successful.

So, my recommendation … if you are really interested in Enterprise 2.0, stay away from portal software.

No Structured Data

The conventional method to allow user to search knowledge repository was to classify pieces of knowledge, create a taxonomy and store it in an RDBMS. Unfortunately, this  method is too rigid and is totally against emergence, which is key to success of Enterprise 2.0. Meanwhile, search technology and machine power seem to have advanced to a level where searching any amount of unstructured data looks quiet feasible.

So, it makes perfect sense to retain the knowledge in documents, web pages, blogs and wikis and let search engine handle it.

Do I hear you say “what took you so long to realize this?” Yes, I agree that I had been blind, but better late than never!


When Is Reuse Feasible?

This post is triggered by a question from a friend. He is the CEO of a mid sized IT company based in India. What distinguishes this company is the fact that most of its revenue comes from IP created by them. He asked “Do you have any suggestions on how to create reusable assets and promote reuse among different product lines?”

I mumbled something about how reuse is difficult and how some of our large customers are also struggling with the idea. I doubt if I could convince him about the futility of attempt to reuse.

So I have decided to argue my case in this post.

  1. Effort required for reuse
    • Opportunity to use code without making any modification is very rare. There is always some architectural variation between different product line / project.
    • Effort required to modify an existing piece of code is much higher. If the change required is more than 20% then it may be easier to rewrite the code.
    • To write a piece of code which can readily be reused requires significantly more effort – factor of 3 is a reasonable estimate.
    • Therefore, to derive benefit the code needs to get used at least 4 to 5 times – so large number of product lines with identical technology is basic necessity for reuse.
  2. Pace of technology change
    • Even with same basic technology, software version has to match for effective reuse.
    • We live in a multi-tier world which uses a combination of different technologies – each of these technologies will have a significant new release every one to two years – therefore identical technology environment across product line is almost impossible.
  3. Open source software
    • Availability of open source assets further restricts scope of reusable code – what can easily be reused will probably be available as open source.

Managers think that reuse does not happen because of “Not Created Here” syndrome.

However, the truth is that the way code is written reflects the thinking of the creator. To reuse any piece of code, I need to start thinking like the creator. If my requirement can be so well encapsulated that I do not need to understand the code, I can probably find something better in the web.

So, I think the only effective way of reusing code is to either include one of the creators or somebody who have already used that code as a part of the team.

ISEC 2009 – 2nd Indian Software Engineering Conference

Are you surprised that India is having only its second software engineering conference? With so much outsourced software development working happening out of India and India being the home of close to a million people working on software development and maintenance, how come nobody thought of organizing such a conference earlier? (I am not sure about the figure 1 million, but it is surely more than any country other than US)

This event was held in Pune (last year’s event was in Hyderabad) and I came back from the conference with a positive feeling. There were close to 100 participants. I believe that the level of participation was less than last year. I suppose the reason for lower participation is obvious.

I found the following sessions /papers very interesting:

  1. In the keynote address, Prof. David Rosenblum, asked the question “what is scalability?” – His talk threw new light on a term we use regularly – I am sure I will be able to apply some of his thoughts 
  2. FSE best paper on “What makes a good bug report?” – I liked the way the study was conducted comparing what developers think important about bug reporting and what testers think important about the same
  3. Two Research papers from TCS “Instant Multi-Tier Web Applications without Tears” and “Extending AOP with Models” – I liked these papers probably because they were very much in line with the work that I am doing
  4. Experience report presented  on “From Twin Training to Pair Programming” – I liked the concept of twin training and how it was used by 2 beginners to learn new technologies & concepts and then continue development of half finished application, that to without any mentoring
  5. I was also impressed by the presentation of the various sponsors – by the type of research happening in India

What surprised me was that there was almost no mention of Agile methodologies. Also, the paper on SaaS was almost like an introduction for a beginner.

3rd ISEC will be held in Mysore and Infosys is going to be the host.

Here are couple of interesting statistics:

  • Of the 11 research papers only 3 of them were form Indian academic institutions
  • 6 of the 11 research papers had at least one author who was from a university outside India

I think we can draw 3 conclusions from this:

  1. Significant amount of research on software engineering is happening in Indian Software industry
  2. This conference has generated enough interest outside India
  3. … I leave it to you to draw this conclusion