Abhishek's blog

Single Responsibility

I live in Bangalore, India. In the past few years, Bangalore has been in the news for all the wrong reasons: Lack of water, kilometres-long traffic jams, soaring rent prices, overpriced cabs/auto after waiting for 20-30 minutes, rising pollution, huge crowds at any decent places; the list goes on and on. The apparent reason can be attributed to Bangalore's hypergrowth and meteoric rise in population in the past 2 decades. Some will blame the Authorities for not developing the city to keep up with the pace of growth. However, I think these problems have a more fundamental root cause: Bangalore has too many responsibilities. It's the IT Capital of India, the state capital of Karnataka, the state parliament, Judicial bodies, government bodies for different departments, RBI, famous colleges (IISC, IIM), Sports related bodies (NCA, Chinnaswamy).

In Software engineering, We have a principle called the Single responsibility principle. Each component in a system must have a single responsibility. If we give one component too many responsibilities, it becomes a pain to manage and evolve it with time, and the component will be the bottleneck for the entire system. To solve this, we divide the component into smaller components, each with a separate responsibility. With this, each component becomes easy to manage, scale and evolve.

Other cities like Mumbai or Delhi face the same problem for similar reasons. I think it's time for us to move towards smaller cities, each with a separate set of responsibilities. There are examples: Punjab (Patiyala, Ludhiyana, Chandigarh, Amritsar), Gujrat (Vadodara, Gandhinagar, Ahmedabad), UP (Lucknow, Prayagraj, Kanpur) have done, and these cities are more livable and affordable. For a country like India, with the highest population in the world, this would become a necessity as there are limits on how much one city can handle. Here's to hoping !