Jason of Iroko recently announced mouth-watering offers for developers and this triggered a long discussion about software engineer pay in Nigeria. The discussions on techCabal’s radar got me thinking about software development in Nigeria, do we have enough world-class talent or could we be better?
The software engineering field has spawned a wide variety of roles: product managers specialize in product design and customer interaction, software engineers write code and ensure quality while devOps folks handle deployments and infrastructural issues. Interactions between these fields lead to the delivery of great software. More importantly though, these distinct fields are essential for specialization, which is critical for growth.
At small software firms and startups all over the world; engineers are expected to be responsible for the whole gamut of software development – UI design, development, testing, deployment and customer support. Not to say this is bad; sometimes there is a genuine need for generalists and developers can acquire great skills by working in such places. However, as the popular saying goes, jack of all trades, master of none. I doubt if it is possible to be well-versed in all the numerous fields of software engineering; moreover standard practices like pair programming, build-measure-learn and one-click deploy weren’t created by generalists.
Building software involves a lot more than cranking out code and shipping software artifacts; there is a need for thought leaders advocating best practices and innovating new approaches. And this is why specialization is essential. Now, looking at the Nigerian software scene, can we have world-class experts without specializing and going deep? In recent years, the number of start-ups, incubators and software shops in Nigeria has ballooned and demand for engineers has gone up. However despite the large number of excellent Nigerian software engineers, we still have a disproportionately small number of thought leaders.
Some might argue that there is a dearth of thought leaders and specialization because the Nigerian software industry is young. I disagree, rather I think we have lots of engineers with significant experience shipping high quality software and meeting deadlines. Writing software for the Nigerian market is fraught with challenges and surely there must be some best practices to share, unfortunately, we do not hear about their stories. For example, why isn’t Konga publishing on their tech blog? How about the Terragon tech gurus writing white papers about Adrenaline? Nairaland? Such efforts drive technology adoption, improve the entire field and might even bring in new talent!
Let’s talk about change…
Sadly most computer science graduates do not know how to write code; in contrast, fresh graduates in other places complete non-trivial projects before graduation. This gap puts a significant drain on firms who have to invest heavily in training and mentoring fresh employees until they are proficient.
The educational sector has to be fixed; a catch-them-young scheme aimed at motivating undergraduates and secondary school students should help ensure a good supply of trained developers. The great work being done by Andela and CTI is worthy of mention: they are creating realistic environments and this is a step in the right direction.
Top companies, incubators and the existing thought leaders can accelerate growth by creating conferences, meet-ups and talks. These will provide opportunities to share ideas, drive networking between potential employers/employees and increase collaboration. Furthermore, these create opportunities for upcoming engineers.
Developers need to up their game too – it’s just not enough being the best programmer out there, we need to contribute to community too. Do something – create a tech blog, give a talk at a meet-up or mentor upcoming developers. It also involves being open with ideas, learning on every project and driving good practices at and outside work. I’d expect programmers to be more ambitious and aim to change the world (enough of apps that move data between databases and devices). Seek challenges, learn a lot (e.g. computer science, entrepreneurship, product design, methodologies, testing etc) and then inspire people.
Our ‘unique’ environment involves piracy, intellectual property disregard and tough economic conditions; notwithstanding I believe we have the potential and can do it. Rome wasn’t built in a day and creating a world-class industry will take time. However, if we try, we might get there faster. Hopefully someday soon we’ll have respected Nigerian thought-leaders actively pushing the boundaries of software development. Our very own Brenden Eichs, Joel Spolskys and Bob Martins…
Let’s all help create a thriving Nigerian software industry – one with international acclaim. And then we can aim to get the 6-digit dollar salaries too…
This post first appeared on TechCabal.
7 thoughts on “World Class Nigerian Software Engineering: Are we there yet?”
Nice post. Am kind of only attracted to the second half of the post (the solution part). We need mentors. Beginners need experts as mentors through their dev voyage. The only difficult thing I know in learning software dev is lack of mentor. If we can have somthing like http://careerdean.com
Thanks for the feedback! Nice link – I never knew of careerdean.
Regarding mentoring, what kind of mentoring do Nigerian developers need and how can that problem be solved?
Reblogged this on Chika's Blog and commented:
At the end of the day iron sharpens iron…. A healthy ecosystem gives software engineers the opportunity to spar, and get better together.
Thanks Chika but again we have to start from somewhere don’t we?
Reblogged this on Peter Mbanugo.
Nice pos. I like the second part about change.
“Developers need to up their game too – it’s just not enough being the best programmer out there, we need to contribute to community too. Do something – create a tech blog, give a talk at a meet-up or mentor upcoming developers.”
It’s up to us to make our community better.I was blogging sometime last year (I’m thinking of starting it again) and I felt happy and satisifed that I’m giving back to the community and helping it grow when I met a guy who said one of my post helped him immensely in his job. A lot of time, the so-called best programmers seat down and go through interview series, interviewing for their employees and complaining that “good developers are scarce”, but fail to ask themselves how they can help the situation. Employers seek experienced or skilled graduate and fail to employ and train them. My point here is, we fail to help ourselves grow. We are failing our country, killing our industry, and not helping to see that we breed good developers that will be sort after from abroad. We’ve got the best minds here but we fail to help ourselves, and we should learn from the Indians on how they accomodate, and guide each other. I once interviewed a series of Indian guys for a software position, and believe you me, 95% was not it.
So I want us devs to come out of our silos and begin to help each other, create a community, contribute, and support one another.
I’m organising a study group sponsored by Pluralsight.com, which is an avenue for continuous learning, and that’s how I’m helping my country and growing the community. I need sponsors to make this bigger, but it’s not forthcoming.
Get out, and do something for the community!
Thanks Peter and great to hear about your work with PluralSight too!
How is it going?