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!