Not long ago when I was young and idealistic, I used to believe that one's place in history is determined by his/her skills and dedication. Now as I grow older, I realize that this alone is not sufficient.
Humans being social animals bond themselves into cliques, communities and organizations. By organizing into groups, we can transcend our petty existence and evolve into something larger than ourselves. Rather than one's individual brilliance, the organizational structure and dynamics then decide how effective you are in life and work. Let me provide an analogy from the software business. The lowly software programmer lies at the bottom of the totem pole and is ironically responsible for implementing the software. He can get promoted depending on his technical skills such as proficiency in programming languages, subject expertise and debugging skills. But individual excellence can only take you so far. One needs to exploit economies of scale if one needs to grow further. That would mean garnering the resources of an organization (team, division, company) and directing them towards a coherent goal. This is often then the role of the software/project/product manager.
How can a software developer transition to a managerial position?. Since the world revolves around the "you scratch my back, I scratch your back" principle, cooperation starts by offering mechanisms that can significantly improve the effectiveness of others. One such mechanism is a software framework i.e. a layer that provides unified and simplified access to the underlying complexities. Let me give you a concrete example. I work on a product where Border Gateway Protocol (BGP) information is stored as router level attributes. There was no intelligent layer i.e. set of APIs that would read the underlying data model and transform them into useful information. Every software client who needed some arbitrary BGP information would have to go through the rigmarole of reading the data model, understanding the BGP protocol and then deducing the item of interest. Bugs would inevitably creep in and it would take several software cycles to eventually squash them. Once I created a BGP software framework, all this needless duplication was avoided. Developers could then quickly turn around and deploy BGP applications by directly working with the framework APIs.
A good software manager should keep in mind the importance of frameworks while evaluating team members and apportioning work. Consider the performance of two software engineers Abhinand and Bindya who worked on developing BGP applications before and after the framework was in place. Abhinand had to start from the low level details while Bindya was able to piggyback on the APIs. As a result they took 4 and 2 weeks respectively to complete their projects. Does this mean that Abhinand is twice as tardy as Bindya?. What about the case of Cao who sacrificed 4 weeks out of his 8 weeks to create the framework?. Should he be punished for taking twice the time needed to complete his routine project or should he be rewarded as a pioneer and commended for improving the effectiveness of all those who came after him?. Very often myopic managers miss the forest for the trees and end up alienating the Caos of this world by refusing to give them credit for their visionary work.
We can extend this framework model to other fields as well. While Indian R&D continues to languish in the doldrums, most of the impetus to US R&D is provided by Indian researchers. How does one explain this conundrum?. I think this has mainly to do with the superiority of the frameworks (i.e. systems and processes) in the US vis a vis India. The ability to obtain necessary funding, critical mass of like minded researchers, a culture that favors risk taking - all of this are part of the equation. Over time, this becomes a vicious cycle as bright Indian researchers revolt against the ineffectual research regime back home and flee for greener pastures thereby further depleting the system.
Any visionary worth his salt should remember the importance of frameworks before he goes about single handedly reforming the system. Athanasius Contra Mundum may sound heroic but you will be needing all the help you can get.
On the other hand, you start doing what you believe in..these frameworks would come and help you. If you see most of these frameworks, they are full of mediocre people who can not do any thing on their own.May be the frameworks are looking for visionary people who can bring changes in them too. My 2 cents...
Posted by: Human | 06/17/2010 at 12:07 PM