Thursday, March 19, 2009

Twitter, Facebook and Software Modularity

I've just recently added Twitter to my account after receiving numerous invitations from friends and colleagues and after watching several episodes of The Daily Show with Jon Stewart, figured I shouldn't allow the technological gap between myself and US Senator's get extended too far.

I've also added the Twitter app to update Facebook status as well as Twitterberry, an application to update Twitter through your BlackBerry. It occurs to me how much layering is now involved in social networking.
When I update my Twitterberry application, it updates my Twitter account which in turn updates my Twitter application on Facebook which updates my Facebook status. All this in less time than it takes for my Firefox browser to refresh my Facebook homepage.

This is a testament to modular software design. However, as seamless as this progression appears to be, the recent updating of Facebook's "faceplate" for lack of a better word, brings up an interesting question when it comes to systems design.

Facebook was previously divided into several categories of communication: Status Updates, Messages, Wall Posts and (more recently) Comments. However, this new design begins to blur some lines (particularly between Wall Posts and Status Updates. While users may remember Status Updates as preceding with "is", Facebook has quietly removed the "is" as the default precursor to your activity update and slowly blended it such that status updates appear simply to be posts on your own wall. Similarly for sharing Notes or Links.

Now, this has some users up in arms based on the user interface and online "form factor", but in looking at my old Facebook for BlackBerry app ("old" by the online versions new standards, but still the "latest version") I noticed that much of the context that made sense in the previous versions now don't make much sense at all. It's a wonder that the API still works as well as it does (legacy code probably not yet depreciated) however, it's only a matter of time before this application gets a major overhaul.

Software vendors and developers need to catch up with Web 2.0 (it's hardly "new" anymore as it's been around for years now) and understand that in the development life cycle, there are major issues associated with changing form factors and even templates when your services are so integrated and intertwined with other services.

Modularity was a nice to have when your software was standalone and you simply wanted the ability to cheaply and quickly roll out new releases of software and be flexible with passing your code from one developer to another for outsourcing purposes, however now with the interdependency of message protocols and databases, it has become a critical necessity.

Especially as enterprise customers begin to rely on social networking technologies such as Twitter and Facebook as part of their mobility strategy, software design for increasingly critical applications must be more robust.

No comments: