Bill Erickson and Jared Atchison gave a great talk on how they run their freelancing businesses. It was fairly unstructured, with lots of question and answer time. They did a great job of sharing their philosophies and processes for running their businesses. My notes are fairly stream of consciousness; I was just trying to get as much down as possible.
Getting started – making the jump to full time
Started off just working evenings, scheduled meetings during lunch, etc. Eventually switched to working his job half time as client work picked up and he had some clients bringing him repeat business. Networking is super important: going to WordCamps and networking with people has been a huge factor in growing his business.
One of the big things that put me in a position to be able to go full time was going to WordCamps and meeting people.
There is still more work than most developers can handle. If you’re just starting out, build relationships with accomplished designers and developers. The good ones are in high demand and are always looking for other people to send business to.
Find a niche that you can target (Genesis, bbPress, WooCommerce, etc.), and specialize in that. Become the go-to person for that niche. This way, other freelancers will send you inquiries they get in that niche.
As you grow, some stuff (like communication) becomes a problem. A 1 hour phone call always takes 1 hour, so reduce the number of 1 hour phone calls you have to take per client.
He can re-use code all day long, but can’t re-use one-on-one communication, so he uses his website to weed people out. He puts pricing and timeline information front and center, so people who want a $100 website never even call him. Same thing with timeline/availability: he shows what date he’s currently scheduling projects for, so people won’t contact him if he can’t help them with their urgent project.
He also has canned responses for once people do contact him. He customizes them for each client based on what they say.
Once they’re qualified from there, he schedules a 30 minute phone call to close the sale.
As an example, 100 people might see his website, 40 will contact him, and then of those, he mgiht schedule a call with only 10 of them and closes the sale from there.
Reusing code & scaling development efforts:
Best practices for reusing stuff: build things in a modular way – do it right once and reuse it forever.
Break down a project into multiple processes: pre sale, contract, initial development, modification period/training, launch.
Bill looked at his projects and found where he can save the most time, e.g turn stuff into a plugin that he can reuse on every project from now on (he gave the example of his Genesis Title Toggle plugin). As you build things, find ways to store that knowledge so you don’t have to reinvent it later.
Combatting scope creep:
Have an iron-clad contract with a scope that you’ve defined, then defined again, then defined again.
Any time you run into a nightmare client/project, step back and analyze the situation, then figure out what you can add to your contract & communication to prevent that problem for future projects.
For average small business contract, Bill likes to put the scope of work in an email with bullet points and avoid the legalese (I happen to disagree with this approach, for what it’s worth. I use a contract for anything over a few hundred to a thousand dollars. However, I also realize Bill operates on a different scale; he’s doing much, much more volume with many of them being at that lower dollar amount, so it makes sense for him to optimize for speed). He sees contracts as a way to get everyone on the same page. He includes 1 hour of phone consultation in his contract, and everything above that is billed at his hourly rate. Most clients like this so they’re not paying for the overhead from the bad client who needs 10 hours of hand holding.
Bill uses the design to avoid scope creep: he requires the client to hire a designer, then he works off of the design comps, so the scope is clear: if it’s not on the design, there’s no way that Bill can know to build it, thus it’s not in scope. The design process serves as a discovery process as well, so the client can figure out what they actually want.
Audience question: What about when a client comes back later and they want something new (not a whole new project, just add something on that wasn’t in scope)? Do you take it on an hourly basis, or send them to someone else?
For Bill, he likes to avoid if possible since it’s not super profitable. He’ll tell them he won’t be able to do it for 8 weeks (discourages it by pushing it back), and here are some other devs who can do it now.
Bill doesn’t like hourly work: it punishes you for being skilled, and it doesn’t align interests and incentives. If he estimates 10 hours for something (and that’s the minimum), then if he finishes in 5 hours, they’re not happy, because they feel like they’re paying for 5 hours of empty time. He charges by the project, so the client is happy if they get a good website (because that’s what they signed up for – not a certain number of hours).
How do you work with designers?
Bill gives them a list of designers. He doesn’t suggest just one, so if they have a bad experience it’s not solely on him (they need to assess and choose). He requires layered .psd files from designers. Some clients provide more (brand guides, etc.).
Bill: I do value based pricing. I charge what I think is a reasonable rate for a site (base level), up from there is based on time. Starts at e.g. $2500 and goes up from there based on custom features.
Bill makes data-based decisions. He logs everything on each project: revenue, expenses, time spent. Then from there, he sorts by effective hourly rate, and figures out what the highest dollar per hour projects have in common. He discovered the smaller sites are better for him, because more of the work is reused (because there’s not a lot of custom stuff), whereas the bigger projects he was spending way more time per dollar on, since it was lots of new/custom work.
It was crucial to track time on projects for the first year of freelancing to see where he was spending his time, figure out where he went over time budget, etc. Can then fix from there.
Bill built a CRM so he could analyze where leads were coming from (especially the higher quality/more likely to convert leads). If you find that referral leads are 5x more likely to convert, spend time maximizing that channel.
Jared: Don’t be afraid to charge what you’re worth.
When you’re starting out, how do you schedule/estimate what a project will take?
Bill: at first, I just took whatever I could get, and learned from there how long it takes.
Schedule initial dev in week-long sprints. A small project takes less than a week, bigger ones are 2 weeks, etc.
Week-based timelines work great: clearly shows what I have going on and when I can schedule more work.
Always under-promise and over-deliver.
What about pro-bono work?
Bill says it can be good, but be careful, because you don’t want to get known as the free guy. Maybe instead, find a random website, rebuild it in WordPress and put in your portfolio as a sample of what you can do (especially if you’re a designer).
Jared: the WP101 Plugin puts all the video tutorials on the WP dashboard for the client. It’s been an invaluable resource.
It’s the best way for a non-WP user to learn how to use WP. Bill sends the video tutorials to his clients before the site is ever done, so they can review them while he’s building the site, and then not be overwhelmed when he delivers the site. Then he just gives instructions on the custom stuff he built.
What do you do in a situation where a client has paid you a deposit, but then takes forever to get you the content?
Bill has something in his contract where the modification period is separate from the development period. The modification period can last as long as the client wants (if mods are within scope), but each modification can only last up to 15 business days. If it’s been over 15 business days since the last communication, then the project is complete (for Bill).
Jared says look for the red flags up front. If you have to beat the design out of them, it’s going to be a bad project. You can adjust your contract/payment terms so that if they take forever to get ready to launch, it doesn’t hurt you. Final payment isn’t tied to project launch; instead, tie it to completion on your end, not when they’re ready.
Bill sets the payment terms to align interests: if payment is tied to launch and the client decides they don’t want the site anymore, they’re not incentivized to complete the launch. Instead tie payment to development/modification completion.
Jared: when I send out a contract, I tell you my availability as of *now*, but you don’t get on my schedule until you pay the initial deposit.
Some people put an “inactive” clause in the contract: if the client disappears for x days, the project goes inactive. Then it takes e.g. $300 to get the project restarted. Also, if a project goes inactive, then they get put at the end of the line, so they can’t just show up and demand you do something right away.
What about staging sites?
If it’s an existing site, he copies it to his dev server and builds it there. Works same for new site. Only problem is if you’re redesigning a busy existing site where you need the new content that’s being made.
Jared uses the excellent Registered Users Only plugin to keep the site from being publicly visible during the development phase.
I’ll add here that my process is a little different: I develop locally on my machine, and use git to push code to a site on WP Engine (whether the production site, or the fantastic staging site that WP Engine provides). I also use the excellent WP Migrate DB Pro plugin to push and pull the database as well. A workflow like this (using version control) is especially important if you’re working with a team (even if it’s only two people).
What about payment?
Bill and Jared both use Freshbooks and take credit cards through there (google payments, but they also have Stripe). They also take checks. Don’t use Paypal! Both Bill & Jared have had their accounts locked there.
How do you convey that you care about the customer’s site, even though the onus is on them to handle content etc.?
Jared: set realistic expectations up front. Do some amount of hand-holding, but not too much.
Jared on when you have to end a relationship with a client: “It’s not you, it’s me.” When you turn someone away, try to send them other options.
I really liked this talk, and especially the format (for this subject matter). It was great for audience members to be able to ask questions and get them answered right away. I feel like I’m in a pretty good place as far as running the business side of doing client work with WordPress, but I still learned plenty and got some great ideas for things I can implement in my business (such as Jared’s “you don’t get on my calendar until you pay the deposit” method).
If you have any questions about any of this, please ask in the comments! I’ll try to share whatever I can, and I’ll ask Bill and Jared to add more if they want to as well. You can also find me on twitter: @tnorthcutt