A US $44.3 billion corporation, the Indian conglomerate Aditya Birla Group is has become a household name with its presence in 14 industry sectors and is a pride of India. Unsurprisingly, it has created a widespread impact in the lives of Indians with its plethora of offerings. For me, the biggest (and the most cherished) way it delighted me, was through one of its popular brands – Ultratech Cement. A few years ago I had a close friend who had a modest house. It was comfortable enough for the family but as my friend was growing up, he wanted a separate room. He found it difficult to focus on books with the TV and music system blaring out all the time. Studies was considered important in the family and they understood his problem well. So it was decided that a new room would be constructed on the terrace for him. Moreover, he was given the full mandate of designing it himself! Although it was only a simple room, he was extremely happy with the joy of building a “roof over his head”. Together, we sketched out the blueprint, carefully taking the measurements and planning the locations of the door and windows. Since quality could not be compromised for such an important project, we chose Ultratech Cement. We personally went to the supplier to negotiate a deal (he seemed to enjoy bargaining with two kids and was generous with his rates for us) Over the years we moved out of our old town. But whenever we go back and visit the old house, that room we built still stands strong on the terrace, as though welcoming us with the same old promise of warmth and comfort.
Overcoming Challenges
Back in my first job, I was given the task of maintaining a software. It was meant to do a fairly simple task but was composed of a fairly large number of modules. Also, I was supposed to read the codebase and figure out everything by myself. Everyday, I used to go to the office and try to figure out which piece of code in which file was doing (or was meant to do) what. The main issue was that 6 other developers had been asked to take care of this project at different points in time. Each had their own “style” and added new components into the software accordingly. On top of that, the management came up with different use cases and asked them to implement new features. Although modules were coded for these features, no written record of such requests was maintained and I could only guess what each module’s objective was. Soon, they began to ask me to fix bugs (that never seemed to end !) in the software and also add new features from time to time. Needless to say, there were deadlines to be met. Under pressure, I began to fall in the same trap as my predecessors and began adding patches to the codebase in my own “style”. All that I cared for was that the software did what was asked. And I soon realized that I was only adding to the mess. I knew exactly what was wrong yet I could not find the courage to tidy it up because of the monumental efforts needed and also because it essentially meant to give the message – “This software, built by half a dozen before me, who were probably better more skilled and definitely had more experience than me, needs to be given up” Then one day, something happened and I realized that I am responsible for this software now and its my job to make sure that the tasks that it does are carried out smoothly. Who did what before me is irrelevant. With this realization, I began building a new codebase from scratch with a well defined plan. I tried to use whatever parts I could from the old one but made sure that the overall design was well-structured and clean. I also implemented whatever other quality-code fundas I had learnt. Soon enough, the new one was ready (it took less time than I thought earlier). It was lighter, faster and broke much less often than before. Once done, it brought me a great sense of relief. I learnt that the biggest obstacles sometimes are in the mind. Taking small steps at a time, persistently with a well-thought out plan is what you need to come out on the other end.
