Monday, January 4, 2010

Marketing as freelancer

In this post, I will consider several problems related to selling your skills (programming) with reasonable price. How to strategically sell your skills in such way that you won't mess up the market, but still evolve in reasonable speed.

For programmer, there are the following considerations:

In software world, working with more complex problems:
  1. Is more interesting.
  2. Lets you develop more.
  3. Adds more value to your portfolio.
So, all programmers are interested in working on more complex projects. Work providers can utilize this fact to get things cheaper.


There are also the following considerations:
  • As more complex the problem, as less people able to solve it. Thus, price for solving more complex problems should be higher.
  • You often don't find job providers able to pay for solving more complex problems. Thus, if someone able to pay for less complex job wants something more complex, they would hope to get it for price of less complex problems.
  • Getting prize up for more complex problems makes more people wan't to learn solving those, thus it's for general good.

So, a programmer:
  • Should want to get hands on solving more complex problems to get all kinds of personal gains for that.
  • Should want to not solve more complex problems with price of less complex problems.

Now, you have a problem - you don't want to mess up the market (be it local or global market), but you want to develop and prove your skills in solving more complex problems. You are annoyed doing some simple and boring routine work, but you also don't want to give away your really valuable ideas and knowledge (collected over time) for that price to those job providers. It seems like a trap, which it is - but, bad solution is better than no solution.


For job providers, also the following is true:
  • Less experienced programmers fall to that trap easily.
  • Less experienced programmers fail more complex projects often and the general prize, thus, with risk included, is high - you will need more experienced programmers on that project.
  • More experienced programmers generally have thought about the problem and worked out some solutions.
This also shows that less experienced programmer, who works with higher risk, should make their prices smaller so that risk is included - if risk is 50%, it would be good to make your price at least 50% smaller, which might already be the price of less complex problem you are easily ready to solve.


Anyway, the topic should be analyzed in written form and I haven't seen neutral analysis of it around in places easily findable for me. So, I try to do it here.


Now, you want:
  • To sell your assets.
  • To get their true price.

You should not know your price or sell yourself. You should know the price of your work and sell your work. Price, happily, does not come from complexity or skills.

Price comes from the following factors, at least:
  • How many people are able to achieve the results - this, actually, is the measure of how much homework they have done. How much they have been able to allocate their time to learn new skills; how much work they have done to develop those skills in real experience (this means often choosing less guaranteed jobs with higher risks, living less stable life to get more opportunities). If all people are able to achieve the results, the skill is not worth much; if many people are able to achieve the results, this skill is worth much.
  • How hard it is to achieve the results and how talented one must be for that - this has something to do with genetics, but also with determination and some kind of self-discipline, this ability grows in experience, but not so much with theoretic reading and discussions (anyway, it can't grow much without being backed up by theoretic reading and discussions).
  • How much client gains from those results. As more the client gains, as bigger the prize.
  • How much general public gains from those results. As more they gain, as smaller the prize, because general public is not often going to pay - this is more like a cooperative effort.
The last fact, surprisingly, can be used to find a good solution.


As an experience and for leaving positive trace, one can work hard on GNU projects. Be selective.
  • Choose the projects, which can be used for general good and not for general bad; also choose projects, which are highly needed for general good, even if they can not be used for general bad.
  • Choose the projects, which give advantage to people, who are working on projects, which provide general good. Warren Buffet has suggested to buy small pieces of companies as if you buyed the whole company - good investment comes from such thinking, also the experience could be used later if you actually do. So, choose projects having that kind of thinking like if you was leading the whole world - think through complex strategies, buy your small piece of projects, which are needed to fulfill those strategies. If you are right, there are many like you.
  • Choose the projects you are able to finish. No-one blames if you don't, so take a reasonable risks to keep yourself on (your) cutting edge - anyway, you and the world get the most experience and other results from projects, which are carried through to the end.
  • Do not create things, which don't yield so much general good and which you could sell with reasonable prize, should you get the opportunity unless they are really needed. Do not blow up the market. You need the market and you don't have that much really valuable ideas.
This is for your free time.



Now, how to create those dumb and boring projects really fruitful for you if you are not selling valuable things under market prize?
  • Do not try to make them more complex for yourself - you take unreasonable risk, lower your prize and leave really bad trace if you fail. Find the effective strategy.
  • You are not selling complex solutions, but you can do really good job on managing and planning. Managing and planning is needed anywhere - use those opportunities to grow your managing and planning skills. Optimize the process and find ways to do those things faster. Keep the resulting methodologies to yourself unless you are paid for them - or open them for general public. In case you develop a powerful engine actually doing your job, don't give it away as bonus; in case you get better, just tell that you could become a good leader in that field for now.
  • Even if your prize per unit is market prize, your real price can grow as you advance.
Anyway, if you are doing boring routine work - which is not anymore so boring and routine, as you can see -, keep the free time needed to find more interesting problems. You are not so needed there - anyone could do your job.


There is additional problem:
  • Many job providers are not going to pay more for faster working. They want to control you - to not pay you so much that you would become free and go away. They think that you can live if you can buy food and pay for your department.
This is not easy to resolve without finding providers, who can. You might not find them so easily. Consider also than as you get better, market average gets also better - your new strategies might simply keep you as average or a bit over average even if you work twice as fast as in previous year. Many job providers also pay to beginners a bit more than they deserve, hoping to get this money back when they get faster. You could think that you deserve more than you actually do.

So, some possible solution: as you get faster, spend more time in getting more faster and better. Make your work broader and go to tasks, which you can't do so fast, so that no-one will notice. You always need to get as much as you put in, minus the money you pay to your job providers for some excellent work on finding new tasks, utilizing your skills where someone really needs them and handling all kinds of problems for you. As long as you are not so good in that part, you should be conscious that if they work out how to use your skills in real world so that they are really needed and fit somewhere well, they are doing a lot of the real engineering. So, if someone gets really rich with energy they got from your potatoes, they have done most job of finding their place. If you grow potatoes because you like growing potatoes, you are working for yourself and not for common good. Otherwise, you should consider getting some skills of managing and analysis as well.


How to calculate the prize:
  • Consider the speed of finishing goals. Try to find out average market prize plus average speed of others doing that work. Doing it twice as fast should give you twice as much money.
  • Consider, what people gain from that kind of job - not what your client will get, but what some average customer needing such kind of work would get for it. Otherwise, anyone could simply lie you that they get less than they actually do - this makes your price smaller if you can't think along to make your customer really win as much as possible from your work. Anyway, consider that working along if you do is a job and has a price, you spend some additional hours on it. If this job is more valuable in theory - even if it's not creating that value in that specific case -, it sets some minimum price.
  • Consider the overhead resulting from you needing to teach client the necessary skills, finding the solutions and handling some hard character buying from you. This needs your time and resources - thus, consider getting some money from consultations in that case. I think that it makes several times of difference in actual speed if your client can't get along. Consider that you might lack the communication skills - maybe you, as a programmer, haven't understood how important those are? You are selling the time of creating contract, creating some demo or prototype, managing the client - if they wont pay for that, they are likely not going to pay at all. If you don't ask money for that, they are wasting those resources of you.
  • Consider, how much people are able to do your job; how long it would take to learn it for them (how big percentage they have of necessary skills and how good learners they are). This will also set the minimum prize (or maximum) in case that work is needed.
  • Consider, what you get to your skillset - in case you have some goals about which tasks you should able to carry through in future, how much the new experience adds to those skills. This won't change prize so much, it changes how much you should want that job.
  • Consider the general good or bad your client is going to produce with your project. In case they create some new problems to your environment, it has a prize - in case your work plays a key role in that, they have to pay you for solving those problems. You can donate somewhere etc. In case they solve some problems, you can pay them. You should give some competitive advantage to clients working for general good - they should, in fact, take the whole market (not your client alone, but all companies of that kind). Once again, think about the world, your country and your friends a bit like if they were your project - you are a co-owner of that all and you can use some simple means to keep it all on good track. For your own good.
  • Consider the prize of source code - that has a prize, your work without source code costs less. Consider the prize of you co-owning the results, in case you have something to do with resulting code, you can invest a bit yourself. Consider if your client is licenced to sell your code to others and if you are.
  • Consider the general good your client is willing to give you. Are they restricting you in any way? Restricting you has a prize. Are they giving you some good in addition to money? That good also has a prize and you should be willing to pay for it.
  • How big is the risk? What is the risk that you can't finish in-time? This changes both prize and your willingness to take the project; make a client aware of any possible risk factor.
I have also read about prize calculation formulae, which takes into account, how much it would cost to combine the same thing from cheapest existing products and buying from cheapest competitors. You should not consider the competitors, who haven't enough time to take the job or who are too hard to find or relyable.

No comments:

Post a Comment