My first month freelancing
alanhollis.com
alanhollis.com
I've burned many thousands of words here arguing the same point and will hopefully be able to spare you all a retread, so let me just say that I think a lot of good habits and useful dynamics emerge organically from this one decision.
If you make no other careful strategic decisions about your consulting business, make this one: bill daily.
I've instead tried structuring my fees to promote long-term engagements.
So I have an hourly rate (highest), day rate (little lower), week rate (little lower), and month rate (lowest). This is working out okay so far, but it sure requires a lot of explaining up front and I'm probably losing out on potential income for longer engagements.
The key is to have your lowest rate still be something that you're willing to work at, or the whole system falls apart.
Has anybody else tried a similar rate strategy? How'd it go for you?
The first is a retainer. Retainer hours come at a significant discount because they might not get used, but are billed regardless.
The second is long-term forward-looking commitment. A monthly rate is at the short side of long-term commitment; a multi-month project feels like a more typical discounted commitment.
You should not discount for daily or weekly commitments. Daily and weekly rates are industry standard. When you offer a discount on a daily rate, you are effectively communicating a willingness to negotiate your underlying rate.
If there's a second strategic decision I want to urge everyone to make, it is "NEVER NEGOTIATE YOUR RATE". With a savvy customer, you will never get any concession on your rate back; once you establish a new floor, that floor is likely to remain there forever. This is the case at big companies and small ones, but be aware that this is such a common dynamic that Fortune 500 companies have people whose performance is evaluated by how effectively they hold the line on bill rates.
If you have to negotiate, negotiate over the total price of the engagement. I know your nerd brain can't separate the total for a project from what the hourly for that project works out to, but they are very much not the same thing.
I am generally of the mind that your rate structure is your rate structure. Clients want to push back on all sorts of stuff. They also want you to sign their master agreements unmolested. Learn to say "no" professionally: to quickly find ways to accomodate your customer's underlying concerns without budging on your price structure.
This is one of the harder things for me when starting on a contract. I dont want to appear pushy and turn them away nor interested in going back to negotiating.
Ps. I am from south asia so I also think there is a expectation of a need for haggling.
If they're reasonable, they may agree to just go hourly then upon hearing a reasonable explanation. Sometimes they'll try to negotiate on the price. I tend to be very wary of clients that try to negotiate rates though because even if you get your rate you'll find yourself later arguing about hours, features, etc. Your rate can effectively be lowered if they pressure you into feeling that you are not working fast enough and bill 1 hour for 2 hours of actual work. People who like to haggle tend to haggle over every detail to get a bargain - not just price.
" I feel that my standard rate is justified due to my knowledge, the quality of the code I produce, my flexibility and my ability to learn and pick up new skills and technologies quickly. I have other clients who are paying my full daily rate and they very satisfied with the work I produce.
I completely understand if this is non negotiable. And I realise asking for an increase on the rate you offered may mean I may miss this opportunity to work with some exciting new projects, technologies and people which would be a great shame. "
Any feedback on the above would be greatly appreciated.
I don't really see why I'd say more than that. If a client kept pushing after that, I'd start saying things like "I understand; let's figure out how we can get your work bundled up efficiently into a day" (or, in my case, more likely: I'd bill a day for the time-consuming stuff and just let the single hours go).
I know if you try to sell a product in some cultures and refuse to budge on the price it could be considered an insult.
With regard to retainers, what is a typical retainer discount (percent is fine) for (mostly web) software development consulting?
To be fair, it took me (a generally obnoxious, opinionated loudmouth) the better part of ten years to get to the point where I feel I should be w/r/t my level of client assertiveness. It's tough!
If you're working at the thrift store putting price tags on shirts, your timeclock is probably in 5 minute increments. If you're a defense contractor bidding on a major combat platform, your minimum increment is probably ten engineers worth of salary. Anything smaller than "the increment" is probably a rounding error, which is a headache for both parties to track.
For independent software engineers and consultants, I can see reason to bill hourly, half-days, days, or weeks -- based on what's "standard" in terms of project size and work flow for you.
* Access to talent on predefined schedule
* Minimal commitment to that talent, instead of a year of salary
* Allocation of that talent to your projects as opposed to some other company's projects
* Ramp-up
* Ramp-down
* Travel and/or logistics & communications overhead
* Invoicing and receivables overhead
It is a really pernicious meme that developers should consider billing hourly because they work hourly. When you switch from salaried work to freelancing, you need to start thinking of your work product as a product, not simply the output of your brain connected to a keyboard for fixed periods of time. You don't price a product based on its raw cost structure; you price it according to the value it provides to customers.
As you say, this is based on value provided to the customer. If you're working with clients who are going to want you to do $100-$1000 worth of low-complexity work for them in any given month, an hourly fee structure is going to let you serve that client base, while a daily structure would not. If you're working with clients who are going to want you to do $10000+ worth of work for them on a single project, a daily or weekly structure is going to be more convenient for everyone. If you're working for the DoD on military hardware, you might charge 10 figures of development fees and 8-9 figures per unit delivered.
Pick a billing structure based on what's natural for the sort of projects you're doing in the market you're serving.
* It positions you against the lowest-quality cheapest providers.
* It misaligns your incentives, so that you're penalized for doing a better job.
* It totally hides the cost of ramp-up and ramp-down (if you think clients push back on daily or project rates, wait until you charge them for 2 hours of "getting in flow").
* It forces you to be vigilant about time tracking lest you accidentally undercharge customers.
* Not to mention, with virtually any client worth doing business with, you (the consultant) are much more sensitive to the cost of a project than the customer is; it is a small miracle that the customer can get a programming project completed at all without potentially hiring and then firing 3 different people. So why is all the burden on you? Why is any of the burden on you? Key consulting idea: it's not the customer's money they're spending.
* It inclines you towards finicky accounting, the kind that charges a customer for a 45 minute phone conversation.
* It conditions your customers to take a fine-tooth-comb approach to project plans and invoices.
* Not to mention: it generates more invoices.
* It forces you to negotiate with clients in the worst possible numeric domain: where small deltas to proposed rates disproportionately impact the final cost.
* It obscures the final cost of projects in ways that make clients defensive, so that their immediate thought is "oh shit this is going to add up to lots of hours we better be careful".
* For that matter, it inclines your projects towards the small and away from anything ambitious.
* It impedes your own flexibility, so that you tend to miss opportunities to interleave projects or for that matter take an occasional long lunch.
* It forces you to account for every waking hour of your day in a way that daily rates don't, when we all know that only a small subset of your work hours are truly productive.
* It makes it harder for you to reasonable toss freebie work to your best clients without damaging the expected value of your time; for instance, I can cab over to a client in Chicago and spend 2 hours looking at a design with them for free without creating the appearance that my bill rate is arbitrary.
Here is my take.
From the consultant's perspective. Bill hourly means more time spent on bookkeeping and less time spent on actual development. Say, you spent 8 hours in a day, you need to put 5 minutes per hour for bookkeeping. In total, that's 40minutes of unproductive time. If you bill daily, you can spend maybe 20 minutes doing so. That's 20minutes more saved for coding. If bill hourly implies more multitasking switching among multiple projects, the context-switching time can easily to add 10minutes per hour wasted. That's why it's more cost-effective for the customer if they agree on bill daily.
However, the customer may have different opinion. If a project needs 12hours to implement, bill daily means they have to overpay extra 4hours (2days = 16hours, assume 8hours per day), which they don't like.
A geeky analogy. When you initialize a hard drive partition with file system, you need to slice it into a large number of blocks. Smaller block size such as 4KB is more space-efficient than bigger ones such as 64KB. However, it's less efficient in terms of throughput. Of course, it depends on the pattern of your file usage. If most of the files are small files, small block works perfect without performance penalty. If most are big multimedia files, then big block size is preferred. You can easily map this to the case of consulting gigs.
So, it's more like a psychological thing. Bill daily encourages bigger projects, better project planning, less turn-over, and may lead to better results, which consequently cultivates long-term relationship.
The suspense is killing me. Now I want to know sooner than later haha.
If you don't have systems setup for tracking time without overhead and producing invoices on that basis it can be difficult but we do so it works really well.
I think your repeated flogging of this particular dead horse is mis-guided and mis-leading.
There is a major difference. The main one being that if 'bill daily' you are putting a burden on your client to have to think about paying you every single day. At some point, it becomes annoying.
Thoughts?
Also, I've harped on this a time or two, but there are people who get $2,000 a day for something which is indistinguishable from web development in terms of activities performed but which is sold as accomplishing business goals ("making lots of money") with incidental reference to programming.
P.S. Charge more for emergency engagements. The business stopping for a day is worth more than $1,000 even if the business is a taco truck. Don't do professional work for taco trucks.
If anything I still think I'm too lenient but this I'm sure will grow as my confidence dealing with clients grows.
You're over-discounting domain knowledge. Anyone can write in code x+y. It might take much deeper knowledge to know that sometimes, it's x-y, and exactly when that is.
You get what you pay for.
Contractor = 2x permanent employee Consultant = 3x Contractor
So $2k a day sounds on the low side to me but perhaps it works if you're talking 4-6 hour days.
I guess my aversion to even quoting daily, is the notion that you can be brought up to speed quickly enough to effect any good change (and add value) in just 1 day.
For instance, if you are supposed to be optimizing code in a legacy web app - do you set a minimum number of days that they have to commit to, for something like this? Or do you just stick to daily?
My general M.O. with project quotes, which someone on HN once called "the first truly new, clever billing technique that I've seen" but I just call "the way Dave and Jeremy were writing proposals and statements of work when we started Matasano", is simple:
* Make a conservative, honest estimate of the total number of billable days/weeks required to complete the project.
* Quote the total amount that time works out to as if it was a project rate.
* Clearly state in the SOW that if additional time is required beyond the quoted amount, additional person/days can be staffed at a pro-rata daily rate.
The result is a project-based quote on time-and-materials terms.
I spent a period charging daily and half day rates based on the advice of someone else - it was a pain for me more than anything. I spent more time asserting to clients that this was better for them than actually pitching for the work :) (bear in mind that for small scale projects the client is probably unused to the traditional consultancy models, at least in my experience).
As an individual developer, if someone is asking me for less than 6 hours worth of work a month it is better for me (in terms of scheduling, justifying my timescales and actually obtaining work) to bill hourly.
I've tried various methods of billing and hourly has always resulted in the most work, less stress and highest revenue. But, obviously, this is only as an individual.
Many people poo poo such bit-part clients - but they have always been my most reliable revenue stream; in terms of follow on work and referrals. Larger more consultancy minded clients (billed daily) hardly ever end up with follow up and are way more aggressive in obtaining completion.
But as with all things YMMV; most of the developer consultants I know have their own individual viewpoint (and we're all fairly evenly successful).
I'm having a hard time understanding how a simple daily rate causes you more stress. Why were you discussing with your clients how a "daily rate was better for them"? It's perfectly OK for the daily rate to be better for you, full stop.
If your dealflow is dominated by a few recurring clients, you should consider whether you have something more analogous to a retainer or staff-aug arrangement than a true project model.
What makes me nervous is the overwhelmingly obvious fact that nerds like us are all too happy to leave money on the table. "It's stressful for me personally to effectively receive 8x$hourly instead of breaking out precisely how many hours I worked so I can justify 6x$hourly with the client without arguing". Well, you just left a new iPad on the table; if your clients are forcing you to do this because they are fucking assholes, then get better clients. It is a seller's market right now.
I wish I could somehow cause this to be bold and in 36 point type.
For me, an individual, that is massive.
Where I work (now part time) that is average. But what works for a multi-person company doesn't necessarily work for individuals :)
> If your dealflow is dominated by a few recurring clients, you should consider whether you have something more analogous to a retainer or staff-aug arrangement than a true project model.
So my client list consists of around 50 regulars who will ask for work on irregular schedules, averaging around 5-7 hours a month (totting up to around 25-30 hours). Word of mouth can add 1 client per month. Together it equates to 80% of my work.
A retainer model would put off almost all of these clients.
> Why were you discussing with your clients how a "daily rate was better for them"?
Usually the discussion went like this - Please quote us XYZ
- Here you go, X days @ £Y
- Days??? What is this?
- Sigh
(also; I noted that clients seem to see "8 hours" as lot less than "1 day", even if you're charging the same - something I tested on a couple of in-tandem clients)
> "It's stressful for me personally to effectively receive 8x$hourly instead of breaking out precisely how many hours I worked so I can justify 6x$hourly with the client without arguing"
I think your views are skewed by the sort of clients you have. The only clients I've had who didn't query daily rates are companies large enough to have a HR department. I personally hate those - they waste my billable hours on bureaucracy, and I prefer to be paid to code :)
I also don't understand the argument you are making; one of my reasons for changing back to hourly billing is that my daily rated plateaued at around £900 (and I thought I was worth more). My equivalent rate now is much higher (~£1400), and I work more "days" in the month.
> It is a seller's market right now.
Absolutely; and there are some of us mopping up the lower end of the market. Demand is outstripping my own availability to the extent that at the moment "small projects only" is my maxim.
I understand where you are coming from; but this is my viewpoint after fine tuning small-town consultancy for ~18 months, as an individual, of how I can make the most money.
For a business on the scale you operate, yes, daily rates is the standard (and best) model.
p.s. from another comment I noticed:
> Worth noting: good clients tend not to pay anything for the 1-hour "oh cripes" conversation. I'm extremely unlikely to bill for an hour or two of work.
For you, that is easy soak. For me, I make myself available these very-occasional crisis moments - but that is two hours I can't just wave off... bill!
And the client is happy with this; they don't have to pay an expensive retainer for something they use at most twice a year. They just pay when they need me. Best of all it works for me because I am not obligated to them; so if they call and I am not available they don't get snippy because they are paying me to be available (nasty experience of this).
I do have one client who retains me for high availability - and their "hourly rate" is 250% higher than normal. They tend to be quite demanding.
Again, only my 2p. :)
I generally think you will make more money and have less stress if you can adopt a business model that doesn't involve mopping up the low end of the market at an hourly rate.
I can obviously see how switching from low-end hourly work to daily rate or project work could be stressful. I'd just say, recognize that the stress is coming from transitioning your business, not from the difference in client expectations. Transitions are painful. Better clients, as a rule, are not; we might effectively call this "the patio11 rule": your customer service burden diminishes as your price raises.
That said, if the transition isn't worth it to you, it's not worth it! There could be lots of reasons why it wouldn't be.
You've fairly hit the nail on the head, BTW, in noting the problems of transitioning. I'd love to have larger scale projects (if I could actually keep interested in them ;)) with "better" customers (for whatever value of better). One problem for an individual, though, is actually gaining work - I hated doing that. The thought of having to constantly pitch for work (and to a certain extent managing it) puts me off.
But on the other hand - these smaller customers are currently getting shitty snake oil work, so when they hear about developers doing solid work in a friendly way they will come and bite your hand off.
To some extent I view that a "good customer" as much as anything :)
I (and I imagine a bunch of other people) am curious about this point. I worked at a previous company that ostensibly had terms like this, but it never worked out, because in practice the clients almost always bullied my bosses into giving them the extra work for free, because people don't like cost overruns. Did you guys find that you had a lot of resistance when it came to overrages?
The thing that normally happens is, you're attentive to your project, you see schedule problems coming a week or two away, you make it very clear to your point of contact that there's a storm brewing on the GANNT chart horizon, and then you adjust project scope to account for it; this is the consulting version of "slipping features, not the date".
Good clients will occasionally have an oh-cripes moment and need an hour from you in the middle of the day. Good clients in an oh-cripes moment will think your day rate is a perfectly reasonable price to pay to get out of an oh-cripes moment. [Edit: On reflection, my actual practice for this is exactly equivalent to Thomas' as described in his comment. Do that.]
Why does this work? Because I don't bill anyone for an "hour or two of work", and don't have to worry about this level of accounting.
Clients notice. More importantly: clients are much more willing to reach out and ask questions when they know the meter isn't going to be ticking. Matasano has never employed a salesperson; we get our business from repeat customers and word of mouth, in large part because we are very easy to work with.
See what I mean about good practices emerging organically from not billing hourly?
Just billing a full day once I determine what they need isn't trivial would have a nice effect on both my guilt and bitterness in these situations.
I have been freelancing for the past 4 years and have done so for 6 years in my programming life of 11 years. All said and done, I find doing a honest job in estimation, no over billing and writing code to the best of your ability is the key to success.
Documenting your own knowledge helps a lot. Knowing what is the latest and greatest, even if you have never tried it helps in keeping your client informed about their choices.
Not living in your comfort zone is the best thing you can do to yourself. What I mean is, don't give your clients what you know, give them what is good for them even if that means you have to learn a new tool/trick/language.
Maintain a healthy pipeline, it helps in keeping the stress down.
On a day to day basis freelancing is more stressful then a regular job, but on an average over a month or quarter you will find it to be more relaxing and it lets have more time for yourself.
Best of luck.
The plan is to ship it before the end of June - am publishing via leanpub.com (great experience so far) and it'll be a paid-for book to cover the (many, many, _many_) hours I've put into it.
When it's ready, I'll make a sample available so you can try before you buy, and will be pulling out a dozen names from the early-sign-up hat for a free copy.
So, if you're interested, please do sign up.
Found some good guys to do work with now on a kind of "per project" approach which is good.
Interested to read the book as I found my weaknesses to be:
1. Charging for my work. I still find I undercharge as I enjoy the work and feel awkward asking for large amounts per billable hour. I'm now kind of trapped on low billable hours with my initial clients...
2. Finances. I've learnt enough and in the UK you can survive for the first 6 months without an accountant. I'm probably going to get one soon to handle the more complex tax/pay stuff.
3. Work out a proper hourly rate. Don't use the same broken formula I did thinking I can work 7 billable hours per day. I end up with about 4.5. I didn't account for the gaps between work. I now understand why freelancers have high rates.
The blog seems interesting and I wish you the best of luck. I think I hit a bug though ... When I make the font larger/smaller, the different elements of the screen move around and reposition themselves for a few seconds after. Also, the code samples disappear in an hap hazard manner. Am using Chrome on a MacBook Pro.
Thanks for the bug reports. I'll investigate as soon as the site calms down a bit. :)
I'm eager to hear more about your progress. Good luck!
edit: Subtle button now under the post :)
* Contracts. Watch this talk by Obie Fernandez[1] and take a look at his Master Services Agreement + Statement of Work bundle (paid for, but totally worth it). Not only does it protect you to some extent legally but you come across as a lot more professional to clients.
* Charge more. I have a comparable amount of experience and I'm charging around double what you've listed on your price card. Many good things fall out of charging more. Even if you don't intend to charge a higher rate, I would at least quote higher on your price card page for more negotiation room.
Good hunting!
[1] http://www.infoq.com/presentations/fernandez-sales-do-the-hu...
Pricing is tricky. I've already been turned down by a few companies at my current rate because I was too expensive. This put me off raising it higher. I'm still unsure as to whether having pricing on the website is a good thing or not, it's always tricky to know what to sell yourself for.
In this market, you really, really really are not too expensive.
Some concrete sources for PHP work:
* http://hackerjobs.co.uk/ - Quality of clients that advertise there is generally high.
* If you don't mind dealing with recruiters, cwjobs.co.uk will happily email you a steady stream of PHP contracts at the £350+/day range.
* The big publishing companies seemed to be hiring both fulltime and contract staff in perpetuity. I'd follow up at PHP London, as they seem to hang around there.
You should be going to PHP London anyway, with business cards (side rant: not a single freelance developer I've met at a meetup has had a business card on hand. The same developers complain about how hard it is to find work. Don't be one of these developers).
> This put me off raising it higher
I know the feeling. There are clients in the world that can afford higher rates, but it's hard to remember this if you get turned down a few times in a row.
If you're nervous about raising your rates, I would suggest that you try raising the quote by £50 at every interview you go to. If it's too expensive for the client and you really need the work, you can always invite negotiation.
Other than that just stick to your guns, and remember that there are economic situations that clients can be in such they can afford to pay quadruple your daily rate without raising an eyebrow.
If you'd like to grab a beverage sometime and talk shop, details are on my profile :)
I'm gong to try and make the next PHP London event, hope to see you there. I'll make sure I bring business cards :).
I recently started freelancing (the last 12 - 18months) also, and one thing I did - to generate new business - was wrote a script that sends me a bunch of leads. Right now, it's primarily from Craigslist, but I will add other sources.
I showed it to a friend and fellow web dev and he loved it. So that made me start wondering if others would find a service like that useful.
Would you pay, say $9/mo, to get a handful of curated Craigslist leads (5 - 10) sent to your inbox every weekday?
Thanks.
P.S. The reason I would sell access to these leads is because I can't manage everything. There are some leads that want someone local, there are some that want say an iPhone or FB App developer - none of which I do.
Surely there must be value around the process behind that.
[Aside: I'm on the fence about you selling this software. Once everyone has it, the value of it decreases, because everyone is competing for the same leads.]
I definitely agree that there is value behind that process - and I have some ideas about how to solve that issue. But I first want to verify that there is a market-based need for the core product. Once people find it useful enough to pay for, then I will continue tweaking it and adding stuff on, etc.
I am not selling the software, I am just selling access to the leads. So you sign up, and my software sends you an email with 5 - 10 leads every single day.
I doubt that everybody will act on every single lead, every single day. Plus, I do agree that if we are to look at extreme cases - where I have as many freelancers as I can get, and everybody is replying to every lead - then the value of each lead decreases (or increases, depending on your perspective), but I will be tweaking it and adding sources and listening to feedback.
If the problem I am having is that too many people competing for the same leads, I think that would be a good problem to have :)
Many a thing like this exist, both paid and free. Jobpile has netted me some work in the past.
Jobpile: http://www.artypapers.com/jobpile/
I am also thinking of finding a way to make the entire process more efficient - but all it takes is a handful of leads a year and it has more than paid for itself.
Does jobpile email you links - or is it just a search engine that you go to?
I'm quite sure there's a paid service at a similar sort of price range to what you're describing that does email you. Don't remember the name atm.
:)
I guess this is just validation that the idea makes sense.
Finally launched :)
Ok, will try and get that up asap =)
With a sense of impending doom, I got onto oDesk to do some consulting myself. What a humbling experience that has been! I must have gotten outbid on the first 10 jobs I went for, and finally had to take one at ~ $10/hour. With that experience it became easier to get a 2nd. I find myself a lot more impressed with the OP's first month than I would have before my own experience looking for freelance work.
It's interesting really as to when you start classifying yourself as senior? I didn't really think too much about it when I started applying for roles as I had gained that confidence in my own ability.
That being said, I was almost put off working for one company because I thought at the time I might not be experienced enough. This turned out not to be the case at all and I'm so thankful I rode it out rather than letting my own self doubt influence my decision.
There are going to be companies out there with people in "senior" positions with less experience/skills and talent than you. In some cases considerably less. Don't sell yourself short because of a label you've given yourself.
Where possible, I'll avoid the term junior for here on out.
I hate specs.
You won't know how to solve a problem before you've already solved it, so your spec will be wrong.
My customers pay for my time. Together, through an iterative process involving myself, the designers and the customer, we find good technical solutions to the problems they need solved.
I can tell them “this solution is difficult” or “this solution is trivial”, and they can judge the cost-benefit ratios along the way.
You've paid for 300 hours of my time. Let's make the most of that.
I will follow your blog to see if you give more details about how you found your initial contracts, why should you ask to be paid daily, and how your enterprise will evolve on the mid-term.
Thank you anyway for sharing these details.
I've chatted with a few of you HNers about what you'd like to see, but I'd appreciate any more opinions for matchist.com in this quick survey: https://docs.google.com/spreadsheet/viewform?formkey=dFI4cjQ...
http://alanhollis.com/ has an overview of my skills. http://alanhollis.com/cv/ has more details of my experience.
EDIT: Also...where's the RSS link? If I just follow on Twitter, I'll probably miss any updates.
[0] http://alanhollis.com/silicon-milkroundabout-coding-competit...
If they were failed companies, they wouldn't need you to manage legacy code.
Also you say you entered a programming competition, can you share which and why you chose that one?
I entered a competition ran by a company supporting http://siliconmilkroundabout.com/, purely because the competition appealed to me, I had some free time, and I thought it would be a good way of promoting myself before the event. Unfortunately the competition wasn't as successful as I hoped it would be (very few entries). I came second overall, it's another example of work on my github profile, and I got to play with Python for the fist time, so it was a positive experience.
Don't give up and your persistence will pay off. Good luck!