Ask HN: Mistakes working with small local clients?
Hi, so I have been working with some very small local clients/businesses developing them websites and custom made internal software/tools and also providing hosting and support.
What are some mistakes you have made down the road and what advice would you give to someone that just started?
78 comments
[ 2.5 ms ] story [ 127 ms ] threadNo one is small enough not to need written terms.
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
11. Invoice frequently, on schedule, like clockwork. Drop anyone who doesn't pay on time.
12. If you are doing them any "favours" for any reason (discounts, work you might do but don't charge for), put it on the invoice.
Writing it down can be the difference between the client thinking "I understand what you did there is a one-off favour and I appreciate it", versus the client taking it for granted as something normal and always expecting it in the future at no cost / discounted cost.
If there's a line item you're charging them, and then a credit, it's apparent to everyone that your work has value. If it's just missing... then the value can be forgotten much more easily.
THIS. We bill monthly but sometimes I'll hold a project that isn't complete. BIG MISTAKE and my wife who's the CFO reminds my everytime she "finds" time logged from 6 months ago that was never billed. I'm better now, but the business world works on a schedule, your billing should too!
But it really is better for everyone involved, clients don't like late or unpredictable invoices either!
People start businesses for lots of reasons, and if you've built a small business that's been around for more than several years, in a lot of industries, that means that you know how to work with people. The food business in particular is that way -- if you can't build good relationships with your suppliers and customers, you're dead.
I agree with your overall point that, if you're looking to optimize your payday, working with small businesses probably isn't the way. But it can still be fulfilling and reasonably lucrative.
I don't think anyone disputes that running a small business is hard. It is just that most don't do a terribly good job of it.
Doing in a scalable way sure. Grocery margins are razor thin.
Doing it at a loss or break-even by working 80+ hours a week understaffed no, everyone can do that.
We'd need to define 'small business' size, but more importantly, who you're working with. Working with the owner of a small business... every dollar effectively comes out of their pocket (at least, that may be the mentality). Working with a small business that has enough folks to have a team, they're more likely to have some actual budget to work with that isn't 'their' money. They have to achieve business goals and have money to spend.
Who you're working with and how small 'small' is are the critical factors, I've found.
And you will find that some of these “small business” are actually failure and they are alive just because somebody else in the family is paying the bills.
Then I remember that it is an industry with tiny margins and remember my past work with small clients and come up with a similar list of thoughts that you have outlined here.
The multiplier itself can't be dramatically different - you can't write software that'll bring a 99% decrease in costs. But the base that you're multiplying can easily be 100x larger (10000%). That's the value you're creating, some part of which is your fair share.
So how to successfully sell to small clients? The correct answer is "en masse". The only way to make up for the difference in productivity is with numbers - you don't write custom software, you make a product and sell it to thousands and more.
Small clients simply should never work with service providers directly - they just waste time that'd better be spent by making a bigger client 0.1% more efficient. I know that's the opposite of what idealism would say, but it's true. The _smaller_ cost for society is burned out and pissed off developers. The real one is the opportunity cost of what they could have been doing instead.
- 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.
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!
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.
(I'm not a freelancer, and have no opinions of my own about it.)
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".
On the other hand, small clients who paid $2k for something kept coming back with revision requests...
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.
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).
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.
but the lower the rate the more headache. the more arguments about billing. the more unpaid favors they try to pile on. the harder the deadlines. the more they insist that somehow they are being cheated. the more likely that their 'project' is really a random assemblage of half-finished stuff from prior developers they pissed off. the more likely they are going to 'pivot' and change the whole engagement or just disappear.
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'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.
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.
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
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.
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!)
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!!!
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.