I’ll talk from the programmer’s perspective.
1. SPEAKING OUT: Many programmers are employed, its too risky to voice out. So you’ll almost never see it around that a programmer comes to call out a client for wrong behaviour. But project owners now find it a hobby to come to the social media to publicly shame Nigerian developers.
This has bad effects, people from other countries are buying it, Nigerian developers are scammers.
2. INTERNAL BEEF: Developers all around the world miss deadlines but people voice out only when its Nigerian developer because its uncool to admit that Indian or Pakistani developers failed after coming out publicly to shame Nigerian developers.
3. DEADLINES: There are many reasons project deadlines are missed, some are the faults of the developers some aren’t. But one thing is very clear, programming is a very high cognitive task, you can’t develop muscle memory on it like riding a bike, running, peeling oranges.
These days, a new version of platforms appear every 4 months. The programmer has to relearn everything all over again every quarter. Unlike in accounting, economics or law where things stay almost exactly the same for decades, even centuries.
Programming isn’t a straightforward task like preparing a document, completing an excel sheet or contacting a client. Sometimes its like solving a puzzle where the rules are being changed with or without announcements. It is really tough to give very accurate deadlines, every block of code requires active thinking, testing and rewriting.
4. TRAINING: Learning time is not factored into the time table of many software companies.
They don’t just care that devs need to re-learn the ever changing platforms they are using every 4 months. Or maybe, they are approaching software developers the way they would approach business or hr teams where the field of knowledge doesn’t change much over the decades. There are several software companies that will never invest in the training of their developers. Devs don’t deserve training, they are machines with infinite intelligence.
5. SIDE PROJECTS: Yes, some devs take up more jobs because the clients some times beat down the price so low (its Nigerian, so cheap labour) that the dev has to take up more jobs just to put food on the table.
Some clients even want the work done free, before they can pay.
6. LOW WAGES: Average programming salary in the US is $7,000, in nigeria its $350. The gap is too wide for the exact same job isn’t it.
There is also the Domino’s pizza syndrome that happens to some project owners. People can walk into Domino’s and comfortably buy a pizza of N5,400, but then they come outside and start dragging N50 difference in transport fair with the bike man that will take them home.
Some Nigerian project owners won’t pay 300k ($700) for a project in Nigeria but when they contact Indian developers they are happy to shell out $3,000 in one go.
Fast, Cheap, Good — you can only choose two.
Some will leave devs that have the portfolio of knowledge to execute the project and go hand the project over to a first timer in that field just because they charged way lower. Programming isn’t one tall standing pole, its a huge tree, with many different branches and sub-branches. That someone is good in one branch doesn’t mean they are equally good in another other branch. Even though, any good developer can adjust, there will be an incubation and on-boarding period that is usually not factored into original timelines.
7. NOT PICKING CALLS: About calls, statistically speaking, it takes a programmer 23 minutes on the average to regain concentration after being distracted. a distraction could be as subtle as touching the person’s shoulder while they are coding or calling for a meeting, starting up an email war, a phone call.
If a feature isn’t ready yet, it isn’t ready yet, calling 300 times a day won’t complete the feature, it will simply put more pressure on the developer who might choose to ignore the calls totally.
8. SHORT DEADLINES: Some clients are happy to think about a project for 3 years, finally when they contact a programmer and learn that it will take 4 months to build, they want it built in 2 weeks or threaten to pull out of the deal!
A project that will take 9 months to deliver will take 9 months even if the pregnant woman is mandated to deliver in 2 weeks. Anything before 9 months is premature.
9. WEEKLY MEETINGS: There are many solutions to some of these problems, one is to always meet your developer at least once every week to get a demo of features so far.
Or get another developer to do the meeting. Many big tech companies have used this method, they mandate their devs to be physically present at work only on Fridays or wednesdays.
As a developer, this is a method I have adopted in recent times for my clients. It helps a lot on both sides.
10. CONSTANTLY CHANGING REQUIREMENTS: No project will ever be completed if the requirements are constantly changing. Some clients have new ideas every fresh week.
They’ll bully the dev into accepting the new ideas because they are the ones with the money.
11. ROUND PEGS IN SQUARE HOLES: Never put a non-tech person to supervise a tech team, the outcome is almost always disastrous because of the sharp contrast in their backgrounds.
Its like putting a choirmaster to lead a military squad. No matter how good of a manager the choirmaster is, so many choir principles that have been proven to work won’t just work on soldiers and warfare.
I know many programmers that can’t just wait to quit their jobs just because of their direct supervisor who is out of touch with programming reality.
There is a reason almost all the successful tech companies are co-founded by people with strong tech backgrounds.
12. Also as the original post says, learning programming on your own will make it much easier to understand the best way to relate with devs and get results.
CREDITS: This post first appeared on medium and is written by Dave Partner Ozoalor.