Monday, September 12, 2011

…a small software company

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: 
"…a small software company"
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… 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:


  1. Without trying to be Omawunmi, I think part of Sub Saharan Africa's reason for small software companies is that we lack the discipline to manage anything bigger. From the volatile always itching to move developer (who has to survive) to the CEO who is a lot more interested in spending small and reaping huge profits, it doesn't provide the foundation for anything beyond small.

    If you also take into consideration that the client base for the software produced in Sub Saharan Africa usually has quality as the last item on the list or not at all after considerations on politics, cronism and kickbacks have been given due attention in getting the contracts. If there's no push for quality from the clients everything becomes a 'hack'.

  2. Aptly said. In addition to what Kere said, 90% of software projects are usually borne out of the desire of the Software Company to transform their ideas into a product and sell to an unwilling buyer resulting in such projects to be hurriedly executed, gather the proceeds and run off (after sharing what is due other 'conniving parties').

    The result of these no doubt can be seen in the lack of willingness on the part of such software company owners to invest in manpower needed to power the level of efficiency synonymous with top software companies world-wide.

    I think until prospective clients begin to see the need to actually automate business processes rather than buy off the shelf ideas from software company owners, carry out due diligence into the operations of such vendor/providers we will still be faced with the scenes of the 'briefcase' software company.

  3. >> I think until prospective clients begin to see the need to actually automate business processes rather than buy off the shelf ideas from software company owners

    What about building solutions that target a wide swath of the consumer market rather than an individual business? To me that's also the problem. You shouldn't have to build a purely "for business solution" to be successful.

    Mr NollywoodLove is reaping what seems to be significant profits with this approach - albeit the fact he's leveraging infrastructure that already exists.

    With that strategy, if the solution is compelling enough you grow organically and potentially rapidly.