As a freelance software developer, there is always an eternal gap in the price I wish to charge my customer versus the price my customer is willing to pay. How do I set my price or fees? There are 2 ways to look at this: how much I want to earn and how much they are willing to pay.
How much I want to earn?Fresh Graduate LevelBeing a freelance software developer, of course I want to earn at least as much as an employed programmer (plus the perks of freedom) . Lets say I am a fresh graduate, so I would earn around RM 2K per month with 1 month bonus and 10% EPF, so my yearly income should be around ((12 + 1) x 2000) x 1.1 = RM 28,600. As a fresh graduate freelance programmer, I would like to earn at least 28,600 / 12 = RM 2383 per month. There are 22 working days in a month, so I must at least earn = 2382 / 22 = RM 108 per day. As a freelance programmer, it’s almost impossible for me to be occupied with a project everyday, so I might be occupied with project 70% of the time (I might be scouting for prospects, doing unpaid work, holidaying or lazing around 30% of the time). For me to earn as much as an employed fresh graduate freelance programmer, I should charge my customer 2382 / (22 x 0.7) = RM 155 per man day. In this case, I would be happy and my customer would be happy as well.
Senior LevelAccording to some statistic, programmer in Malaysia earns an average of RM 63,000 per year (assuming you had around 5 years of work experience). If I want to hit the average earning, I should charge (63,000 / 12) / (22 * 0.7) = RM 340 per man day. I could still be happy, and the customer might be willing to pay this price as well (thought might not be happy).
Management LevelAs I get older and more experience (after working for 10 years), I would expect a better income of managerial level. I would want a salary of RM 8000 with 2 months bonus (10% EPF) and a whole lot of benefit (worth RM 5000 perhaps), thus my expected annual income should be (((12+2) x 8000) x 1.1) + 5000 = RM 128,200. At this point of time in my life, I would need to charge my customer (128200 / 12) / (22 * 0.7) = RM 694 per man day. Most of the SMBs (Small & Medium Business) will not be willing to pay for this price, thus both my customer and I shall not be happy.
How much my customer is willing to pay?SMBMost SMBs are willing to pay between RM 200 – 400 per man days based on my experience, and a software house might expect RM 300 per man day for part-time contractor. Some big corporations are quite stingy and thought of software development as a cheap affair (or thought that freelancer should be dirt cheap), thus only willing to fork out not more than RM 400 per man day most of the time, or scrap the project. Sometimes I might to get lucky and strike a deal to be a sub-contractor of a huge project, thus earning RM 600 – 1000 per man day (though I would need to deal with a lot of people politic and late payment).
Software Company RateThe average market rate for Software Company should be around RM 600, which I personally think is really low; there should charge at least RM 1000 per man day in order to be sustainable, but such demand is not a plenty. Only multinational consulting companies or company with government link would be able to get projects worth millions, while others are scrapping between RM 50,000 – 30,000 per project which take up 3 months to 1 year to complete.
What should a veteran freelance software developer do?I started to feel the pinch for the past years as I desire higher income and my customers are just not willing to pay my price. Thus I desperate need to change my business model.
Master of One SkillI could specialize in certain areas of software development, let’s say ASP.NET and be a master guru of it. Others might take 10 days to finish a job, while I only need 5 days (so I actually charge 50% less than my desired rate, while still earning as much) due to my experience and availability of tools and existing code. For this to happen, I limit my customer base (.NET technology and web-based only) and I need a lot of customer in this segment to make up the volume.
Build a ProductThis is easier said than done. For this to be successful, I need experience or exposure in the usage of such application, and with strong capabilities to market and sell this product. I might need only 2 freelance projects to survive per month, while I need to sell 50 copies of my product per month if it is RM 200 per piece. If I fail, I loose my investment of time and effort between 3-6 months. This is not a game of technical skill but a game of sales and marketing, and product market is more competitive than freelancing.
Future & Hype TechnologyThis requires big money (venture capital fund) to create something really great or flunk. Think in the line of Google, Yahoo, MySpace, Facebook, YouTube and etc. You either try to create a great piece of technology, or to create a social network which attracts millions of visitors. This is the hardest, with highest failure rate and greatest reward.
ConclusionIt seems like freelance software development and consultation might not be ideal for a veteran programmer expecting a higher than RM 100,000 annual income, unless he had a bunch of rich customers or network with big projects stakeholders.
It’s time to improvise and try something less conventional or conservative. Be it product development or future/hype technology development, I desperately need to think out of the box to ensure my continuous satisfaction and survival.