Disclaimer: This is an opinion based on my experience, observations and interactions in the developer ecosystem in West Africa, more specifically Senegal and Cote d’Ivoire.
In my previous post I talked in general terms about some of the issues affecting the developer ecosystem in West Africa with a promise to dwell more into the details in a subsequent post, so here we are. My initial post briefly touched on the skills gap issue and in this post I will try and focus on the reasons why. To make the writing of this post easier, i will repost the problem statement of my previous
You will hear complaints from local developers that they are not valued enough by local companies with major projects (enterprise) being sent out to Northern Africa (Tunisia or Morocco) or France to be coded at a premium therefore robbing local companies of much needed revenue and developers of much needed opportunities to build and scale major projects. On the flip side, you will hear horror stories from companies that tried local talent and ended being burned bad with awkward solutions that were badly implemented if implemented at all and are a maintenance nightmare making them resolute in exporting the coding work on the next implementation to make sure they end up with a quality product.
How did we get there?
This problem is not unique to Africa in general but finding tech talent with employable skills right out of college is difficult. The accepted wisdom amongst the CEOs and managers I talked to was to expect an initial training period after hiring to get to a certain level of productivity out of new hires. From developer themselves, they expressed a certain level of frustration with the quality of the education made available to them in the field of computer science. Complaints covered the sometimes questionable skill level of the instructors to the inability to sometimes being able to practice the craft they are learning due to lack of proper infrastructure. On that end, it’s not unheard of in certain private or public schools to follow a “programming” cursus without ever compiling or writing a single line of code on a computer all the way to graduation. Now as I said earlier, I’ve interviewed my share of college students for internships here in the US that I deemed not qualified because outside of college courses they didn’t have much to offer in terms of usable skills. The ones hired were the ones that went beyond school work and had side projects that showed self-starter spirit, and the ability to learn independently that are actually crucial for a successful developer career. These qualities are universal in my opinion and will apply not matter the context but even in the US, I feel there should be a tighter cooperation between the business community and the Computer Science academia in order to produce the types of graduates that will be day one contributors to businesses (and that means graduates starting businesses as well).
This more specifically applies to French speaking West Africa with all coding languages being native English constructs, and most material, tutorials, answers and questions being produced in English, French speaking African developers find themselves at a disadvantage when the only way to get past a nasty bug or implement a new feature based on solid architectural research requires Google Fu skills most natural to English speakers. The good news is that most develop a reading and writing proficiency that helps in most cases but the lack of fluency is definitely an obstacle to better and/or quicker code fluency. This is why at Coders4Africa we insist on being an English only company for conducting every day business as it will only help our French speaking developers being more proficient at their craft.
3) Cultural and Social Context
To each country their own culture and social contextes and in projects that span multiple countries, interactions between team members with different expectations can lead to awkward situations with different level of seriousness to them. For these developers working locally for international clients in the US or Europe, most problems I’ve encountered were focused on communication and that’s understandable. I’ve been part of a distributed team and one of the most successful success factors for this type of team is a high level of intra team communication to make up for the lack of physical proximity. The same concept applies for a client getting their project done remotely, a high level of communication ensures a high level of confidence for the client. The complaints that I have heard from clients the most was that developers would often disappear for long period of times, being unresponsive to emails, and when they presented work it was not up to the client’s requirements. Big surprise. Of course a whole lot can go in there in terms of project management and using some kind of agile project management methodology but if neither the client nor the developer are familiar with it, it makes for a tough interaction.
In terms of work habits as well, and this is more geared towards customers in the US, American are known work horses and expect the same out of their counterparts. Mixing those expectations with the more laid back approach to deadlines and work delivery of certain shops can lead to let’s say unpleasant situations. It’s just not Americans, for expats coming back from Europe or the US and launching startups, this turns out to be one of the most difficult aspects of working locally. Things just happen slower. Of course if the work is geared towards international clients then there is no way you would be able to sustain a business and this requires coaching and training staff to meet these international standards.
I hesitated a lot to use the term exposure as one of the issues but allow me to use for lack of a better terms in my mind at the time. Throughout the multiple conferences we held for Coders4Africa, the most popular event we held were the developer workshops we held to expose local developers to the different frameworks and tools we used to do our work. This is where the most productive exchanges happened and where I enjoyed the most. Being a front end developer, being able to talk about AngularJS, TDD, build tools, continuous integration, APIs, and seeing the light go on was and is extremely gratifying but when I mentioned exposure, it’s to get back to the point that I know about these concepts and tools for the most part because:
- They’re common usage where I worked
- I’ve learned about them in school before
- I keep myself updated on what’s going on in my industry
To link back to my previous point about education, if the foundation is not solid, it will be difficult for the house to stand strong. Sometimes it’s just a matter of being exposed to the right kind of information. Sure some will tell me that it’s the individual’s responsibility to seek knowledge and get better, which is true to a certain extent, but the ease in doing so is not evenly distributed in the software world. I will expand more on that in my next point
5) Thriving business to development ecosystem
I have been fortunate to spend my career here in the US where a lot of the innovation in software development not only takes place but is then actively used by businesses/startups when it is not actually created by businesses/startups. This dynamic environment indirectly ensures that the workforce in general is always up on the latest trends in the industry if not actively at least passively. Programming for the most part in the US is a lucrative occupation, with demand outpacing supply. Businesses have recognized the importance of technology to their bottom line and invest in and compensate their developers properly to attract the best and ensure retention. I feel that is quite not the case yet in West Africa although awareness is increasing. The industry though as a whole needs a serious injection of capital to foster the kind of sustained innovation we see in the US and Europe.
The silver lining
Now that I am done painting this apocalyptic picture of this ecosystem, I would like to end by reminding you that this post is specifically focused on the problematic aspects of the ecosystem. Ask somebody to write a piece about the state of the developer ecosystem in the US and you would get something as grim, certain problems are just universal. In spite of these problems, what you should remember is the amazing number of skilled developers that defies these odds to bang out crazy good code, launch and support startups. Those are the real heroes in my opinion. I just wanted to talk about these to surface past conversations that I believe are still happening today in order to improve the eco system as a whole. I am a firm believer when it comes to African tech that a rising tide lifts all boats and a thriving African tech ecosystem with international recognition will be a boon for us all. In any case, I hope this starts a conversation where we can all learn from and come up with actionable items to help fix these issues, which is the real goal of these posts.