Ask HN: Mistakes working with small local clients?

107 points | by psikomanjak 7 days ago


  • Stronico 7 days ago
    I've done a fair amount of that - some mistakes I've made -

    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

    • alex_c 7 days ago
      Spot on. Only thing I would add is

      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.

      • eatonphil 7 days ago
        I didn't understand your point 12 at first but I think you mean that you should always write down in the invoice what you did for free so that the client is always in the loop about all the work you do (whether you bill for it or not). That makes a ton of sense. Easy for humble people to not think of. Better to keep everything in the open.
        • taxcoder 7 days ago
          You can do twice as much work as you bill for, but if you don't somehow show the client it's all for nothing. You get no goodwill, which is typically what businesses are looking for when they do free work. I try to always show any extra work done and what it would have cost on the invoice.
          • ksdale 7 days ago
            I'm not the parent poster, but I have always found that, to an extent, the more detail you put on the invoice, the better. There are some people who seem absolutely compelled to say "but you only did x" if they only see one thing on the invoice, no matter how involved that one thing is. Next piece of advice is to fire anyone who questions the price (at least more than once maybe...)
            • DarylZero 7 days ago
              Put what you did with a price attached. On a separate line put a discount for that much money (with reason for discount if you want). So instead of "what you did for free" it's quantified $X discount.
              • ethbr0 7 days ago
                Which is another way of saying "Don't do anything for free" or "There's a big difference between $1 and $0."

                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.

                • DarylZero 6 days ago
                  You're still doing it for free. But at least it's properly accounted for.
              • alex_c 7 days ago
                Yeah, it's about setting and managing expectations. Small favours can help build relationships, discounts can help close a deal, and so on. Less relevant for larger clients, but may be necessary when working with smaller clients.

                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.

                • tedmcory77 7 days ago
                  Yes, you don't negotiate from a discount. By putting this on there you're showing that they are already getting a discount; when they ask for more you'll be able to highlight the stuff you've already done for free.
                • josefresco 7 days ago
                  > Invoice frequently, on schedule, like clockwork. Drop anyone who doesn't pay on time.

                  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!

                  • alex_c 7 days ago
                    I will admit it took me an embarrassingly long time to learn this lesson and become disciplined enough to do it.

                    But it really is better for everyone involved, clients don't like late or unpredictable invoices either!

                    • josefresco 7 days ago
                      Detaching emotion from billing is important. Sometimes I would hesitate to bill because of a recent bug or miscommunication. Hug error on my part. Everyone gets billed every month no matter that status of your project. I also will bill some clients EARLY if I'm concerned, they won't pay or will balk.
                • SavantIdiot 7 days ago
                  Let's say I write some JS widgets and want to reuse them on multiple sites. What kind of license do you recommend? It's not open source, but is there a good boilerplate for this kind of thing? Or a question-tree like GitHub's pick an open source license, but for non-open source?
                  • 1123581321 7 days ago
                    Don't mess with licenses. Just keep the copyright with the code in the project. They have your permission to use the widget (implied license, basically), so they're in the clear, but they won't be able to distribute it beyond what you've allowed, legally.
                    • hogrider 7 days ago
                      Not an expert, but going back to basics you only license things you own. So if they will retain the IP you don't license anything.
                    • Pretty much all of this.
                    • Everything about working with small local clients is a mistake. I'm sorry, but it is. If you must, be very clear about what done means. Be very clear about who is responsible for maintenance after your job is done. If you don't, you will still get calls 8 years later to update the prices on the website, etc. Invoice absolutely everything. If you feel like a client is trying to get away with something, use an invoice to clarify that they can do so at X cost. I once billed someone $30,000 for an website update. I didn't get paid, but I never heard from them again. And by all means, don't work where you live. Ditto re: family/friend/friend of friends. Just don't. No money here. I dunno, just everything about this clientele screams avoid to me, especially their near complete inability to understand how much education goes into being able to do the sorts of things we can do with software, and therefore unable to understand why it costs so much or why they should pay even a 10th of it. Trying to pull money out of a small business is often tantamount to teeth-pulling, and a very large majority of small business owners work for themselves because no one wants anything to do with them, so choose who you work for very carefully. Sorry to spook you. Can you tell I've enjoyed my time in this space?
                      • vector_spaces 7 days ago
                        There are very intelligent people out there who aren't software engineers or who don't work for Fortune 500s. The logistical challenges that go into operating a small e.g. grocery store probably vastly outweigh whatever a typical FAANG or YC startup engineer has to contend with.

                        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.

                        • MattGaiser 7 days ago
                          Eh, unless it is a niche grocery store, every actually independent grocery store I have visited has had limited selection and mouldy fruit.

                          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.

                          • 908B64B197 7 days ago
                            > The logistical challenges that go into operating a small e.g. grocery store probably vastly outweigh whatever a typical FAANG or YC startup engineer has to contend with.

                            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.

                          • radu_floricica 6 days ago
                            It all probably boils down to you being of less value to smaller clients than to larger ones. Software and web are a force multiplier. They don't produce value on their own, they just increase what's already there. If a new, better website can get the client a 20% better conversion rate, or if a new software will decrease their costs by 5% - that can be dramatically different in CorpX and in Ma&Pa.

                            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.

                            • scrozier 7 days ago
                              I have spent a good deal of my career trying to figure this out. I love small businesses and not-for-profits (not to muddy the waters, but they pose similar challenges). I've reached the same conclusion as you. To a small business, every dollar is critical, so they are compelled to micromanage. Many small business owners are very smart, but not well educated, so they tend to lack some perspective and try to substitute their "street smarts," which doesn't work very well with technical/creative work. As much as I'd love to serve this market, I've never figured it out.
                              • mgkimsal 6 days ago
                                > To a small business, every dollar is critical, so they are compelled to micromanage.

                                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.

                                • scrozier 6 days ago
                                  Absolutely. I was talking about what would probably be called "very small businesses," in which I was almost always working directly with the owner. Probably in the range of 5-50 employees. 300bps has an interesting take on the size issue, elsewhere in the comments.
                              • disease 7 days ago
                                I've sometimes wondered why so many restaurants (even some chains) don't have any kind of online presence outside of a crappy HTML 'poster' that tells the world they exist. No delivery. No online orders. Seems like a missed opportunity.

                                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.

                                • MattGaiser 7 days ago
                                  The restaurant industry has a scary number of people who just toss their retirement savings into it and treat it as a retirement hobby. Then they get slowly bled dry.
                                  • josefresco 7 days ago
                                    There are web firms that work solely with restaurants. I've lost a couple clients to them. The come in with a slick sales pitch, and sell restaurant owners on the idea that "their menu will be everywhere!". This particular example actually builds decent websites, but what sold my (former) client on it was their tech surrounding menu distribution. Where do these menus appear? No clue.
                                    • datavirtue 6 days ago
                                      Yes, small businesses have been left behind. Almost completely abandoned by tech. The only progress has been those shitty web based payment terminals with scant support for inventory and e-commerce.
                                    • jpm_sd 7 days ago
                                      Yeah this is why small businesses have all ended up on Facebook and, to a lesser extent, Squarespace. Big players providing a consistent service with a simple interface is going to win every time.
                                      • josefresco 7 days ago
                                        The "fabled" small biz move to Facebook happened 4-5 years ago and has since shift back. During that time, I'd hear warnings (much to my enjoyment) that my job would be in jeopardy. Things are shifting back now, hard. I've had clients stop posting to social media, and instead are reinvesting in their website, which they control 100%. The social media shine has warn off for small biz - it's just another marketing channel and one you don't control.
                                    • tlogan 7 days ago
                                      This is very much spot on.

                                      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.

                                    • mathattack 7 days ago
                                      There is a lot to be said about small clients being disproportionately less lucrative than large ones. (Large ones are used to higher rates and additional pay for scope changes)

                                      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.

                                      • tommiegannert 7 days ago
                                        4.5 sounds similar to just having a high minimum billing period. Over on Reddit, I heard of people using one day as the smallest billing period. To avoid all the small requests.

                                        (I'm not a freelancer, and have no opinions of my own about it.)

                                        • mathattack 6 days ago
                                          It’s also recognizing the benefit of months of steady work versus a day here or there.
                                      • gwbrooks 7 days ago
                                        Meta-mistake that covers most small clients: Don't do business with people who are writing you a check out of their own pocket. Prospects that have a professional manager and a budget are a lot less hassle than Ed and Enid, who have to buy cheaper hamburger this month if they pay your invoice.

                                        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.

                                        • josefresco 7 days ago
                                          I was a partner at a local web agency for 7 years. I have been running my own agency for 15 years. I've worked with hundreds of small local clients. I've launched hundreds of websites, small software projects as well as worked with these clients on marketing etc. I will be doing this for at least another 5 years. I'm successful, but I'm not rich. I work with my wife (who probably represents 65% of our revenue - she rocks), I've had employees in the past but currently don't and don't want them.

                                          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!!!

                                          • quickthrower2 6 days ago
                                            9 is a weird one. That person could have sent you good clients for a commission or a return favour and ended up much better off than burning bridges like that. Unless they really thought they were sending you nice clients!
                                            • josefresco 6 days ago
                                              I think for him, "retiring" meant shedding work he didn't like, while retaining the work that was easy/lucrative. He actually has another full time job right now! Maybe this advice was too specific (it's happened only twice)
                                          • CaptainJustin 7 days ago
                                            The following is my opinion. Others may have a different take on these ideas.

                                            - 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.

                                            • h2odragon 7 days ago
                                              Be clear about the licenses / ownership of code you develop; a small business might not care but they still should. If you're developing their code do it hourly or by contract; if you're licensing them an instance of your code then you can invest more in it if you feel it worthwhile.

                                              No one is small enough not to need written terms.

                                              • honkycat 7 days ago
                                                When I opened a consulting firm, the biggest mistakes we made were always about saying yes instead of no:

                                                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.

                                                • runako 7 days ago
                                                  In addition to the excellent points made by others, I would add:

                                                  1. Not using a real contract. Get something like 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.

                                                  • 300bps 7 days ago
                                                    Many years ago I was a self-employed consultant that did work for a lot of small/medium sized clients.

                                                    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".

                                                    • newaccount74 7 days ago
                                                      I once did some consulting work for a funded startup, for me it was the biggest contract I ever had (about $20k) and the project didn't really work out, but they didn't care and just paid my invoice. It was so nice to be treated like a professional.

                                                      On the other hand, small clients who paid $2k for something kept coming back with revision requests...

                                                      • geocrasher 7 days ago
                                                        This is so true!
                                                      • eappleby 7 days ago
                                                        Bite your tongue. I have worked with a fair amount of small websites and they can be the most demanding of your time, so it is important to set expectations and boundries, but even when they ask questions or make requests that seem unnecessary, I'd recommend that you do not be flippant or condescending in your replies. When I was first starting my business, I did this one time with a very small client and it led to a small wave of cancellation from other, bigger clients.
                                                        • Karawebnetwork 7 days ago
                                                          Soft skills are more important than technical skills. Set the tone of the relationship from the beginning. Don't let the client gradually become your boss; chances are they are used to being in a leadership position and you are used to being an employee. This can quickly fester and have a negative effect on the outcome of your project.
                                                          • nicbou 7 days ago
                                                            I did this in college. It was one of my favourite jobs. I learned a lot about business during that time.

                                                            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.

                                                            • convolvatron 7 days ago
                                                              #1 really resonates. I really actually like of like working for a less ludicrous rate and doing real work for real people and adding clear value.

                                                              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.

                                                              • scrozier 7 days ago
                                                                Your point about learning about business is spot on. I feel like I got an MBA in entrepreneurship early on, by doing this kind of work. That said, it's a very rough way to make a living.
                                                              • jonathan_m 3 days ago
                                                                I have operated a web business for 6 years now, and a few clients of my company could be considered "small local clients". If you enter into an agreement to do work for these types of clients, you have to understand that they're likely to see it through the lens of a long-term relationship regardless of if you see it that way. They WILL call you post-launch for help, they will be reaching out to you for months and years to come to help them out with various tasks related to their site.

                                                                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).

                                                                • willnz 3 days ago
                                                                  Is the monthly support agreement tied to an hourly rate? e.g. 25 hours of prepaid support each month?
                                                                  • jonathan_m 3 days ago
                                                                    Most of the agreements are pre-paid 6 hours of time a month @ $125/hr. Some clients have more.
                                                                • Arcanum-XIII 7 days ago
                                                                  1. Don't let the customer decide the deadline. 2. Don't accept to work for a fixed fee on code you don't own. It's per day or per week... and no promise. 3. Don't answer the customer outside your open office hour. Put some strict limits about your availability. 4. Rise your fee. As others already wrote here, the smaller the customer, the higher they will feel entitled about your work. 5. Have a written contract. Don't accept close you don't like because "we never use them". 6. Be annoying about the description of the job, and the definition of done.
                                                                  • jrs235 6 days ago
                                                                    *seems you meant 'close' to be '[contract] clauses'
                                                                  • kazz 7 days ago
                                                                    Lot of good points already, but one that I've learned the hard way is never take on a "family" business as a client. You know the type of company where one brother is the CEO, another brother is the marketing director, random husbands and wives work for the company, etc.

                                                                    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.

                                                                    • josefresco 7 days ago
                                                                      45% of my clients are family businesses. That's a huge segment of the market to ignore (at your own peril). Family businesses can be great because they can be honest with each other, and move quickly. They can also be insane, but so can normal clients. I've worked with over a hundred family owned, multi-generational businesses.
                                                                      • geocrasher 7 days ago
                                                                        +1 to this. The worst ever. I worked as a W2 employee for a company like this and it was the most chaotic 5 months of my career.
                                                                      • chaircher 7 days ago
                                                                        Be in tune with your local community. I get wind of problem clients AND problem partners or suppliers long before we're even on each others' radar.

                                                                        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

                                                                        • eatonphil 7 days ago
                                                                          I did this for a bit and gave up. While you have a lot of freedom doing this it's just really risky working with small local companies. They are highly sensitive to price. In contrast one of the easiest/chillest ways to contract is to do by-the-hour for small software companies. They are not as sensitive to price because almost any rate you charge them under some amoung (say $150/hr doing 20-30 hours/week) is less than they'd pay for an experienced salaried dev when you include healthcare and all other costs for fulltime employees. And they can drop you whenever and vice versa.

                                                                          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).

                                                                          • geocrasher 7 days ago
                                                                            I did web design and hosting for several in the early 2000's back in the web 1.0 days. Don't wait on the customer to meet deadlines. I'd ask the customer to give me something for their 'about us' page, and it would never happen. So I just started writing them myself. It worked out much better.

                                                                            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: <-- truth.

                                                                            • TheSpiciestDev 7 days ago
                                                                              Note: my income has never been dependent on local/small clients (small being <10 employees) such work has always been "extra income" for me or to build relationships with others.

                                                                              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!)

                                                                              • xupybd 7 days ago
                                                                                For small internal tools make sure you understand the business domain. Learn as much as you can about the process you're writing software for. Prioritize error handling over looks.

                                                                                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.

                                                                                • JSeymourATL 7 days ago
                                                                                  Missed opportunity: Not leveraging the work into repeatable, predictable revenue.

                                                                                  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.

                                                                                  • The "working with small local clients at all is the mistake" part is already well-covered, so I'll add a secondary rule:

                                                                                    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.

                                                                                    • subpixel 6 days ago
                                                                                      The mistake is to work for a small client instead of talking to dozens and building something that suits their needs that can also be sold to thousands via a platform or theme marketplace.

                                                                                      Build not a feature that does the same thing for one or two clients.

                                                                                      • spaetzleesser 7 days ago
                                                                                        My biggest mistake: Doing things for free as a favor because you are reluctant to charge . Even if it feels weird always get paid for your work. Your local plumber or lawyer also don't do things for free. You are running a business and not a friendship.
                                                                                        • zerkten 7 days ago
                                                                                          The other posts so far cover all the immediate mistakes I've seen first hand. If you can use new tech on these jobs it'll also keep your skills up. If you are banging out similar things with the same tech it can be stagnating.

                                                                                          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!

                                                                                          • alserio 7 days ago
                                                                                            The effort required for the maintenance of many small projects is way more than that required for a big project with the same total cost. Customization of a product doesn't scale very well with time
                                                                                            • Overtonwindow 7 days ago
                                                                                              Very early in my career, I found working with local clients can be vastly improved by having a detailed scope of work, milestones, expectations, and budget. Never enough detail. I found being local to clients creates a relationship very different from distant clients, and anything you can do to build trust, transparency, etc. ahead of the work, the better. The more detailed my scope of work, the less scope creep I had.
                                                                                              • rossdavidh 7 days ago
                                                                                                1. pay as you go (much more likely than a larger client to actually not have the money even though they thought they would, or to go out of business entirely with little notice) 2. they don't have as much experience with how tech projects go, so you need to manage expectations more
                                                                                                • micromacrofoot 7 days ago
                                                                                                  Never ever do anything for free. Ever. Once you open that door you are screwed.
                                                                                                  • is_true 6 days ago
                                                                                                    I work with small local news orgs and I made the classic mistake of trying to please everyone, when it known that you should know your limits when providing custom features
                                                                                                    • darau1 7 days ago
                                                                                                      "If it isn't in writing, it wasn't said". This is true no matter the size of the client. This is even part of an internal MOU at my current employer lol
                                                                                                      • xtiansimon 7 days ago
                                                                                                        Treat customers like their time is valuable—keep it short and sweet and to the point. Many small businesses owners are very busy.