Friday, November 23, 2012

I Promise on my honour to be faithful and loyal to Ghana my motherland.

In a few days Ghana will be going to the polls to pick a president. The whole world is watching. Some confident others scared. I am very confident we will be super well behaved come December 7th and beyond. So confident I bet my signature on it using an android app developed by Bernard Adjei.

Bernard, Esoko's android ninja  seems to have an affinity for the word "Asomdwe". First he developed an app to allow us pay our last respects to 'Asomdwe Hene' (King of peace), Ghana's former president who passed a few months ago. His new app Asomdwe, available on the google play market lets us pledge to uphold our peace come December 7th and beyond.

Asomdwe is pronounced Ah -- Soom ... errrrrm ... forget the rest if you are not ghanaian or cannot speak twi. I just realised the english language is so incomplete. Asomdwe however means PEACE. Exactly what we want after we vote. Why not download the app and "...promise to hold in high esteem our heritage won for us through the blood  and toil of our fathers."




Friday, August 17, 2012

Developers have feelings too

Edem Kumodzi
I went to town with my old man one day and he introduced me to a friend of his we met as "that's my small boy". Heyyyy I felt like dying. I so hate it when labeled with that tag. Small boy!! My mum too. She calls me on phone and goes like "where are you? What are you doing?". Ah!! Those are questions you ask kids and teens not a gray haired young man like me heading for extinction. I don't know about other professions but in my line of work I have heard things that made me almost jump off 5 storey buildings. The only reason I didn't jump was because I had debtors to chase. I had to get help from another developer on this article to tell us what he also dislikes most about this profession. Let me set the ball rolling.

So Michael what exactly do you do. I am a web developer. Oh I have this printer that's not working, can you check it for me? Oh my goodness!! Such fabulous display of idiotic ignorance. It's just like telling the bank manager the security guy called in sick so he should forget his swivel chair and do the watching. How dare you. No please I don't fix printers not even when I am showing off to a girl.

I met with a client to discuss work he wanted me to do for him and his opening statement was "I have this thing I want you to do for me. It's something easy so don't charge me plenty." Oh no no no no not again!! If it were that easy you would have done it yourself instead of getting me out on a sunny day to just listen to, listen to, listen to... I am so angry it just turned me into a stammerer.

Let me make room for another developers' comments before I cause more havoc. Edem Kumodzi works with Ringier WA as lead developer and has feelings too. These are his words not mine. "I hate dressing formal. Thats the main reason why I never fancied working in a corporate environment."

"I hate working with non-technical managers who cannot effectively manage technical projects. They have no clue what I do, pretend to understand when I try explaining and yet make the most noise when the time to blame the technical team comes."

"I hate Clients who can't effectively communicate what they want. They let you dig your entire brain trying to come up with something only to tell you later that, that's not what they asked for. (What did you even ask for in the beginning? Nothing!!!!). "

I really feel your pain on the last point but I guess that's our occupational hazard.


Wednesday, August 8, 2012

The Book of Condolence

Bernard Adjei Oppong
In my blog post on African Time I talked about how Africa is rising in the arena of technology and apps development. Bernard Adjei Oppong, an Android code ninja at Esoko Ltd. developed a great android app and I quote how he intro-d the app to us.
So i got this idea for an android app yesterday. A simple app to record and display condolence messages to our late president.To make it more interesting i added a  simple functionality for users to sign their signatures as well as append their pictures to their messages

As we (Ghanaians) mourn the death of our former President, John Atta-Mills, we all can't go to the castle to sign the state's book of condolence even if they let us. Imagine the stampede and heckles. Those endowed with weight will bully the less fortunate skinny ones like myself so they get to sign first. Ha! Fortunately this app saves us all that trouble. It provides a simple and great way for us to pay our last respects to our former president over the next 3 days of national mourning. Great thing is you don't even need to be in the country or even be a Ghanaian to sign this. All you need is an android device and an internet connection to download the app.

Download the app from here and get signing. #Morevim Bernard. +1






Wednesday, August 1, 2012

African time

These were some of the headlines that made news 5 years back. Africans at each others throat again. President XYZ stages a coupe to oust the incumbent government. War leaves many dead and gives rise to acute hunger. Oil pipeline explodes somewhere because the residents of the town pierced the pipelines to siphon oil. If it wasn't someone fighting another for power, it was someone drunk on power and belching misbehavior on us all. It was one bad news after another. The continent seemed to be breeding all the world's problems.


Fast forward 5 years and the headlines read. 3 African countries make it to the world software challenge. Ghanaian software company is only African company to win awards at ABC innovation challenge. Young boy makes one billion need-I-mention-the-currency-something-shillings from his mobile apps. Software company finds innovate ways to help farmers have better yields. For once the headlines about Africa are not just wars and rumors of wars. There is plenty of good news though we still have pockets of wars here and there. Like a snake, Africa is shedding off her old skin. New things are happening. Africa is rising. All eyes are on Africa. It's our time to shine. Our new meaning for African time.

I remember when the first technology boom happened in the west. I was too young and very non tech savvy - just beginning my tech carrier. After hearing how the tech boom in the West gave rise to companies the likes of Excite, Yahoo, Lycos, Google and Napster, I wished I was more tech savvy then to travel to the states to take part in the boom. Well, God heard my prayer and this time brought the tech boom right to my backyard or doorstep. Like the African proverb goes "Even a mad man will not allow you to step on his penis twice", which translates to, "no wise person makes the same mistake twice". If I missed the first boom I definitely won't be silly enough to let this technology boom in Africa pass me by. It's a great opportunity for all of us in technology to take advantage, get innovative and build sustainable technology-oriented businesses. Those not in tech can also come up with innovations and partner with technologists to build businesses.

If you are a developer and haven't started building something to take advantage of this boom, your dad will need to take your name out of his will. For those who have taken the path of wisdom I have only two things for you.

Let's be competitive: A competitor is an enemy. Whaaaat? Did you read the book upside down? A competitor is never an enemy. Don't stop talking to your friend because he built a competing product to yours. Competition makes us better. It brings out the best of our creativity. Let's embrace it. In getting competitive the sky should also be our starting point not the limit. You and I use Facebook, google search and twitter today because those apps broke free of the boundaries of their continents. You can do same and should aim at it and work towards it. 

Don't be fooled by short lived media hype: The pen they say is mightier than the sword. Well, that statement is somehow flawed if Achilles is holding the sword but mostly true if a seasoned journalist is holding the pen. Journalists can make mounds appear to be mountains. They can hype your not-so-good product till you even get confused and wonder if that's really your product they're talking about. Have a plan of what heights you want to take your product. Don't be complacent when the headline says wow you have one million users. No. We are so many billion people in this world. You should weep instead of stomping the streets like a raging caterpillar when all you raked in was one million users out of 14 or so billion people in this world. Don't relent till you've reached your zenith. 

Death to the African time you and I grew up to know. African time has been redefined.


Wednesday, July 18, 2012

A letter to my mentor while he still lives

Mark Davies
God has brought many people my way who have at various stages in my life helped shape me for the better but this man I write about today helped me in a very great way to be the kind of me I am today.

You'd often hear these nice things being poured out at funerals when the man can't even hear you. Such a smart and convenient way to hide our cowardice. I refuse to be a coward so Mark Davies this is for you from the depths of my heart especially the left ventricle.

It's amazing the interesting way some paths cross in this life. I got a job with Rising Data Solutions in the year 2002 as a coldfusion developer. Rising Data at that time had their office in the Busyinternet building. I had a deadline to meet and decided to stay late to get the work done. A few hours after work hours, this man just came up behind me to ask what I was doing. I told him I was working on an inventory system using coldfusion. "Oh interesting. I have a coldfusion project and will like you to take a look", Mark said. I had never met him in the building before and I knew all the other offices well enough to know he wasn't working in the building so I just discarded what he said. The next evening I met Mark again when I went to make some photocopies at Busyinternet's copy center. He prompted me again about the coldfusion project he wanted me to see so I followed him after making my copies. It was true. He actually had a coldfusion project he was working on himself and needed help fixing some bugs. That was how Mark and I met. He ended up paying me to do the work from scratch for him. It was later I got to know he owned Busyinternet. Cool guy. He no dey rush - as we say it here.

3 years later I ended up working for Mark fulltime and that's when positive hell broke loose. Mark is full of ideas, too many of them. He didn't teach me how to program but stretched my programming abilities with the kind of requirements he desired in his projects. Back then we didn't have all these cool JavaScript frameworks that cook everything for developers these days. His project requirements were clear and no joke. I had to deliver. I made google search my best friend. With that kind of training there is no project I am unable to handle today. Thanks Mark for forcing me to dig deeper for solutions and never accepting "it can't be done" as an option.

Where Mark really sharpened me was in the area of interface design - the reason why a lot of people know me today. For my clean, sleek and user friendly interfaces. Mark helped me attain that height. He took my becoming a UI pro so personal and made sure I iterated over designs until every dot and line was in its right place. He stocked the office with books and at other times came up with alternatives to my designs with most flaws fixed. He pushed me to get simpler and less sophisticated with designs, reminding me always that less was more. He constantly teased me I had line-itis because I loved to use lots of lines in my designs. Well, after going through his mill I am today a better interface designer and information architect.

After breaking away to start Kursor Solutions, Mark gave me business advice and even gave me a copy of the spreadsheet he used to make his 5 year projections for his businesses.

Unlike my other articles I am keeping this one short because - less is more :). My mouth can only say as much as I will forever be grateful BUT my heart knows the real value of what my mouth is saying, especially the left ventricle.




Wednesday, July 11, 2012

I said I won't hire you. Ibi force?

With the current global competitiveness and mass unemployment, the last thing you need is to successfully make it to an interview only to end up shooting yourself in the foot. I haven't attended too many interviews in my lifetime but have conducted several of them. I love interviews. It's so akin to an American Idol audition. You get to meet different characters and get to grill them as much as you want. Well, for some companies it goes beyond the grilling to really very petty things. Very few companies will be frank with you on these things because they are quite personal but for me I said I won't hire you and these are the reasons why.

I was very happy having a great conversation with my nose until you showed up for the interview. My nose asked me to shut up because it had to sneeze a few times to adjust to your terrible body odor. I sneezed
so hard tears filled my eyes. Yes, u forced me to shed those tears for your departure from the company even before your arrival. On a more serious note, will you really hire someone who makes everyone else catch a cold and frown the moment they step into the office? I won't. I said I wont until you buy that deodorant.

Please take a seat. From your CV I see you finished Mfantsipim School. Tell me. What house were you in? House B he answers. House B? Gentleman I also went to Mfantsipim and we have nothing like House B. Is this what you are bringing on board - Lies? If you can lie to me at your interview I wonder what you'll do when I ask for a project status update. I am definitely not hiring any liars. You have really insulted my intelligence. No I won't hire you.

Hi Cynthia, sorry we kept you waiting. How are you?
Fine.
You have a very impressive CV.
Thanks.
Do you have any siblings?
Yes.
...I waited a few seconds for more info but none came so I probed further. How many siblings?
Four.
... again I waited for more info but Cynthia gave me none so I asked.
How many boys, how many girls?
2 boys 2 girls.
My temper rises but I act professional against my wish. Your CV says you enjoyed working on your inventory project, what about it interests you?
Everything.
... That's it Cynthia!! I have had enough. I am trying to be as nice as I can in an interview and you're treating me like an ex boyfriend begging for a come back. Imagine asking Cynthia to take minutes at a meeting. She'll come back with a report like "meeting started. 4 people were present. We discussed. Some laughed. Some didn't. Closed after 30 minutes". Ah! I won't hire you.

After resigning from my last job I was brought in to help find someone to replace me. The above reasons are not fictitious but real reasons why I didn't hire some people who were brilliant. It sometimes goes beyond just having knowledge to being able to really fit within a team environment.

Check your body odor, communication skills, trustworthiness and team player ability. A word to the wise.


Friday, July 6, 2012

I want to see something first! Show me something

Kelvin: Boss long time. How be?
Me: cool man. How you doing?
Kelvin: I base cool. I have been trying call you since since. What happened to your number?
Me: Long story charley. Why have you been trying to hunt me down?
Kelvin: The client is now ready for the project but says he wants to see something first.
Me: Nope. Sorry. I don't do that. I won't give him even a dot until we sign and he pays a commitment fee.
Kelvin: Hmmm... I told him but he is proving difficult. He said he earlier on gave the work to some guy and paid him. The guy spent the cash and didn't deliver so he is now very careful.

At this point I am getting a little impatient with this Kelvin guy, especially for the last statement he made. I consulted my big head briefly and continued with the whatsapp chat.

Me: Assuming KLM lost his luggage when traveling to Germany. The next time he is boarding a plane to another country, will he say because KLM lost his luggage he will only pay the plane fare if he gets safely to his destination with his luggage?
Kelvin: hahahahaha
Me: yea so tell him. The same way he has been bitten once and now is scared to dish out cash before work is done, I have also been bitten more than once by clients who after seeing something get busy with other things and just waste my efforts. No way.

Prior to this conversation I met Kelvin some 30 days ago when I went to fix something on my iPhone. He had also come to the same shop to over-spec his new MacBook computer. As is usually the case with guys, it didn't take long for us to strike an acquaintance. I gave him my card, he got to know I was a developer and promised to get me some clients. I have heard that line more times than I have blinked in life so I just added his words to my archive of empty promises. Next day Kelvin called with a job. This client who now wants to see a demo before he makes a commitment to the project.

Many times developers fall victim to that popular client line "show me something first and we take it from there". I used to show them something. A few clients who are serious enough will after seeing a demo get fired up for action. They'll suggest changes and also bring data for the work to be completed. Many more clients don't really desire to have the websites. They were either forced by a relative or some circumstances to opt for a website. They also ask to see something, some demo. You spend precious hours cracking your hairy coconut just to please this client. After a day or two you come up with something you are so proud about and know will make this client yours forever. You call him and fix a day to show him this, not made-in-ghana but, made-in-heaven demo. A day before your appointment he calls you back and tells you he needs to travel out of town for a week. No shaking. A week is just 7 days you tell yourself as consolation. You call 9 days later to fix a new date for your demo. The client gives you another excuse. At this point you should see signs of your made-in-heaven demo efforts going to waste.

After experiencing that a few times I learnt my lesson and hope you don't make the same mistakes I made. Now I am so resolved never ever to even put a dot on paper if the client doesn't make a financial commitment to the project. It has helped me weed out all the non serious clients. It also means I don't loose should a client decide to pull the plugs after a demo. I still have the commitment fee that serves as compensation for work done on the demo. It's a decision that requires firmness because sometimes the clients can really rap. You may fall for their con lines.

There are however times I make exceptions to the rule and do demos before even signing a contract. These are ONLY with clients I have already done work for and trust their paying abilities. They have proven to be serious with every project they come up with.

If at this point you are still in doubt let's see how the other trades do their transactions. Will a carpenter finish building something for you before coming for payment? You at least pay for the materials and some down payment. Will any lawyer follow you to court without you first paying a deposit? How about admission to school. Will you ever be admitted without at least paying something to show you really are enrolled? The hospital. I don't know any docs who will operate on you and take the cash after a successful operation. What if you join your ancestors - will you send your ghost to come pay the medical bills? I have run out of examples. Give me some more in the comments.

"I want to see something first" - how annoying. If your clients want to see something encourage them to either get into tourism or pursue photography. They will definitely see more things there. I rest my case.


Wednesday, June 27, 2012

I want my 10%. Hidden charges associated with project pricing

This is a sequel to my article "Exactly how much should I charge for this job". In that article I talked about how to go about billing clients. This sequel stemmed from the tremendous user feedback I received hinting me on issues I left out they wanted to see addressed. So here goes.

The either silent or vocal 10%
Don't be mistaken, I am not referring to tithes. I am instead referring to the cut for the one who got you the contract. I tag it silent or vocal because depending on the character of the one who got you the job he may either decide to ask you or assume you know he has to get his cut. You always need to be plain and open about this with the one who got you the job. Ask him, how much will you charge me for getting me the job. It's important to ask first because some take less than the 10%, others take as much as 30% - greedy bastards. You can always bargain with the guy if you think he is biting too deep into your cake. Don't feel too bad about giving this 10 or more percent because it opens doors to more contracts just like tithes open the flood gates of heaven. Mind you, this 10% or more doesn't get recorded on your invoice. It's strictly between you and the guy who gave you the contract. Handle that transaction offline.

Withholding Tax
Some companies, mostly NGOs or companies with international roots withhold 5% of what you bill them as withholding tax. They are required by the laws of Ghana to do so. You need to factor this into your total cost.

Other Taxes
It is important to know what other taxes the company or client will charge you. Some won't tell you before hand and just hand you a cheque with all deductions made. Yea, I know the look that will be on your face. The first time I saw that look was at a friend's engagement. In Ghana, the man is required to give his bride's brother some money (akunta sika) at the ceremony. This friend of mine knew for a fact his bride had no brother. Half way through the ceremony this dude popped up like a virus alert and claimed to be the bride's brother. My friend couldn't argue and had to save face even though he hadn't bargained for this surprise. I don't want that happening to you because, you may end up fighting with your client or his accountant.

Maintenance and retainers
For some funny reason some clients assume you need to maintain what you did for them for free. Well, you need to state clearly what your policy is on maintenance of the work you are doing. Mostly it's good to do free maintenance for 3 months and begin billing for maintenance from the 4th month. Again, whatever the client will require you to do as maintenance can be broken down into hours. There are some fixes that take less than an hour. You can either do those fixes for free or defer billing for that fix until you have enough fixes that measure up to an hour and over.

Except where explicitly requested by the client your invoice can list summaries of major deliverables in the project, not really a fine-grained breakdown of how long it will take you to even open Microsoft Word to start typing the invoice.

My real world invoices
You asked for some invoices I had presented to clients. I am doing this just for you. Just because I love you too much. I usually wouldn't put my rates in the open and I expect you to keep them a secret (yea right!). Note that rates vary between developers and/or development companies. My charges may either work or not work for you. Your client may slap you for presenting them with outrageously ridiculous bills, my client may smile and say "when can we start work?" The invoices below are neither templates nor the status quo and are a mix of past and somehow present developments. You can leave comments on the invoices if you need clarifications. You can also 'borrow' my invoice format or let me know if you have one I can 'borrow' .. scratch my back let me scratch yours :)

1. Blog site
2. Car auction site
3. Community site
4. Another blog site but a richer client
5. Photography website
6. Basic website
7. Corporate basic website but the kind who get bored when you charge them cheap
8. NGO directory website


Wednesday, June 20, 2012

Exactly how much should I charge for this job

Thinking about how much to charge my client
For most developers it is hard to pick a horse when it comes to billing clients for work done for them. It's major to a developer as poverty eradication is to my country's government. Luckily for the developer there are options to choose from and pointers to picking the right horse.

Cut to the chase Mike. How much should I charge? The super simplest answer is... Don't charge. Give it out for free... and no, I haven't been smoking anything. I only said that was the super simplest answer. Obviously you don't like this option. Let's move down to the simplest answer. 

Charge based on a similar project you have already done for someone else. What if I haven't done any similar work for anyone? Let's move to the simpler answer. 

Take stock of what car, gadgets or dressing your client brings to your first two meetings. Evaluate that in monetary terms and charge something your client's worth. What if the client knows this trick and decides to come on foot, in shorts and Tshirt with a Nokia 3310 as the only gadget. He may even show up with a 1998 diary to show you how too broke he is to buy the latest diary. Hmmm!! That's a smart client but you are definitely smarter, the reason why he requires your services. Let's move, this time up to the hardest answer which is the professional approach many experienced developers use. Oh wait before we do that, there is a simple answer I missed. It used to be my favorite approach to billing back in the day. It's the "client must pay for my woes" approach and is best explained with a scenario.

Girlfriend is giving you pressure and has given you an ultimatum to marry her, not the traditional wedding but the 'leave-him-broke' one. You need to move out of your parents before the flamboyant wedding. You did a quick calculation and realized you needed approximately 25k to pull all these stunts off and still come out alive. Just then God smiled on you and sent this client your way. BAMM!! you hit him hard with all your woes. 30k. This is so very unprofessional but you can either get lucky or get jilted by your girlfriend.

The more professional approach
There are 2 forms of billing. Fixed project billing and time-spent based billing. For freelancers and developers doing side jobs, I'd recommend the time-spent approach. This approach requires that you do 2 very important things.
- Know your worth and 
- Determine your hourly rate (how much you'd charge for every hour you spend working)

It's important to have an hourly rate and also be able to track how much time you spend on a project. In determining this, you don't have the freedom to pick any random ridiculous hourly rate since there are standard rates for the software development industry - web development in this case. Based on what value you place on yourself, your hourly rate can either be a little above or below the industry standard. Multiplying your hourly rate by the total number of hours will give you the total cost of the project. Ahem!! That's second grade mathematics.

A few factors affect pricing both upwards and downwards (sounds like the stock market). 

Your environment:
It's no doubt that pricing cannot be the same even on the same continent. A developer in South Africa can charge much higher than a developer in Ghana. A developer in Ghana can charge much higher than a developer in Togo. South Africa has a more mature technology environment where clients know the value software adds to their businesses. This makes charging higher more meaningful and acceptable. The case in Ghana is different but worse in Togo. Though there are going web developer rates, you may hardly get any jobs or probably send clients to their early graves should you charge like a South African developer while in Ghana. Ask other developers around you what their rates are. That'll help you make an informed decision on what your rate should be.

Your positive track record and experience:
This is something you can use to your advantage only if your track record is positive. I am not hating on anyone but its no secret that Jay-Z can charge more for tickets to his show than Kanye West because, Jay-Z is the people's choice. He is top rated. Well, even though I jealously dare to say the ladies will pay more to go see Justin Bieber or Usher, I believe you get my point which is, people will always be willing to pay premium for the best. If you have developed a few great stuff that are in the public domain, they can serve as reasons for you to squeeze a little extra out of clients. There definitely will be some willing to pay. If you are an experienced developer you definitely won't be going with the industry-standard hourly rate. The client needs to pay for the maintenance of that gray hair.

If your track record has question marks, you may need to drop your rates a bit to get enough work to redeem your image.

After arriving at a total cost of the project what next?
Hourly rate x Total hours on project = Total cost of the project, is not the end of your world of pain. You need to consider a few more things before finally submitting the bill to the client.

Discounts
It's important to give first time clients some discount. Discounts have an invisible way of letting clients want to come back to you for further business. Don't be greedy. Do it! How much discount you give is entirely up to you but shouldn't end up with you insulting the client with every line of code you write. There are also times when after arriving at a total cost you genuinely know the client will not be able to foot that bill. Discount it for him. Clearly state your discounts on your invoices so clients know you are doing them a favour.

Insulting amounts
I won't be surprised if you don't believe this because I couldn't believe my eyes and ears either the day it happened to me. A client (a very big company) felt so insulted when I gave them  an invoice with an amount in the few thousands. The guy actually raged as though I had broken his only daughter's heart. All I did was present an honest bill based on how much time I was really going to spend on the project. He saw it as too small, which he interpreted as the work not being valuable enough. The lesson I learnt from that episode is what I asked you to do in paragraph 4 but thought I was kidding. Sometimes you really need to evaluate the worth of your client and give them a bill worth their status. Strange but that's what makes life interesting - the different characters and characteristics.

In conclusion
Just an advice. Never charge a client without hearing in full detail what their specifications are. Never! Not even if they promise to give you a befitting burial. Don't let them succeed in coercing you into giving them an 'estimated cost' based on your experience with a similar project. You'd regret if you did. You'd end up frowning throughout the lifespan of the project. Each line of comment of your code will end with :( 


Tuesday, June 12, 2012

Hi. My name is... and I am a software developer

It wasn't until I started writing that I realized a lot of interesting things had actually happened in my life that were worth writing about. This one is about how in my opinion software developers in Africa are not tooooo 'respected' as we'd expect or as is in the West.

Have you ever been a in social gathering of professionals where everyone had to introduce themselves? I am sitting in one. The first guy does his intro. My name is... and I am a bank manager at... He gets nods and an applause. You can see everyone is impressed. Next guy takes the floor. My name is... and I am the country director for Microsoft. Everyone nods harder this time and the applause is much louder. You can get a chick or two just by being a Microsoft staff - any staff, but to be country director! That guy could have a whole girls hostel named after him. A beautiful lady introduced herself next as an estate developer. Had it not been for the loud applause she got I never knew estate developers were that popular. The applause is over and the guy before me is introducing himself. My name is... and I am the IT manager of... he mentions one of the big banks in the country. He also gets a very loud applause and heavy nods from those gathered. At this point I am a little confused at what triggers the nods and applause because in my mind I knew what the definition of a typical ghanaian IT manager was. Maybe they were actually applauding the bank. My thoughts didn't matter anymore because I was up next. Hi! My name is Michael Ocansey and I am a software developer. A few heads nodded but there was no applause. I could tell from their faces they were waiting for me to finish my introduction, but, I was done. No. I had to think and act fast. I won't be the only one to get no applause so I added... I consult for the UN in Geneva and currently in the country on holidays. Applause applause applause applause applause. Oh so this is how it works huh! I had beaten them to their own game. The applause was so loud for a moment I thought I was in church. Even though I got a very loud applause I was quite depressed. I couldn't believe an estate developer was more well known than a software developer. It was very clear these people were applauding the UN. Unbelievable but can you really blame them? A lot of factors have together defaced software developers in Africa.

Once bitten twice shy. Never mind if the phrase makes no English sense. That's a very wise and popular saying in Ghana that means, you are always careful the second time after having a first bad experience. If a con man managed to trick you into giving him something valuable, that trick will definitely not work on you a second time. A lot of individuals and companies have had very bad experiences with a lot of software developers in the past. A few years back when technology got introduced to Ghana (I am referring to the visual basic 6 days), software development was quite expensive - well very expensive. Companies paid well to have softwares (POSes, accounting and payroll systems) built for them but the software developers or development companies didn't do good work enough to match the amounts they charged. Their support services were also terrible. Those episodes left many who were already scared of computers very bitter. Other developers have succeeded in getting all of us a bad name. One that is taking too long to erase. You know how we say it in Africa. "One bad nut spoils the whole soup".

We are still embracing computers and technology. Bankers and accountants are very well respected and popular no matter how corrupt they are because, money has been with us forever. Computers haven't.  In some parts of Africa the era of the computer is still a new thing. Many people are still scared of the computer. Many people still have little or no knowledge of what the computer is. The 'I.T and computer stuff' is tagged as a thing for the 'small boys' of this generation. Unfortunately around here, monkeys play according to sizes so it'll take a long while before we are classified as 'big boys'. Until then, the small boys ' place is at the bottom of the ladder.

A hungry man is a puppet. Hate me all you want for saying this but truth is, there are too many hungry developers in Africa. Thanks to our extended family system, the developer has more responsibilities than  income. Often times I have seen developers cheapen our trade just because they needed some quick cash  to survive. I did that a lot of times until I got older and wiser. I still get hungry and tempted sometimes but I have learnt to resist because I have come to realize that the moment we accept any meager wage from clients for work done, they really don't see the sense in respecting such a 'cheap' profession. Of course, we don't have to be extortionists and demand a client's kidney as wages but then, let's learn to walk away from insulting wages else we'll end up being insulted.

Seeing is believing. A lot of what we do is not really understood by a lot of people around us. How can they appreciate you when they can't even understand and appreciate what you do. They need something they can see and touch. Give them a house, a car or an iPad and they'll hug you. On a fine day they may even kiss you. Give them your code and they'll ask if you have a national health insurance card so they take you for a thorough brain check up. They just don't get it so don't really expect them to get it when you proudly say I am a software developer. Don't be fooled if they say "Wow". Be shocked!

Hi. My name is Michael Ocansey and I am a software developer. It is ok if you don't directly understand what I do because in so many indirect ways I see you appreciating stuff I and people just like me have built to make your life worth living. You being able to access and read this story even proves one of my colleagues succeeded in making your life worth living. I don't know which of them exactly. Maybe the one who made your computer. No, I think it's the one who made your browser. Probably the one who made your smartphone. Who knows, it may be the one who invented the internet or even the dude who wrote this blogger website.

Much respect to all my fellow software developers who make the world better for all of us. Keep working your magic and - #morevim like a Ghanaian software developer will say!



Wednesday, May 30, 2012

Developer and client wars - choose your weapon wisely

Erica - Developer @ Esoko (not mad at a client - at me)
Rinnngggg Rinnngggg Rinnngggg. That's my phone ringing. I know it's my phone  because that's my ringtone. Oh wait! Boy, I am definitely not picking that call. "War" a hip hop track by Trip Lee  is a ringtone  I assign to any client whose 'matter is hard' (that's a Ghanaian expression for someone who is difficult to deal with). Ten minutes before this particular call  I heard my phone ring. Again I didn't pick the call because the ringtone was "Bear with you", another hip hop track by Trip Lee - that song is assigned to clients who are just too unbearable.  It's either I like Trip Lee or he just has songs that suit me and my clients well. Like it or not every developer in their lifetime get to deal with clients who are just so difficult to tame. 

Let me playback a scenario many developers will identify with. I owe this guy work. He is calling. Immediately I am forced to multitask. As I listen to the phone ring my mind goes racing. Should I pick or should I not pick. I have run out of lies and stories. A new lie comes to my mind but now the problem is I don't remember if I have already told this client that lie. That should give you an idea of when this cat and mouse game began. Finally I manage to make up my mind as the phone still rings. A phone rings for about 30 seconds if unanswered so you can see I am processing all these thoughts at the speed of light. No, I won't tell anymore lies because I want to make it to heaven. The only way to avoid lying today is by not answering the call. By this time I have 5 more seconds for the incoming call to end. Who cares. I am not answering the call anyway and that's final. My phone does its job by telling me I have one missed call. Just as I let out a sigh of relief to return to my code I hear the ringtone again - "War". I am sure by now you know who is calling. This guy won't give up. 10 missed calls so far. The 11th call came and it was an unknown number. I smile to myself. This client thinks I am an idiot, calling me with a strange number. That's it! I won't pick any calls from unknown numbers today.

I can bet half of my empty bank account that 90% of developers have gone through this drill of going into hiding because a client was chasing them.  Some very impatient clients send insulting emails and text messages when they tried hard to reach the developer to no avail. Some equally very impatient developers respond to these emails and text messages with the same measure of fire. How dare this client. Where was he when I spent sleepless nights mastering C-Sharp is what runs through the developer's mind. One response after another the flame war goes on until there is only one man standing and it's mostly not the developer. It's easier for a client to find another developer than for a developer to find another client. No matter how skillful you are with code patience is a great weapon to choose in this battle against pompous clients. It's really not worth exchanging words with a client. You may achieve your aim of teaching him a lesson and telling him your peace of mind but then bear in mind you may loose that client plus all his friends who are potential clients. The reason you are dodging the client is because you failed to fulfill your  responsibility. You are guilty and now you want to get angry? Which of your mothers taught you that!!

 In Africa we have a proverb (don't ask me what a proverb is) that "when two elephants fight it is the ground that suffers". Another proverb says, "you cant have two wise men living under the same roof". Play the fool sometimes. Tolerance - another great weapon to choose in this battle against pompous clients. 

I have come to learn the real reason why clients bug us that much and mount 'unnecessary' pressure. All they want is for you to respond to that email or put that blackberry in your mouth, sorry I meant pick that call and tell them something, anything. They just want to hear from you so badly - not because they miss you. It helps them plan what lies to also tell their bosses. The client will begin to find a million reasons why you are not picking his calls. You'd be surprised the kind of reasons they come up with. Imagine calling your girlfriend 11 times and she didn't pick up. Will you just assume she was busy? No. You begin to find reasons. Aha! It's surprising some of the reasons you come up with. Communication thus is another powerful weapon to choose in this battle against pompous clients. Let them know what's going on.

For as long as we are good developers, we will continue to be overwhelmed with work and that's a good thing. With that blessing comes the burden of managing clients with different temperaments. Patience, tolerance and constant communication can help you win this war against pompous clients. Redraw your battle lines.



Tuesday, May 29, 2012

Going over Getfeatured.Biz with a fine-tooth comb


Getfeatured.biz is a website developed by ncodeDev Labs, a web applications development company based in Accra - Ghana managed by Alfred Rowe a fine gentleman I have known for a long time. Today however, I lay friendship aside and walk a mile in the shoes of a policeman or maybe a wicked proctor. 
Getfeatured.biz home page
Going by the official description posted on VC4Africa, "Getfeatured.biz’s goal is to provide relevant information to people in a fast, intuitive & friendly manner, that takes all the clutter away and focuses on the basic tools needed by the average person to find whatever it is they are looking for. Getfeatured.biz currently provides information on Jobs, Housing, Automobiles, & Businesses in Ghana. We are focused on extending our services throughout Africa in the long term". 


This article is not an interview with Alfred but instead a write up of my experience touring the website. I spent a total of 60 minutes on the website making sure I missed nothing. Now that my work is done I have good news and bad news. Which one will you like me to spill out first? 

Ok. The good parts. 
Getfeatured.biz on the iPhone
The UI is on point. Being a lover of the Apple finesse I find the website to be very visually appealing. To quote @KobinaSanni after I showed him getfeatured.biz he exclaimed, "charley I love this site. The UI is on point." I am in total agreement John. The UI sure is on point. Looks clean, sleek, elements are in order, jQuery animations are simple and minimal.


There is a mobile friendly version. Thinking in mobile mode is very necessary for any website developed these days and it's impressive getfeatured.biz has a mobile friendly version that looks equally appealing visually. The UI is very responsive on the smartphones I tested with (iPhone, HTC Desire, Samsung Galaxy S). 


Navigating is simple. You immediately know what the website offers once you get to the homepage and even on the subsequent pages.


Alswell is a fun way to search. This cool feature allows you to perform searches on getfeatured.biz content right from within your chat messenger. You just have to add 'getfeatured.biz' like you add a friend. If all goes well, Alswell will show up in your friends list and you can start telling it to find jobs, autos, cars, houses and more.  Type 'help jobs' and Alswell will tell you how to ask it to find jobs This pretty much reminds me of Siri for the iPhone.


The bad parts
Mono lingual. For a website that seeks to make inroads into every continent having things in English is not enough. Other languages have to be introduced. At least French. 


Can't do much with the mobile friendly version. It's good there is a mobile friendly version but it's not enough the things you can do in this mode. It's mostly read only. I couldn't post listings to the website. 


That dot biz gives me rashes. You know how there are some things that drive you crazy but you just have no control over? Like having an American embassy in your country and they still having the nerve to deny you a visa to America.  You can really do nothing about it and it's so painful. That's the kind of pet peeve I have with the dot biz in getfeatured.biz. I have to live with it. 


Help I am drowning in a pool of  data. Getting results when looking for information is great but when the the data is in super abundance things begin to get overwhelming and then using relevant information begins to become a painful process. I tried looking for a job and indeed got a lot of them (8,191 at the time of this writing). Cool. I wanted to further filter and get something more specific but couldn't.  Not cool. Oh wait! I see on my left boxes for me to search by title and by location. I entered accounting, accra and got data I could handle. So in fact, this thing I think is working backwards. Why not give me data relevant to my location to begin with and give me the option to see all or more.


Map deception. I clicked on a green "Launch MapMode Exclusive" button just because I liked the sound of mapmode exclusive. I really didn't know what to expect but it turned out I was moved into Map view. The map picked my location as "Manhattan" (I wish!!)


Link color inconsistency. On the homepage and the places page the links are red in color. When you move to jobs, cars, houses and classifieds the link color is blue BUT the category a listing is filed under is red which makes me want to click them even though they are not links.


Sign up form visual deception. The sign up form marked "Your FullName" as the only required field but on submitting the form it expects me to put in an email and password. The error message also sounds a bit too technical or 'advanced'. In Ghana the word 'prohibited' mostly goes with you getting a fine should you falter. "hawking here is prohibited", "urinating here is prohibited. Offenders will be charged a fine of Ghc50".


Show counts in 'places' categories. I clicked 'places' from the top bar and clicked on a few categories only to find they had no listings in them. The page didn't tell me there were no listings so I was waiting thinking the content was still loading. Will be great if also the categories could have a count next to them to prevent users from clicking on categories that have no listings.
Example: Aerospace (5), Education (0)


In Conclusion
The time spent on the website was not a waste at all. I personally love this website and get a lot of aesthetic inspiration from it. The service it provides is also very useful and I use it often enough for me to want to dissect the website to help make it better. I know Alfred and his team at nCodeDev Labs will do a good job to address where necessary the concerns raised.



Monday, May 28, 2012

Dilemma of a young african developer - To Uni or not to Uni

Have you ever been forced to graduate?
Thanks to the very successful dropout billio-millio-naires who have carved an indelible niche in history, the desire to NOT go to  university has really become a good, comfortable and proud thing for many including myself. What's the point in going to Uni when I know I will be dropping out to start my own company anyway is the anthem of many. Just so you understand the positive impact these dropout billio-millio-naires have had. Today, a lot of Ghanaian parents including mine no longer give their kids pressure to go to Uni because they have come to somehow (I don't know how) know the stories of the men behind Apple, Microsoft and Facebook. Amazing!!


Despite the evidence of living testimonies for both sides of the coin (the successful dropouts and the successful non-dropouts), lots of young people still find themselves in the dilemma of whether to go to Uni or not to go to Uni. You as an individual are solely responsible for the final decision on this subject and it'll be suicidal to let someone make the choice for you. I am just going to share with you why I went to Uni and pressed 'undo' after 2 years. Then pressed 'redo' after another few years.


So why did I really enter Uni?
For a few reasons.
  1. Peer pressure. Back in the day when I finished high school (1998), Uni was the next logical path for anybody who wanted to become somebody. All my friends seemed to be heading there so I had to 'wise up'
  2. Parental Pressure. My dad is a chartered accountant and you definitely don't expect him to watch his only son waste away with some flimsy excuse of wanting to be his own boss.  Nonsense! Definitely not under Mr. Ocansey's roof.
  3. Extended family pressure. You know how smart uncles and aunties ask you questions like "oh so what course are you reading at the varsity?", "are you in level 200?".. That's their tricky way of asking if you are in Uni at all.
  4. I missed out twice on a UN job. I got a UN job that really required a first degree at all cost. Shit! I missed it and boy ... It pained me. That was before I decided to go to Uni. The next time the opportunity came I had dropped out of Uni. Silly me you can say!
  5. My girlfriend in medical school was after a few years going to come out with a straight doctorate. I had to compete or at least match up small.
  6. To spice up my profiles and introductions. You know how when people come to give talks they mention their long qualifications. I kind of liked that and wanted to build up such an academic trail.

So why did I press 'undo' and drop out of Uni?

I had been doing very fine without Uni. Before going to Uni I had already  started my career in I.T. I had completed the 2 year diploma program with NIIT and had already worked in 2 international companies and was by now in a third.  All that before Uni? The heck I would need Uni now.

Uni was boring. I decided to do something different from IT so went for Accounting with information systems since it happened to be the most difficult of the courses. After 2 years the course got so boring I never went back.

The I.T. lecturers didn't know much. After dropping out of a main stream Uni I decided to go to a Uni that was more I.T. centric. After a few weeks I realized I was just wasting money because the lecturers were telling too many lies. At this point I was about 4years into my I.T. career and so knew a lot. This happened in two I.T. centric universities I tried in my country. There was no luck and no going back.

Combining school and work wasn't getting easy. All the while I went to Uni I was in full time employment and had to combine school and work. The projects at work were fun and often got my attention till late into the night. I was using assignments time for work. I sometimes missed lectures because I had to be at work. It got to a point I had missed so much school I actually forgot I was a student.

Passion for my work. I got more passionate with work and the desire to build something great. Once you get to this point there are three things that are likely to suffer in your life. Your relationship, your academics or  your full time job. For me the last two suffered. I quit job and quit school. I had to focus on building a business and needed all the time I could get.

If you decide to skip Uni
Make sure you develop yourself personally. Get certified professionally. Luckily for us in I.T having a degree before getting certified is not at all a requirement which is a very good thing. Get as many certifications as you can.

Make sure you are good enough with what you are supposed to know. In Africa a degree is mostly your first marketing strength. You can really know nothing and still get a job with some company once you wield a degree. Imagine you not having a degree and not knowing jack in the professional path you have chosen. That's like shooting yourself in the head while hanging from a rope.
I have been lucky enough to get work in 5 companies without ever having to present a certificate. None. That's because I mastered my fields and had very compelling projects to back me up. I still continue to learn daily. No room for complacency at all. 


The few moments I spent in Uni taught me things that really helped me when I started Kursor Solutions.


Company law: first year at Regent University of science and technology we learnt company law. I applied all I learnt in my company law lectures when I had to write contracts and agreements, even terms and conditions and privacy policies for some of my projects. Of course you can always read these up on the web or even get a template from someone who has done them before but there is really nothing like hearing the concepts from the mouth of a practicing lawyer.

Basic accounting: I was reading accounting as a major so of course started with the basic book keeping, balance sheets, profit and loss statements stuff. These were again very useful to me when I had to keep accounts for Kursor Solutions.


I guess by now I have left you more confused by not really giving you the straight answer you expected. I did answer you right up in paragraph one. You are solely responsible for the decision of whether to Uni or not to Uni. This however has been my story about why I decided to go to Uni, get out, go back and get out again. Get in and get out one more time. For one last time I am back in Uni and this time it's not for the paper or any of the 6 reasons I gave earlier but just because I never leave stuff I start unfinished. Wish me luck!