What are some mistakes you have made down the road and what advice would you give to someone that just started?
1. Not getting money up front
2. Extending credit
3. Open ended meetings
4. Being insufficiently explicit about what is being delivered
5. Working on a handshake (seldom a problem with big clients actually) - get them to sign something
6. Not actually meeting in person at least once
7. Not being clear on who owns the code/technology (if you're going to do more or less the same thing for the person across the street then make sure to let the client know that they are getting a license (or something similar))
8. Scheduling meetings in their downtime, but your worktime
9. Not having a template, or even an idea of what a good referral would look like
10. Having a specified finish line - much more important for the smaller client than the larger ones IME
Getting past that, beyond what’s already been eloquently said by others…
1 - Be explicit in writing about favors. (“I am doing this beyond the contract because…”)
2 - If you turn a personal relationship into a business relationship, you may lose the personal relationship if the business side goes bad.
3 - Diversify so you can afford to lose any one client.
4 - Don’t be afraid to ask your worth. “Yes, $125/hr is fair, since it’s already a discount from the $150/hr that BigCo paid, and I have to fund my benefits and downtime” (Set your rate based on what else you would do with that time rather than by what they claim to be able to afford)
4.5 - Bump the rate dramatically for small chunks of time.
Related: Admin and client hand-holding eat all the things; consider having fewer/larger clients.
No matter what size your clients, don't sell one-off websites. Sell either a package of annual services or flat-out rent them a website you own.
Clients are never happier than at the moment of delivery; that's the time to ask for referrals.
You can almost never meaningfully raise your rates with a long-term client so start with high rates.
Related: There's no reason in the world every client needs the same rate. The same piece of work you do may solve a $50k problem for one client and a $5 million problem for another; why would you charge them the same?
I've seen some comments about providing as much detail as possible in invoicing, time tracking, etc. That's one way to do it but, in my experience, small clients want simplicity. Flat rate for a fixed scope, no time tracking and a one-line invoice.
If you want to chat, drop me an email (email in HN bio)
1. Don't take on new services outside your wheelhouse just because "you can" which is common in tech.
2. Don't charge clients using confusing terms.
3. Get money up front, don't waste your time with people who want work on spec or propose weird payments terms.
4. Don't hole up and avoid your phone/email.
5. Don't be inconsistent. Have regular hours, pick up the phone, answer your emails and stick to it! Your local reputation will build and competitors will come and go.
6. Working with a board of directors or a website "committee" is ALWAYS a nightmare. Price accordingly.
7. Town/gov projects are a giant pain, but can mean solid recurring revenue.
8. Don't waste time on huge RFPs. The longer the RFP, the less time I invest!
9. Be weary of an entrenched local competitor who wants to "help you". I had a "retiring" competitor send me his worst clients and he didn't retire.
10. If your fees are low, the clients that hire you at that low rate will never accept a higher rate.
11. F*ck your NDA! Sorry this isn't Reddit, but avoid signing any and all non-disclosure agreements.
12. Having an office helps. We started at home, and for 6 years worked "virtually". Meeting with local clients was a pain so we got an office. Huge difference in perception. I still like working from home better, but having the space to meet and impress benefits greatly (you can charge more).
Final note: All my clients are business owners. It's really rewarding and enlightening to work with them. I learn so much, and teach them so much. The relationships I've made will last for years/decades. Also, after 21 years I can't wait to... not have clients!!!
- Not charging enough from the start. Two clients accepted my rate way too fast.
- Giving time estimates for every piece of work rather than price estimates. Price estimates allow to you to charge for the value you provide rather than being limited to the negotiated hourly rate. Some tasks take a great deal of expertise and provide massive value but take only a short time. Don't bill them by the minute for that. Bill by value.
- Limit the number of changes they can make after completing a task or charge per hour after initial delivery. Some clients will take every opportunity to tweak something. It never ends. If that is happening on your (unbilled) time then your effective rate is falling with every new "quick change".
- Don't hand over work until the payment experience for a new client looks to be in good faith, regular and business usual. I've heard a few stories from friends about serial-exploiters who churn through freelancers trying to get most of the work done for free.
No one is small enough not to need written terms.
1. Taking on clients who did not have their shit together. They were always high maintenance, never satisfied with the work, and constantly trying to make huge changes.
2. Taking on work that was beyond our ability to deliver on.
3. The single biggest mistake we made was partnering with another firm who we let do discover and planning for us. They sent us over a client we were contractually obligated to do development work for, and two screenshots of a "website" and told to "have fun." IT WAS A NIGHTMARE.
We once had a client, after we finished their website, ask: "OK, so now how do I make money off this?" and I was like... dude... that is not our job. That is yours.
Another client had a really ambitious and fun project that included the need to develop 4g connected cameras and computer vision. I voted NO on the project. I felt like we did not have the expertise or the resources to take on the project in a way I felt comfortable with.
My partners disagreed, and I was out-voted. This is what incited me to sell them my share of the company and leave. Honestly I'm not really sure how that project went. Maybe it was fine, who knows.
1. Not using a real contract. Get something like hellobonsai.com if you don't have an attorney, but use a real contract. You're (probably) not going to end up in court, but if you do you will be glad you have a contract that lawyers understand.
1a. Not being very specific in the scope of work. The scope of work must be referenced in the contract, and you must keep it up to date by adding additional scope as appropriate. In case of confusion or dispute, you can always refer the client back to the discussion you had about the scope of work and remind them that they signed off on it (yes, make them actually sign off on it).
2. Not collecting a deposit up front. Depending on the size of the client, 50% of the first month's fees in advance might be appropriate. More might be smart, depending on the client. This is also a good qualifying step to filter out clients that only think they can afford your work. You then invoice as normal, with the goal of keeping the amount in retainer constant (FIFO for money). If you don't do this, you will eventually have to eat a $5k or $10k invoice that you need to pay your own bills. Better to use the customer's financial reserves than yours.
3. Working with very small local clients at all. Working primarily with very small clients is a very risky way to run your business. If you insist, the absolute bare minimum you must do is have a real contract and collect a significant deposit up front.
I would never want to do that again. The size of the client determines how much money they have to pay you before you owe them your first born child.
Level 1 - Home Users. If they pay you $100, you better answer their calls within 30 seconds on a Sunday.
Level 2 - Up to 10 employees. $1,000.
Level 3 - 11 to 500 employees. $10,000.
Level 4 - 500 to 1,000 employees. $50,000.
Level 5 - 1,001+ employees. They just don't care. They can pay you $500,000 or even millions and if it blows up in their face they'll chalk it up as a "learning lesson".
1. Competing on price. Stingy clients are very demanding.
2. Competing tasks rather than solving problems. You should see the look on their face when you take a minute to fix some random IT problem.
3. Not having a clear scope for larger projects. I was lucky but some of my friends had long stressful months because of it. Humans and developers have differing ideas of what "finished" means.
4. Hosting clients. The responsibility is not worth the money. At some point you might want to do something else and you'll be stuck with lots of clients who depend on you.
In the long run small clients are not sustainable. Big clients pay better and more consistently.
I've never had a relationship with a family business last beyond the scope of the initial project. Things always fall apart because of family infighting, or because every business decision ends up being way too personal/emotional for them. It's never worth the hassle, trust me.
Try and surround yourself with people you trust so when someone says "xxxxxx is super unprofessional" you know they're being legit and they're not just trying to cover their own back or running saboutage.
My main mistake was not paying attention to adjacent businesses and underestimating how destructive they can be. Who's in your office block? Who did you graduate with? Try and identify problem people in these groups and pivot away from them
Knowing this, it's important to establish to the client from the beginning what your role will be post-launch. I have turned this into a lucrative source of (largely) passive income as I require clients to agree to at least a year of contracted monthly support. My contract is structured so that they owe the fee every month, regardless of whether they reach out for support or not. If you're thinking that most clients would never agree to this, I've yet to have a client that didn't. And the reality is most of the time they don't call for support, but the appreciate knowing that they can if something comes up.
This is a win-win, they get the peace of mind knowing that they have someone who will help then when they need it, and you turn that into a stream of (largely) passive income. (This works for large clients too of course).
The big challenge I have is breaking into project-based work for good companies. Getting paid by the hour is easy and pays work but is really tiresome. You can't scale your work if you get paid by the hour. The only way to scale is getting paid by the project and taking more projects on (and eventually hiring people).
Also don't leave anything to chance. Lay everything out explicitly. When the work is done, and they agree, then let them know that everything after this point is billable. Sign on it. You will get nickel and dimed to death otherwise!
Lastly: https://theoatmeal.com/comics/design_hell <-- truth.
I've fixed bugs for free (if I failed to interpret requirements or made a mistake) but otherwise I would offer change orders for anything outside the agreed scope. Depending on the changes or how they fit into the existing work, these would possibly be discounted or free, especially if they are made early enough.
That said, I've been solid and explicit in the agreed scope. This goes for every project or org/client, don't get me wrong, but I've found this is much more important with smaller orgs/clients.
Otherwise there are a lot of great suggestions already made elsewhere in these threads. I haven't really ever had issues getting paid. I believe having a clear scope and asking clarifying questions also builds a better relationship (which I think contributes to better engagements, reduces other headaches, and leads to referrals!)
Set expectations. Small businesses often expect you can do more for less. You're the expert you tell them how long something will take, don't allow them to set the expectation. Breakdown why it will take that sort of time.
Keep all solutions as simple as possible. If you have an internal tool that only one or two administrators use, then chances are you don't need user management. Have one password to secure the app, or make it a desktop app. Maybe you don't need a GUI to report on data, could a monthly report emailed from the system do the same job at half the development time?
The sales team will want reports on everything and can chew lots of time. Chances are management doesn't want this. Try to give data to them in Excel so they can manipulate the data.
The Challenge finding ‘Good Clients’, the ones who respect and appreciate what you do. The ones who pay well and on-time.
Which is to say, learn how to qualify a good potential client upfront. Don’t be afraid to turn down opportunities that don’t match-up.
Don't custom-build complicated websites for small local clients. Just don't. Most of them won't be able to maintain it over time - 90% of the time, even if they think they need and can afford your bespoke solution, what they _actually_ need is a simple hosted wix or squarespace instance or equivalent -- it may not look exactly like they imagine, but they'll be able to modify it and improve it and actually keep using it. Your bespoke solution is going to fall apart the first time they tweak something and hit a trivial syntax error they're not equipped to repair.
Scale the complexity of the solution to the capabilities of the client who's paying for it.
I'd ask yourself if your goal is to keep working with small clients, or pivot to making products for this audience? It's good experience and satisfying to be doing what you are doing, but it can be limiting over the long-term if you are the one doing all the work with limited reuse. As life changes you may find that it's a struggle to work with small clients and having a product, or something that's largely a product, will help you be able to put things on autopilot.
Good luck!
Build storemapper.com not a feature that does the same thing for one or two clients.