Tuesday, May 16, 2006

The challenges of software outsourcing in Nigeria - a case study of splashers technologies ltd: Part 1

Software outsourcing is its simplest form involves seconding or contracting of software development jobs by one company (The Owner) to another (The Outsourcing). Companies will generally indulge in outsourcing for a number of reasons, the commonest of which is cheaper labour and professionalism.
Overall, companies outsource for the following reasons:

1. Cheaper Labor: Companies/Individuals in developed countries whose economies are generally stronger will outsource to competent hands in the third world to get better deals in terms of per hour charges
2. Professionalism/Dexterity: Certain countries have made a name from their prowess in software development. E.g. India. Certain firms in some little known countries have also made a name from their competencies.
3. Specialization; some companies started up with a technology arm that may primarily do jobs like networking. In their quest to give their customers a total solution, they often need to float a software arm. Rather than embarking on the intricacies of taking on the challenges of setting up a software division, outsourcing is a handy option.
4. Companies have also been known to outsource for reasons ranging from a need for more capable hands, large volumes of outstanding jobs and a need to train their own internal staff on the job.

To those who will question under whose authority I write or what has placed me in a position to write an article about outsourcing in Nigeria. I have been into the outsourcing job with Splashers Technologies for 3 years. Most of our jobs have been sourced from Artemis –solutions group, MI USA. Splashers must have started out with a very small team because by the time I joined in December 2003, I met a team of 3 developers and that included the GM. Well I replaced 1 of the three so we were back to three.

Since then, we’ve scaled. From a double room that was more of a single room divided into 2 in Festac town Lagos to a big building in Obantoko, Abeokuta to a much better neighborhood in Ibara Abeokuta. In addition, the number has risen to between 11 and 13 developers, an admin team, office maintenance crew and security personnel.
There are plans to scale even larger: a permanent building, a consulting arm in Lagos or/and Abuja Nigeria. There are plans to take on local outsourcing (so far we’ve completed 3 jobs and more are queued). Other plans include more community development and an initiative that kicked up among splasher’s developers is being supported by the company (NGdeveloper.net).

Back to the mainstream, I must emphasize there are challenges in software outsourcing. This writing was motivated by a friend in the USA, Francis Ibikunle. Francis wanted to start an outsourcing initiative, the regular send jobs down to Nigeria, get it done and uploaded, make a few sales and start up a stronger company in Nigeria. Well, I buy his idea but not the approach. Francis would rather do business with me than with Splashers Technologies. Now Francis is a motivated guy, he is definitely a business man and he has not given me room to forget the fact. Where I am a self motivated entrepreneur too, I must say I’m probably in the line of deep thinkers. I have seen a lot of the problems of outsourcing and I intend to learn from history. I tried to persuade him (Francis) to do business with an established company rather than an individual, tried to make him see and ended up presenting him with options. Well like Jesus Christ, I was biased; something like choose life so that you may live.
Francis has since chosen to sign a deal with a guy in Lagos. As a good friend, I told him I’d write this article and relate more with him. In his chosen path, I offer as much help as I can because I like success stories. So that we may learn from history, I write.

I have identified a couple of challenges over the years, most we’ve succumbed but not without some agonies, some we are gradually overcoming. I made up a little list that’s not exhaustive.
1. Evolving and managing processes
2. The goal, getting the team to buy into the long term vision and mission
3. Professionalism
4. The huge challenges of Infrastructure
5. The development abstraction layer.
6. Managing scalability

Because each item in the list above can generate a lot of steam and writings, I have tried to be as succinct as possible. Part 2 and maybe subsequent parts will handle items not covered in this first part.

Evolving and managing processes;
I was told by management sometimes ago thatI have the credit of being the first to package a deployment document with a solution; a readme.txt, scripts, at least formally. Since then this has become standard practice.
The company has since evolved a process of software development. The beauty of this is that the processeses evolved. Unlike the evolution of man, however, the process despite the fact that it’s stable now is still evolving.
The process is a long drawn one; methodologies of successful companies were researched, articles were shredded. What’s important however was that only the part that works for us in practicality were adopted, and more often than not, with some modifications.
Presently, we have processes that handle general software development process. A process called CADIUM may soon be patented by Artemis-solutions group and another company in Michigan has already adopted the process. All thanks in no small way to splashers Technologies.
The quality assurance (QA) process is core to business. If you think quality assurance is a small deal, try doing business with people other than family or ask Joel on software. Before this process was fully embraced, several iterations were wasted. By iterations, I mean the series of we’ve completed and uploaded this milestone, client test (in this case, project owners that outsourced) and alas, uspRegisterUser is missing and the solution is back at home. Somehow, that was thee last piece worked on by developer A and it skipped his mind during packaging. Another common scenario was, “You said this was fixed but it appears that not the case!”. These expensive iterations were emphasized by the time difference between Nigeria and the USA. We have a about six hours difference between us and if we upload stuff around 5pm Nigerian time and they discover the bugs 2 hours later (say 10am MI time), overall the rest of the day is bad since we’ve gone home in Nigeria.
A number of solutions were quickly presented to combat these issues: a night shift was pushed. We thought of the fact that we ran a private power generator for the better part of the day, our current facilities just won’t support a night shift. A more versatile QA process was adopted instead; a QA team was commissioned consisting of mostly dedicated QA guys. QA methodologies like unit testing and hallway testing were adopted. Other more intrinsic details included rules like checking out of a source safe repository and never testing on the development machine.

Version control was another process we adopted early. The was a need to store codes in a central repository for reasons including needs atimes to revert to a stable version of a module, track changes to create change logs, keep code safe among others. Many version control options were considered taking into account the poor internet connections prevalent in Nigeria. We eventually settled for subversion and all client machines now run tortoise svn.

A hiring process became necessary to hire highly motivated and genuine coders. A matriculation process for new signups includes introduction to coding standards and existing frameworks, never failing to mention just how much innovations are welcome. For instance, we had a team evaluate our in-house object relational modeling framework ORM and we’re seriously considering dumping it for NHibernate. A training process saw us starting a geekify session every Wednesday. A developer researches a topic for a week and presents the topic to the rest of the team.
Other processes that have been evolved in the process include a backup strategy, project management process, process evaluation process, project management, productivity management and client satisfaction evaluations.

Watch out for part 2


Famakinwa Babatunde said...

Well, I read your article and cool initiative your friend has, may be you should have also asked how splashers actually started it all. I have heard of a number of companies that started from a dining and grew into something large. the thing i dont understand about your views is this:
1. Are you being loyal to Splashers ?
2. Do you lack confidence in your skills ?
3. Do you lack the balls to step up to it ?
If I know the answer to this questions then I can tell you what exactly i have to say.
You have analysed the problems well, you understand the situation, does that not make you the best man for Femi's job ? Life is a step at a time and sucess is only for the prepared. And no one lives forever. So the moral is ....DO WHAT U GOT TO DO MAN

Kehinde Adewusi said...

Tunde, you had a company before u joined splashers, right? Maybe some of the problems I highlighted influenced you decision even though you are not exactly outsourcing. Maybe its liquidity problems you had, Maybe those monster balls failed you :), maybe I'm wrong.
But remember the things you used to complain about @splashers?
They say people don't learn from history and maybe I'm trying to re-write that history. I'm not afraid of starting a company, I just don't want to reproduce the things I wish weren't.

Famakinwa Babatunde said...

well said kenny, If you spend your life time analysing problems you what you will become PARANOID. You have analysed the problems and do you think you can know it all or see it all ? You never cant. mind you, I still run my company one way or the other and my main aim for relocating is strictly because I do not want the flame i have in me to die, i want to be among fellow developers and learn more. More this is like a Business IT for me. My monster balls never failed me, It is only a fool that tries the same thing and expect different results and guy I am getting those results. But I am still better than one who has never tried. Analysing problems alone is never good enough, they say seeing is believing, but I disagree, EATING IS BELIEVING, the proof of the pudding is in the eating. We are two different people from different classes of thoughts, I just wonder how people like you reason and do things. You know that is the main difference

FSI said...

Tunde sounds like a practical businessman and engineer while Kehinde is a professional engineer and analyst.

Kehinde Adewusi said...

You are right about Tunde being practical but I have always tried to separate the inability to see beyond two chess moves and practicality. For instance we have done business well but not optimally in the last 3 years. I only like people seeing what is at stake, I fear I may have sounded pessimistic though.
Business has been good so now matter how unbusinessmanly I may have sounded, things do work here...[secret, i may be rolling with my friend's business proposal next year]

FSI said...
This comment has been removed by a blog administrator.
FSI said...

Could you expantiate on that your friend's business proposal?

Kehinde Adewusi said...

I looked up your profile the last time I saw your post and there was nothing in it. Is FSI google's site crawler daemon process? :)

FSI said...

FSI is not a google site crawler ...

Just love your blogger

sunitha said...

Cool article about the outsourcing in Nigera....Software outsourcing