I've recently read a study done by WPEngine on how much WordPress developers in US earn and I was unpleasantly surprised. Most of them make less than $30 per hour, which is, compared to developers in other industries, an insult, if I put it mildly. And even if we compare developers within the WordPress ecosystem, we find huge disparities in income, since some make well over $125 per hour or even more.
So why is it that some WordPress developers easily earn four times as much as others, while working a considerable amount of time less? Short answer? Because they're good at the business side of things. Development means nothing if you can’t sell it.
So here’s a few tips that will hopefully inspire you to re-think your approach to both business and development and, in turn, help you earn more.
I know what you might be thinking right now: "Well thank you mister obvious", but that doesn't make it any less valid. Your day has the same amount of hours as anyone else’s so to make more money with what you have at your disposal, you have to start charging more for your work.
There is a huge fear among developers that if they do that, clients won't hire them anymore, and this fear is completely subjective and has no basis in real life. Quite on the contrary. Developers are in high demand (and it's only going to go up for the foreseeable future!), so there are always clients out there, looking for work to be done on their projects.
If there are developers that make $200/hour doing the same thing you are, then it can be done! So how can you get closer to that number? First, you have to know the difference between price and value, which I’ll illustrate with the following (simplified) example:
Your client, which has a WooCommerce-powered website calls you that their website is down. You immediately investigate and find an issue, which takes you 15 minutes to fix. Now assuming they sell $10.000 worth of products each day with 20% margin, this means they lose $2000 in profits for each day that their site is offline. So how much do you think your work was worth to the client? Five dollars? Nope. Do you think the client will say no even if you charge them $100 for those 15 minutes? Or even $200? I don’t think so.
Price matters only to you. To your client, it's the value they are getting.
It's all about the cover letter
I learned this trick back in the days when I was still freelancing through Elance. I drastically increased my chances of winning a project, not by racing to the bottom (a technique where all the applicants lower their prices hoping they'll win the project), but by providing an awesome cover letter to my prospective client. I would investigate who they are, what they do, where they are from and what kind of problems their business is solving in general.
This would allow me to get really them and then write the cover letter in a manner they would feel we're on the same cultural level.
Furthermore, I'd analyze the brief in great detail, and suggest a couple of approaches with outlined pros and cons of each approach. This assured them I was the expert in a particular domain and increased the confidence in hiring me significantly.
The effect this approach had? I could easily be the most expensive applicant (even twice as expensive as the second one) and still win the job, because for the client, it was not about the money (you’d be surprised how little it often even matters), it was about getting their problems solved by a professional, in a timely manner.
Bottom line: do your homework.
Help the client with a detailed brief
If there’s one single advice I got in life regarding work that I'd recommend to my fellow developers is that good preparation is half the work done. And this holds especially true for software development – and you know it. How many times did it happen to all of us that – after the work has been done – client got back to us, saying "this is not what I asked for".
The brief (which can be part of the contract or a separate document) should not only include all the required work in great detail but also the work that will not be included, since your clients are usually not as technical as you are so they expect the difference between features are just a couple of clicks (more on this at a later point).
The more you get into details at this stage, the better. And since you’re already spending time for the client, charge for this step as well – remember you had to do your homework and, at least, some initial research (not to mention have a lot of experience) which means you are already providing value to your customer, even if you haven’t written a single line of code yet!
Again, don’t sell time – sell value!
When estimating, add buffer
Even with all the preparation in the world, no project has ever been defined 100%, so always add an additional buffer to your estimate (sometimes as much as 30%!). The more an experienced developer you are, the easier it gets to estimate properly, so the buffer gets constantly smaller, and that's okay – the chances are that you’re also charging more at that point. If you’re not, read the first point again.
My mate Chris Lema also has a very solid advice on how to estimate better, and he explains it in this YouTube video.
Be responsive and communicate
We see this at Codeable on a daily basis. A project goes haywire, not because of technical issues or lack of developer’s knowledge, but because the client keeps asking for updates to no avail. Sometimes they get frustrated to a point we have to refund the whole project (and sometimes kick the responsible developer out) because they get afraid they are being scammed. They don’t know the developer personally, after all.
We, developers, tend to get a bit arrogant with our supreme understanding of how computers work, so we think that updating clients on a regular basis is just a waste of time; they won't understand what we’re doing in any case.
But that’s not the point. No one likes to be kept in the dark, especially if their money is at stake, so update the client as frequently as necessary. In some of our most productive projects, clients and developers talk on a daily basis – preferably at the same time – and go through the key daily activities and expectations.
Proper communication is also the base of agile software development, which I urge any serious developer to look at.
Avoid the undermining words (like "just", "easy" and "only")
This one happened to me more times that I care to admit. And it was me who said it. "I'll just make a few modifications, and it'll be done." The problem with these words is that somehow they make it sound your work is easy which makes you and your client appreciate your work less. Don't do that.
You have to realize you’re an expert in a particular domain (and you're damn good at it!), and if you check this survey by Stack Overflow, most of us, developers, are self-taught, which means it took us years of learning and perseverance to get where we are.
The main cause of this behavior is also the fact that we love what we do so we often like to say our work is also our hobby. But it's not! You spend money on hobbies, and you make money with work. It's okay to love your work, but doing it for free (or too cheap) hurts you on a personal level and the industry as a whole.
The bottom line is, even if it really takes just two clicks, you've spent hours, days or even weeks to learn where and when to make those two clicks to get the needed results (which was an >opportunistic cost at the time).
If you follow the tips from above, this one should become pretty obvious, or more importantly, easy. No work in software development is truly done; there's always maintenance work to be done, such as updates and service level agreements (SLA).
This is also one of the aspects that are greatly emphasized in the startup world, but something no one talks about when approaching the usual, brick and mortar businesses: It is always cheaper to get more money from existing clients than to get new ones.
One reason for that is that you already have an existing business relationship with the client, and with it, a certain degree of trust. And trust is everything in business, because businesses are people – a thing many of us tend to forget since we're interacting with computers more than actual people on a daily basis. And it's so easy to hide behind a computer.
Again, one of the mistakes I've done in the past, thinking if I try to do all the work, I'd end up with more money, as opposed to hiring subcontractors to do parts of the project for me.
I wish I realized how big this mistake was sooner actually. Sharing piece of your pie with others has plenty of benefits:
- You expand your network
- You expand the knowledge and services you can offer
- You get to socialize more
- Others get to know your expertise and share their work with you
- **You get to focus on what you're best at**
Look outside your community
Another thing many developers do is look for work where they live. While certainly a viable option if you live in a densely populated areas with many businesses, this plan falls flat in rural, less developed areas. It's also that statistically, the income in these areas is lower which means businesses operate with smaller margins and can only afford lower prices.
Luckily, WordPress is a web publishing platform. And that very web spans all across our globe, so really there's no reason for you not to look for work online.
And finding work online has never been easier. There's Codeable, IRC, Facebook groups, Slack, you name it. Follow threads, participate in conversations and you'll soon find some other members seeking for help that you can provide.
Become visible to the world – expose yourself.
Contribute to Open Source
You know the saying what goes around, comes around? In the Open Source community, this phenomena is also called karma. The more you contribute, the bigger it gets, the more people know you (recognition), all coming down to the most desired result: You get to become an authority.
Once you're an authority, you don't even need to look for work – it finds you. And with any position of power, you get to choose what you want to work on, and for what price.
Learn other tools
In my book what separates good developers from great ones is the ability to write unit tests (and a habit of doing so). Why? Because unit tests add as much as 100% of additional development time. In the beginning, it’s hard to reason this with a client, but in truth, it should become the norm (just like responsive design is becoming) – it saves the client a lot of headaches in the future. If done right, of course.