Archive for February, 2008

Building blocks for a typical Social Networking application – An Engineering Ontology

February 29, 2008

From Software Development Perspective – as one starts gaining the experience of building up few social networking-based applications – we would all realize that there are certain common reusable building blocks which are common across many of them. While the core configuration and its presentation may vary from application to application, from an engineering components perspective they tend to remain same or similar across all Social Networking Applications.

We did an exhaustive study of various applications catering to Social Networks. Here are some of the common building blocks which we could find common in almost all.

  1. User & Profile Management System – From the backend perspective, all Social Networks are all about this. Managing users and their profiles and their choices! Investing in proper design for this at the initial stages would take a Social Networking application a long way.
  2. Content Management System – Surprisingly, from what I have seen and read, significant number of Social Networking applications seem to have somehow skipped on this. IMO, this is the key to remove the data from the presentation layer. It also forces the application provider to start thinking of their data in a structured manner.
  3. User Session Management Service – One of the key for Social Networks is to be in touch and know their users. To do this the application needs to have a functionality to keep track of user’s activity across various sessions of interaction.
  4. Discussion Forums/Message Boards/Blogs – The way you expect HBO to be there when you check in a hotel room, users expect this in any application associated with Social Networks.
  5. Streaming Media – Streaming is what keeps the social networks ‘live’. And content comes today in different forms and shapes. Hence the need for this functionality.
  6. Viral Spread Mechanisms – Related to Viral Marketing. This is related to any mechanism which replicates the ‘word-of-the-mouth’ spread on the internet.
  7. Ratings Engine/User Ratings – Almost all social networking applications put in measures to continuously rate various users, content, actions, etc. For example, YouTube allows its users to rate its users and also the content i.e. videos along various different scales. These ratings can be driven by the user community themselves or through certain actions of the users.
  8. Personal Social Groups/Groups Management – In theory, the overall social network implemented by the application itself stands for a group or a community. However, even within a communities, people like to create mini or sub-communities and also want to part of various different sub-communities. This feature is to implement the same.
  9. Integrations with Multiple Third Party Feeds Services – Almost all the social networks today supplement their own existing content by providing a feed for information from various different channels. News feeds associated with weather from a third party content provider is a good example of this. Such services enhances the overall user experience and at the same time in some sense tends to increase the stickiness of the users.
  10. Feedback and Contact Mechanisms – A minor thing. The key idea here is to provide mechanisms wherein the user feedback about any aspect of the application can be continuously captured.
  11. Search Services – Must have. Better the search capabilities a social networking application has – better are the chances that the users on the same application connect with each other and the content.
  12. Personal Favorites List/Watch Lists Tracking Mechanisms – Users would typically have choices or preferences. Something which they would like to keep re-visiting as often as possible. This feature is to implement that functionality.
  13. RSS Feeds/Trackbacks/Notifications/Alerts (Emails/SMS, etc.) Services – People do have life outside the social networking application! So one should not expect that they are not going to be in touch with the application 24 x 7. However, many certainly do like to be in touch in some way with the application even when they are away – by getting updates, notifications on any particular actions, etc. There are many different ways to do this today.
  14. Integrations with other Social Networks – There is a growing realization amongst almost all of the social networks today that users are going to be part of various other communities or networks – for various different reasons. This feature would help users to interconnect their favorite communities with each other.
  15. Social Networks News Feeds – While point no. 9 above was more related to data associated with external feeds, there is always a need even within the community/social network for providing users an information feed associated with what others in the community are upto. This feature is meant for the same.

I am sure we must have missed out few more of the building blocks. Would love if anyone points them out.

Add to Technorati Favorites

Bajaj and Environmentalists – Part II

February 24, 2008

About a month back, I had written a blog associated with my views about I felt about Mr. Rahul Bajaj’s interview on a National Television Channel. Read more about the same here.

Within few days, to my surprise and pleasure, I saw that Mr. Bajaj himself had commented on the blog and expressed his views. (You can read the same by scrolling down on the above link)

I wanted to reply back to Mr. Bajaj’s comment; however I was keen in getting a third view on this debate – someone from the environmentalist’s side. My views came from the position of a common citizen. Mr. Bajaj, I think, was bringing in an industry view. So an Environmentalist’s view would have completed the triangle of opinions. I took the liberty of contacting Dr. Rajendra Pauchari’s (co-winner of Nobel Peace Prize for the year 2007 along with former US Vice-President – Al Gore) office to get his views. However, I did not get any reply from him as yet. I am assuming that he/his office is busy with more pressing issues associated with environment. While I will keep waiting for Dr. Pauchari’s reply, I wanted to reply to Mr. Bajaj’s comment.

In principle, I am in agreement with what Mr. Bajaj mentioned in his comment. There is not much one can argue there. However, the key lies in the implementation of that. This is where organizations like Bajaj Automobiles would be tested. I hope organizations like them are continuously questioning themselves (as part of their responsibilities towards society) whether they are pushing growth at the cost of environment. It can be a temptation for organizations to hide under the blanket of excuse that they are doing this for the economically deprived societies and no one should deprive them about their rights. Yes, no one should! However, I am sure any member from this section of the society would also tell any organization that they would prefer growth in affordable Healthcare, Food, Education, Housing, Sanitation, etc. I am not sure if Nano has a place in that preference.

Regardless, from the experience of this blog, I feel positive that India is certainly awake to the issue of Environment. I am thankful to Mr. Bajaj for his active participation in this debate. Two successful made-in-India international industry leaders commented on this blog. First, Rajul Garg, co-founder of GlobalLogic (with whom i have had the honor and privilege to work with) and second Rahul Bajaj – Founder of Bajaj Auto – one of the world’s largest two and three-wheeler maker (with whom i have had the privilege of having this conversation with). There is a lot we can be optimistic about now.

Here is to a wish that many more leaders follow on the similar steps!

Add to Technorati Favorites

Ever heard about a copy’left’ software license?

February 20, 2008

I had heard about copyrighted softwares. Never heard anything as copylefted software. Well just learnt that there is something as copylefted license (wikipedia link) also in the legal world.

Here is a very good primer on Legal Issues associated with Open Source and Free Software Projects – especially for techies. This just got published few days back.

I am personally of a strong opinion that these kinds of things should be taught in any Computer Science curriculum. With increasing use of open-source in the industry, I see so many technologists like myself struggling on getting the guidance associated with the legal issues associated with it. Sometimes you wish you had an access to a Lawyer at a phone-call away.

Add to Technorati Favorites

Change the margins to save the environment!!

February 18, 2008

Here is a neat example of how simple ideas can help the effort towards Environment. Read about this effort on this web site – “Change the Margins“. This project is founded by a LA-based actress and writer – Tamara Krinsky. The idea seems to be simple yet extremely powerful in terms of its outreach. Force Microsoft to change its default setting of page margins in its Microsoft Office bundle.

Washington Post has also covered this effort in their Sunday Edition. They have also given some quantitative numbers associated with the savings this effort can bring in.

Kudos to Tamara on this effort! I particularly liked the phrase on her blog – “When it comes to environmental disaster, the margin for error is small“. So very apt!!

Add to Technorati Favorites

Distributed Agile: Managing Agile in Distributed Teams

February 18, 2008

There seem to be an implicit assumptions amongst many of the Agile practitioners that Agile is best practiced in a small and co-located teams. I feel that in some sense these assumptions may be because the complexity of managing Agile in a distributed team/s (geographically distributed) is certainly more than practicing Agile in a co-located teams.

In my experience, managing Agile in a Distributed requires some special effort but it certainly can be practiced to a large extent. The major challenges comes in the face-to-face part – stand-ups, pair programming, etc. However, these challenges can be overcome by proper supplementation of roles, methods, practices, and tools.

I have captured my thoughts associated with how the complexity associated with practicing various Agile Values in a distributed environment can be eased in the table picture below.

Managing Complexity of Agile in Distributed Team

Managing Complexity of Agile in Distributed Team

The table above is self-explanatory. As you can see, to implement some of these values in distributed teams have the same complexity as in co-located teams, while in some the complexity of the practicing these values can be eased by proper usage of software engineering methods (my definition of a ‘Method’ is a combination of roles + habits) and some good tools. However, there are some practices of Agile (e.g. collaboration amongst teams is a big one here) where inherent culture and core values of the distributed team plays a key role.

On the side note – the term “Distributed Agile” can be confusing sometimes. For many who I have talked to, for them it appeared that they thought it was a new avatar or flavor of Agile. Distributed Agile is practicing Agile in distributed team/s. Simple!

Add to Technorati Favorites

Time away from Blogs…

February 15, 2008

It has been some time since I have blogged. Last few weeks have been crazy in terms of giving finishing touches to the Version 1.0 offering which I along with a team are trying to roll out at GlobalLogic. Things seems to have relaxed a bit now and hopefully I will start paying some attention to my blogs now.

On the side note – it certainly felt good when all the hard work put in by the team was appreciated in the blogging world.