Monday, 5 October 2015

Good to great

It is a jungle out there.

Some companies perish. Some survive.

Among the survivors, some of them sustain or maintain, where as some of them thrive and grow.

All things remaining equal (I guess they never are!), how do some software product development companies clearly outperform the crowd?


In search of an answer, I tried to compare two companies which are similar. Both are young companies, found in the last twenty five years and have emerged as influencers in the ICT area.


I started thinking about the indices on which they could be compared. The agilist in me, guided by the agile thought-leaders like Kent Beck, saw any software technology company as by-and-large having two macro indices; one for the business and one for its software development characteristics. I may colloquially use the term engineering, inter-changeably with the index for software development (while acknowledging that software development is craftsmanship, which is only one part engineering).


For the business performance, I considered the following three parameters - brand value, profit margin and product/technology innovation. These parameters are self explanatory and since both the companies under consideration have comparable revenues (around 50 billion USD or more), the profit margin can be a reasonable measure of their financial performance.


For software development, I chose product quality, development agility and maturity of engineering infrastructure as the characteristics. Product quality refers to all the attributes including the functional quality, usability, stability, intuitiveness, finesse etc. Development agility is the shortest time the company may take to release a one line code change. The engineering infrastructure does not literally confine itself to tools and automation, as it includes the engineering practices as well.


Still there was something missing, something which factors in the people perspective. Two decades of working in software development has left me with a prejudice, that the software development is as much about the teams of people, collectively enjoying and progressively excelling at what they do; as it is about the business and development characteristics. Individuals and interactions, right?


I needed a name for this people perspective. Around this time, I chanced upon a visual comparison scheme which is used to compare more complex systems, like two cities, say, Melbourne and Mumbai. It is called the Circles of Sustainability. This scheme uses a factor termed culture which accounts for the interactions of the urban population and another termed ecology, which (curiously!) refers mostly to the abiotic factors that affect the population. I combined these two into a single factor and termed it ecology with a bias towards its interaction related characteristics. Thus I chose ecology as my third macro-index, along with the two indices of business and development, which were already considered.


What parameters can I consider for ecology?

I chose to focus firstly on the interactions. Ecology, the science of it, categorizes interactions thus:


Type of interaction Person-A Person-B
Mutual Win Win
Commensal Win Neutral
Competition Win Lose
Predatory Win Lose


I chose the parameters for the presence of mutual and commensal interactions and the absence of win-lose interactions.

I chose the cultural characteristics of the company next. In ecology, there is a concept known as social learning viz. learning by interaction. It is theorized that social learning is a powerful mechanism, which can create advantages for a population to thrive, as much as to even influence their evolution (arguably!). Social learning defines culture as the group behavior patterns established by social learning. Culture is established by the twin methods of keeping traditions - patterns shared by more than one person in a group; and provisioning innovations - introducing new patterns in the group. I chose these two methods as the parameters for culture.

The comparison of the two companies using the Circles of Sustainability scheme and the chosen parameters is as follows:

The company to the left was established in the early 90s and is a world leading Telco. The company to the right was established in the late 90s and is one of the drivers of the IT revolution.























The comparison on the business and development parameters were relatively straight forward. These two companies are well established and had some general perception with respect to the above parameters. How I compared the ecological indices needs some explanation which is as mentioned below.

I rated the company in the right higher on mutualism and commensalism because of their highly collaborative open source strategy, among others. They were the key drivers in open sourcing the most popular mobile OS, and this move has been sort of a game changer. Inside their company, they provide for innovation with slack, infrastructure and incentives. So I rated them higher on their innovation culture as well.

The comparison shows the company in the right having better sustainability scores on almost all parameters. It also shows a positive correlation between the ecological indices and the business and the development parameters.

I think that the company in the right has better sustainability overall because of its better ecological health. I am pleased to find a growing number of companies who are focusing on better ecological health these days; these companies encourage win-win(/neutral) interactions, avoid win-lose interactions and promote social learning.

Software product development is a community effort. Ecological advantages should be created for the community to sustain and be vibrant. A call for a better ecological sense is the need of the hour.