Monday, April 9, 2012

No Old, Bold Developers....

So its been a long time!
So long that i had to use a search engine (guess which one!) to find the URL for my own blog!
My last post was like more than 5 months ago and i apologize….sincerely. 
Rest assured that the reason i have not posted anything in a while is not because nothing has been happening…..rather it is because too much has been happening.
In the past 5 months i have:
  • Had lunch on the roof of the Co Creation Hub in downtown Yaba with a host of enthusiastic Naija coders and 4 other people almost as crazy as i am
  • Met some awesome developers across the continent , one of whom i have christened "The Black DJ" after a remarkable product he built on the West coast of Africa to another who developed an Android keyboard for Amharic on the east side
  • Carried out some eye opening cross-continent-research with my man Ato 
  • Watched two Ethiopian girls put Willow Smith to shame :-)
  • Twice bumped into ladies rushing out of the same men's room (yes men's room) i was walking into….in two different countries!!! (it is not a small something!)
As i am sure you would agree each of these items is worth a full blog post …or two but i would crave your indulgence to let me postpone all the gist to a later date.

The issue i would like to broach today if you have a few minutes is something that has come up in a few discussions i have been privileged to be part of in the last few weeks, an issue that even yours truly could be guilty of.

A popular saying goes: There are old pilots and there are bold pilots…but there are no  old, bold pilots. I totally agree .
Another saying goes: There are old software developers and there are bold software developers, but there are no old, bold software developers …or at least very few of them….in Africa. I am also almost tempted to agree.

What do you think?

To make things a bit clearer, I will use a scenario I have encountered in Nigeria and which i think is replicated in many African countries:
Okeke is a young software developer who started off as a .NET developer , straight after he left school, he got a job in a small software company where he now works developing what will one day become their flagship product.
The product gains maturity and is deployed for a few paying customers and then a few more. After two years, Okeke is now recognized as a veteran .NET developer in the firm where he works and leads a team of 3 other developers working on the same product.
At some point he leaves that company for another one that offers him a position with more pay and this time leading a team of 4 developers working on another similar product. He does this stint for another 3 years before leaving for yet another company (a start up this time) where he is offered a position as lead software architect or CTO. It is at this point that things change. 
Why? Well,  you see the thing is, as lead software architect, Okeke believes that his days of immersing himself in code are over. Its time for him to start managing projects ,meeting clients and making all the tough decisions on whether to use Microsoft MVC Cake PHP or WebApp2 for the next project while he leaves the day to day coding duties to the developers working under him. Indeed ask any developer in these parts where he or she sees themselves in the next 5 years and you will hear things like :

"i want to be a consultant"  or
"I want to be a software architect"

for many of them the thinking is that at that stage you will be calling the shots, telling people how to do stuff instead of having to do it yourself.
Contrast this to other parts of the world where you see a lot of "mature" software developers who have been in the game for 15 to 20 years and are still going strong like Clarence Seedorf. If you do not believe me, you can take a look at this list of programmers who have affected our lives in one way or another and you will see that a good number of them are still very active developers and do not look tired at all….not by a long shot.
I wonder if this could also be a contributor to the small software company syndrome i hinted at in my other post. 
Maybe this is why not many earth shaking achievements in the field of computer science have come out of our neck of the woods because by the time we are getting to the stage where we know enough to do anything enduring , we loose interest and start hustling to move up to "management".
But then again maybe its because developers are not well compensated for their efforts and feel that the only way they can get the compensation and respect they deserve is to make it to "management"….but could it be that the reason that developers are not well paid or respected is the very same issue we are discussing? 
Maybe thats also why software developers around here do not get the respect they feel they deserve from the non-techie community because when you think about it, its difficult to have a lot of respect for people in a field who are all trying to get out of that field. For example imagine an argument on a software solution deployment between a software engineer with 4 years experience and a project manager on the client side with 15 years experience who has seen software developers like the one he is arguing with come and go like soldiers through an army barracks. Who do you think will win? Now imagine the same argument but this time with a software developer with 15 years under his belt, what are the chances that the outcome will be the same?
Who knows right? Food for thought. 
Its time for bed, i am beginning to ramble and also i need to catch up with a few YouTube videos before i hit the sack as my link seems unusually fast tonight.


  1. Its with mixed feeling that I write this comment entry, while your consideration is very true, the deep truth is that developers down here are trying to survive and thus hardly "make earth shaking achievements". Within a period of 7 years, I've gone from Java to PHP, from Desktop to Web to Mobile, from YUI to JQuery to ExtJs, from Joomla, to Drupal, from just writing Code to building API's with design patterns and the likes ... all to be "relevant" and "equiped" for the "jobs" around me. I have done a lot of stuff, mostly half-baked, but no "earth movements" yet, it's not easy having to stay with all these best practices especially when U can't get help from the "community". I've been working on some GWT based projects for some years now and seriously its been a lonely journey, one that has paid off anyways (in kind, still waiting for the cash). Contrast this with my hardware / networking pals, or my HTML/CSS friends who've graduated to "chief developer" with "assets" to herald their every entrance. All I can say is that all of this "madness" has really got to payoff soon enough, at least so I can be a point of reference for good.

    1. Hi Charles, You are right in so many ways but then you have to consider that those "earth shaking" achievements i talked about usually come as a result of finding a unique or new solution to a problem and this does not come easy, it usually comes after years of dedicated work, it could be anything: e.g. a new algorithm for PIN number generation, a successful open source project...anything. And if you look at the list of successful programmers you will find that while many of them made the headlines in their Twenties a great many of them actually struck Gold in their 30s and above. They were not sleeping in between...they were slogging away at their craft.
      I agree with you that the community is not supporting developers as well as it should (thats a subject for another blogpost i guess) but things are slowly changing for the better. When you consider that there was almost NO community about 3-4 years ago.
      I will say: so long as your heart is in it...keep slogging away and you will definitely reap the rewards

  2. Permit me to ask a very stupid question: strictly speaking, today, what exactly does our market/environment need these old, experienced, deep developers for? One also ponders how many hundreds of expatriate, old, bold, battleworn Seedorf-esque coders we have swooping in from yonder places in hordes to take up the opportunities that our lack of their peers locally have created. If you can't think of enough of these types you've met (at least compared to their ilk in other industries where we sadly also lack depth), then the immaturity of the market to which you alluded may begin to seem more like cause than effect.

    Perhaps in the end the market gets what the market needs

    1. Spi, your question is by no means stupid but it raises another question...whose responsibility is it to develop the market? the buyers or the sellers?

    2. Question 2: In this context, is the developer really 'the seller'?

    3. In the market for services and solutions...he may not be "THE" seller...but he is definitely "A" seller

    4. What makes a developer a real seller in this context? fine you are selling that's only if anyone wants to buy from you...but the older you get the more wage u demand....and in this environment we are in, who really wants to pay a huge wages for the so called "depth"? Can you give me an example of an indigenous company that will need the services of 5 Essiens in their company? and what exactly are they into. Now I want to take this up with you if you have the time :)

    5. Hi Sogo, I do not know about 5 Essiens, but i do know about a few software companies that had developers who were very good at what they did and it showed. Sadly these companies are no longer at those lofty heights but not because the market was not buying what they were selling. (Maybe we will discuss the reasons in another blog post :-D). Socketworks and Splashers are just two of them. Many of the guys who worked in those companies between 2002 and 2008 have gone on to hold their own all over the world. Some are still into Software development while others have become Consultants :-)

    6. "Sadly these companies are no longer at those lofty heights"
      "while others have become Consultants"
      I guess you have agreed that those companies don't exist and when you get to a certain point as a developer in Nigeria, you either become something else(maybe PM), become a consultant or start your own company. There is no place for the so called developers with depth.

  3. I have always being saying this that Developers in Nigeria are not really appreciated. Based on personal experience and observation, owners of software businesses in Nigeria see software development as a buying and selling trade. First the Project Managers they hire most of the time never have a clue what software development is all about and they seem to be getting the higher pay. The Project Manager still calls on the developer to help him sum up rows in a spread sheet. You are faced with a situation where the project manager probably just got a Masters degree in Accounting (maybe that is why he earns higher..shrug) and really has never managed a project before. On the developer side, there is very little salary increment or if there is it takes a long time. A Developer with say a Masters degree is seen as too expensive to employ. You get the phrase "Is it not just code he will write. Any young graduate can be trained to right codes" thrown around a few times.
    So you find out in a company the staff with personal cars are usually the Project Managers upwards. Our good Old, Bold, 17 years’ experience developer is still jumping buses in Lagos (threat to life) every day. So we have a situation where the developer is struggling to meet up with the social standard of the project manager. Rather than spend time thinking and planning the next big solution, the developer is looking for small projects on the side that can bring in extra pocket money. Hopefully if he can execute say 40 websites and 10 medium size projects, by the end of the year he could afford a small car to move around with (He is distracted).
    Sometimes company policy states that developers who get more certification will have their salary increased. But management never fulfils that promise. Rather you have a situation where HR goes back to the NYSC camp to seek fresh graduates who have no serious experience developing software. Management hires these young graduates and God help you with all your 15 years software development experience if this young graduate knows his onion just a little bit, chances are he may be getting almost the same salary with you (You screwed. All you can talk about is experience).
    Another angle to the scenario is the people who make up the Business Analysis team in a software company. I have personally had quarrels with a few. When they initially start pushing for a project, the development team is unaware of what is going on. The B.A team goes about over selling the solution which doesn't exist yet. And the client gets promised that in two weeks the software will be deployed. Once client signs the agreement, on a Friday morning B.A team approaches the development team with their numerous power point presentations and 40 page proposal which they belief is enough information for the developer to build a solution. Now management insist it must be ready in two weeks. You find out that when software gets deployed, a lot of time is spent modifying software to meet the client’s actual needs.
    Another issue is the fact that Developers in Nigeria always prefer to go solo. I have always seen software development as a team thing. But Developers here prefer to be founder, creator and sole beneficiary of whatever financial benefits his genius software will bring. When product makes so many sales and he can't keep up with the demands, he now seeks to higher younger Developers and begins to play Management role.
    There are so many battle scars I could tell over a drink. But all the same, change is coming.

    1. Ndy, this is very interesting. You are on point!

    2. Why won't they go "solo" when there are no incentives to stay in the big teams? There has to be efforts from both business owners and developers to create long-lasting value. This system won't allow us to be great.

      I like young devs as much as the next guy but experience is a real advantage in development.

    3. A few things:

      * My motto: less complaining, more adaptation. I have noticed that we Nigerians have a tendency to talk about problems as though they are excuses for the fact that we haven't yet accomplished what we set out to do.

      That being said, here are the reasons for the things you mentioned and the reasons why we should see them all as observations of the landscape as opposed to problems:

      * Project Managers will earn more than developers because they have more responsibility, AND in most cases the currency they bring is not talent, but closeness and/or trustworthiness to the project owner. Developers bring actual talent, which means I can't hire my daughter or nephew to code unless I want to crash and burn. That means I expose myself to the huge mass of 419 and sudden unexplained resignation that the Nigerian contractor landscape is characterized by. A project manager is a nice way to abstract all the development talent behind a nice, stable firewall that remains stable and won't bail on me the next day. Also, it is harder to get a job as a project manager.
      * The phenomenon of treating coding like some sort of workman's craft is not a new thing. It is endemic especially in places where technology is not yet a primary focus. In Nigeria also, most of the time the code we source locally is what we already assume is super-simple, so there is a tendency to assume it is a monkey's job, especially when the webmonkey kids display their ability to deploy LAMP and drupal templates and call that "coding". The truth is, if the client really appreciates the work he would try to outsource to india instead, and Nigerians are not the only ones facing this challenge. Others have solved it, we should too.
      * No good developer of 17 years should be jumping buses in this Lagos. Not by a long shot. There is too much work to be done, and there were too many opportunities along the road to "17 years experience" that if he missed them all, there is a problem. On the other hand few developers of 17 years experience have built their own houses, either. But we are getting there.
      * You keep mentioning the word "salary". Ideally a developer should NOT be collecting a salary from anyone else other than a fellow developer. In this country if you are employed as an in-house developer, prepare to be treated as support staff and it had better be a Bank or an Oil company. Even then, prepare to watch your contemporaries in core positions earn 200-300% of what you do while your "salaries" are equal on paper due to things like deposit targets and finders' fees. So as a developer if you are complaining that the company that employed you is paying peanuts, remember it is just a reminder that you are not where you should be. This is the case worldwide, to varying degrees.
      * Solo developers: The problem here is trust. Just like the standard employer, a developer faces all kinds of risks when he exposes himself to the wild world of randomness in the Nigerian tech scene. I mean, one of the microsoft staff got his phone stolen at a cchub event for gods sake- an event hosting not a bunch of yobs, but developers. Can you really trust such people?

      Personally I think for Software development to grow, we should as developers first learn to trust each other and also earn that trust. We should band together but cautiously.... so that the largest groups are the ones with the most loyalty and trust between members. We should abandon the "me first" mentality and learn to collaborate. When we do that, groups of developers will become easier for clients to trust than a crowd of solo cowboys.

      How to surmount this personally? Befriend fellow devs and find guys you can trust. That's the first step. When you get together with these guys think about how you can collaborate and you will be shocked what will result from it. Don't be discouraged by the world of salaried development or the attitude of your clients!

    4. I'd also like to add that the "I must become a consultant or software architect" mentality is borne entirely out of laziness.

      I don't respect developers that think this way. Even Bill Gates left the reins of coding with much reluctance and tried to return to it several times in his life.

  4. I thoroughly enjoyed this post as I did your other posts. I love your writing style. I think the saying "there are old pilots and there are bold pilots…but there are no old, bold pilots" should be adapted to the African context.

    "There are old Africans and there are bold Africans but there no new bold Africans"

    The bold Africans in are people like, Nelson Mandela, Mark Shuttleworth, Hannes Van Rensburg and number of other South Africans I know in technology.

    In enterprise, South Africans have blazed the trail by boldly spreading all around the continent while others play xenophobic games.

    There is a lot we still have to learn from South Africans in Africa

  5. This comment has been removed by the author.

  6. Really interesting post. I'm in my service year seeking to be a sw developer as well as an entrepreneur. The insight exposed in the post has made mw chat a better course for my career path.

  7. I have a career to build in IT but facing a bigger challenges along with my life time..... NID serious help for a way oUT. pls add on facebook easykielolaolu or twitter @adefidipe. pls guys u can be a help to achieve my future career which am dreaming about every now and them.

  8. thanks that is but i want learn more about these