I remember a phrase that kept on reoccurring when i visited India several times in between 2008 and 2010.
Whats that phrase you may ask?
The phrase is the same as the title of this post:
It occurred in so many different times in so many different ways for example:
"There is this friend of mine who works in a small software company in Gurgoan"
"I used to work at XYZ, a small company that built and sold project management software "
"He founded a small software company that handles outsourced projects for banks in America"
….and so on and so forth.
and every once in a while during these conversations i would ask:
"How many software developers worked in this company?"
and the answer i got was almost always the same range:
"about 40 developers"
"…oh maybe 30 developers"
"…like 50 people "
..and in some rare cases:
"…about 5 or 7 developers"
and i am like …."Wow….50 developers? 40 developers? "
Why am i surprised?
Well …think about it, i am a Naija boy….bred and buttered. I have worked in one or two of the top software firms in the country ..and possibly the West African sub region (i am biased i know) and to the best of my limited knowledge, when you say that you run a large software firm in Nigeria or anywhere in sub-saharan Africa for that matter, you are talking of at most (yes …at most) 30 software developers. I even believe i am exaggerating here because i have never seen (ever) a sub saharan software company that has more than 20 software developers. Now…i am not talking staff here (hr, admin, business development, analysts etc). I am talking software developers: Java, C++, PHP, Python whatever…even QBasic.
So you can now understand how i felt when i found out that the biggest software company in my neck of the woods….is a small company in India…and that a small company in these parts…..is at best 2 developers and a front end designer ...very humbling.
There is the school of thought that argues that the era of the large software company is behind us. These days with mobile computing ,Web 2.0 , cloud computing ,agile methods and so on that there is no need to have such large teams and so on . Well…they could have a point.
There is also the school of thought that believes that a developer can only turn out a fixed number of quality / debugged lines of code in a day for complex software projects(i believe 10 lines of code is current average). What this means is that you can have a team of 5 Ninja developers turn out 500 lines of code per day, but in the long run….after all the trouble shooting and debugging has been done, you find that in the end, the effective incremental output will be 10 -20 lines of code per day…if they are lucky.
I don't know why…but i tend to lean more towards the second school of thought. I have always believed that no matter how much you try to rush and muscle through a software project…it will take as long as it will take. Software project timelines are like air, you can compress it all it want, but there comes a point when it liquifies and you cannot compress it anymore without either changing its chemical composition or busting something, so no matter how talented your team is , there is a level of output per developer that cannot be surpassed without breaking something. A look at any successful open source project will probably confirm what i am saying.
So if you also lean towards the second team like me…you will agree that to build software of a particular quality within a particular timeframe, you need a particular number of developers of a particular quality. So if your software company has a certain number of developers (say 10), who output say 10-20 lines of debugged code per day, it would take them between 1.5 to 3 years to develop an application that has about 100,000 lines of code (thats about the size of Ruby On Rails or SugarCRM in 2007).
This back of the envelope analysis probably explains why there is little or no software from this part of the world that has the same quality and depth that Ruby on Rails had as at 2007. I stand to be corrected.
I know the next question you will ask me is :
"So why are there only small software companies in Sub Saharan Africa?"
And to that i can only reply: