Modular Design

Screen Shot 2014-02-28 at 7.31.17 AMWhat you see here is the percentage of users of various age groups that use social media from Pew Research Internet Project. For more detailed data on social networking, click here. I have been fortunate to have been a participant of the Internet from very early on. Many of us in Higher Ed would relate to this because we were the first ones to experience it before it was opened up to everyone in early ’90s. In the same fashion, out of my own curiosity, I have been active in social media fairly early on. I am not sure about you, but every morning, when I get up, the first things I check are my social media applications such as Twitter and Facebook before checking my email. I have a careful subselection of everyone I follow on Twitter whose posts I value the most and this provides me such a lot of useful information every morning. While I sleep, they have done the work of scanning the world events and post information that I am most interested. It is like reading a newspaper. Similarly, I get a lot more information on Facebook about friends and family than through emails. The use of social networking tools has been on the rise as you see from the graph. Email, while its use has not declined  as much as one would think, serves a whole different purpose. This is where I get most of the professional communications, be it work related or from colleagues from other institutions.

I am a big fan of modular design and reusable “things”.  From Wikipedia – “Modular design, or “modularity in design”, is an approach that subdivides a system into smaller parts (modules or skids) that can be independently created and then used in different systems to drive multiple functionalities.” The general idea of looking at a problem and breaking it into smaller and reusable parts doesn’t come naturally to everyone. However, I am a big fan of this methodology and practice this as much as possible. When I was doing my Masters in Chemistry in India, I took a class in Group Theory taught by a fantastic teacher – Prof. P. T. Manoharan. It turns out that Group theory is very handy in understanding symmetries and vibrations in molecules. One of the things we learn there is the concept of “Irreducible Representations”. In simple terms, these are the representations that cannot be broken down further. All other ‘representations’ can be constructed from these. Obviously, this is like modularity somewhat and my fascination for this began in 1977 in my Group Theory class. I believe that this has wired my brain to think the modular way!

Screen Shot 2014-02-28 at 8.20.29 AMI chose to write on modular design when I saw a twitter feed regarding Google’s Ara project. This is a project to develop a modular smartphone and the ideas may have actually come from Motorola division that Google bought and recently sold at a steep loss to Lenovo. The image from an article in the Time magazine shows the basic concept. You have several modules that do various things and one can synthesize a custom solution based on the needs of the user. The idea is so prevalent now that we don’t even think twice about it. When we buy a car or buy a new computer (especially a windows PC), there are customizable modules that are added to suit the needs of the user.

Except, no one thought of this for a smartphone in the rush to get it out to the market, so this is an exciting development and hope that it moves forward. Someone like me would want every module that there is – the best resolution for the camera, highest memory I can get, top sound system, the module for Candy Crush Saga, etc. etc. However, there will be many who love the simplicity of someone else making all these decisions for them. Like an iPhone, where everything is sealed and there is no room for changes. You have to make all decisions up front or pay a hefty price to trade up.

The modular design idea is also being discussed as an option in the MOOC world. Since the organization of a MOOC course is one that can lend itself to modularization, there is a talk of reusing these modules. For example, a module that teaches basic statistics in a statistics course can be used as a part of a psychology or econ class which would benefit from such basic statistics.

We are beginning to practice this in our own software development. This is connected to the “Forever Beta” strategy in that modular constructions always provide the flexibility to build incrementally and make modifications in such a way that it is localized. In other words, if you wrote an application that requires users to input information and then the staff to get reports of the information, you can always write the first part and roll it out while working with the staff to develop the reports they need without disturbing the user input activities. Another important part of this strategy is reuse. In most cases, there are a lot of similarities to reports. How can we leverage this to create an irreducible representation or a module for common reports?

This requires a lot of coordination and communication. Despite the fact that we have a small group of programmers doing software development, we don’t communicate as well as we can about some of these. As a result, we have a module creep! Yup, everyone is brought into the modular design world, but without proper communication, everyone is repeating the work already done by someone else. This is a resource drain in more than one way.

In other words, better communication and coordination are key modules for modular design. May we communicate better!

Leave a Reply