|
||||
Advice for Consultants By Richard Rost ![]() ![]()
As far as my resume goes, I started providing contract Access developent work in 1994. I've been teaching Access since 1996 (first in the classroom, and now online). I started 599cd.com in 2002. And just this year (2021) I finally decided to stop taking consulting work and to focus 100% on making new videos. So that's 27 years as a consultant. I think I'm qualified to give advice. How Much To Bill Per HourI get asked this question all the time: "how much should I bill myself out for?" That's an enormously difficult question to answer. I've been a consultant since I started my first business in 1994 and I've always struggled with that myself. One factor to take into consideration is how much do you want to earn every year. Or you can reverse it to say how much did you earn last year. Let's say you earned $100,000 last year, or you want to earn that much next year. That's $2000 per week (assuming 50 weeks, you deserve a vacation). If you work a normal 40 hour week (ha ha, yeah right) that's $50 per hour. That's not a bad starting point to figure out your billable hourly rate. If you have steady work and you can bill that much, you'll know what to expect for your income. If you want to figure in a raise for next year, go right ahead. Don't forget, however, that for every "billable" hour, there's usually a lot of non-billable hours you have to put in. Customer service. Phone calls. Advertising. Email. Stuff you can't bill for. So I usually figure I'd double that amount. How Many Hours to BillThen comes the harder question: "how many hours will this project take to build?" That can only be answered through experience. Very rarely will you find a customer that's willing to just write a blank check and say "however long it takes, I don't care." They're going to want a figure up front, so you have to get good at figuring out how long it's going to take to build something. And there's no easy answer. I've built literally hundreds of projects and even I sometimes get it wrong. Without spending too much time up front planning out the database, you have to "ballpark" it in your head. Make a quick outline. Lay out your tables, forms, etc. but don't go crazy on the detail. At this point, it may or may not become a billable project, and you don't want to spend 3 hours preparing an outline for nothing. But, now that you know how many tables you need, how many forms you have to design, and (my least favorite part) how many printed reports you have to generate, then you can estimate X hours per table, form, report, etc. How Long to Tell The CustomerNow let's say you are going to charge the customer for 10 hours of "billable" work. Make sure they don't have the expectation that they're going to get it in 2 days. I always tell my customers that billable hours don't always translate to actual hours. I usually multiply my "time to completion" results by a factor of two or three. 10 hours of billable work usually takes 20 to 30 real hours, especially if I'm going into territory I've never been in before. If I'm building a database that I've done a million times, sure, it's usually about the same, but if it's new stuff, it could take longer. For those of you who are Star Trek fans, there was a Next Generation episode where Geordi and Scotty have a discussion about setting the captain's expectations:
Now I'm not saying that you should pad your estimates, or over-charge the customer for work you didn't do. BUT, you have to take into consideration that, pardon my french Jean-Luc, but "shit happens." You may run into things you don't know how to do and you have to do research. You may have to put out fires. I was working on a project for a customer just recently and my own database has a serious problem that took me 3 days to fix. Plus, you never know what issues may come up in your personal life. So be sure to set the customer's expectations up front. 10 hour project = give me a week. If they want it faster, it will cost more (see below on cost v. speed). Get It In WritingOnce you've said to the customer, "this is what it will cost, this is how long it will take me, and these are the features that will be in your database," make sure you get it in writing. Have them sign off on the outline. Let them know that you need to know up front exactly what they need the database to do. If they can, have them draw out any screens (forms) they want custom designed. Get printouts of any existing reports they use so you can use them as a guide for new reports. There is nothing worse than finishing a database, and you think it's perfect, and then the customer comes back with "oh, but it also needs to do this..." If you don't have it in writing, now it becomes "well, you didn't tell me that," "yeah I did." This way you've got a blueprint in writing that they signed off on and you can say, "I see that you want the database to do that, Mr. Customer, and I would be happy to ADD that feature. It will cost $X and 10 more days."
|
Consulting & Training RatesHere are the different types of consulting services and training that I offer. These are my standard hourly rates if you wish to be billed per-hour.
TechHelp is my "almost daily" video blog where I answer questions that are sent in by all kinds of people. Members do get priority. There is a long waiting list if you're not a member, but if you're not in a hurry, it's a great way to get your question answered for free, in a step-by-step video. If you are in a hurry, consider becoming a Member. Email Support is anything that I can do on my own time. Generally the way that it works is you email me your questions, requirements, details, etc. and I will get back to you with either a detailed email or even a custom video response. This is my preferred method of consulting, and it works well for most of my clients. Here's why. There are two kinds of Email Support:
Live Help involves a real-time interaction at a scheduled time. This can be a phone call, online chat, instant messenger conversation, Google Hangout, Remote Windows Assistance, a Zoom session, and so on. If it involves a live connection between us, then it's considered Live Help or Training. Again, I personally prefer email. Here's why. In-Person training or support involves me travelling to your location to provide consulting, training, or other support. You are, of course, responsible for my additional travel expenses (hotel, flight, rental car if needed, etc.) if you're outside of the Fort Myers, Florida area. These fees are negotiable based on the project, of course. I reserve the right to charge more for large group sessions. Please note that no discounts of any kind may be applied to support. Priority ServiceThe typical time for me to start your project is generally 3 to 5 business days, depending on the complexity of your request and how many other clients are in front of you. If you want priority service (you need help NOW and want me to bump other projects) then I will charge you for priority service which is double my normal hourly rate for the type of service you require. I don't like doing this, but if you're in a hurry and I have to put other clients off, then that's the deal. I will not bump other clients unless they're OK with waiting a little longer. Initial ConsultationTo get started, send me an email explaining your needs and what you would like me to help you with. Give me enough detail so that I understand what you need, but don't be too verbose. If it's going to take me half an hour to read through your question, then that's on the clock. Sorry. Be as concise as possible. I will tell you if your email is too long for a "free" initial consultation. Sending Me FilesIf you have a database, spreadsheet, web site, or other files you need help with and you need to send them to me, remove as much extraneous data from them as possible, ZIP them up, and email them to me. I will ONLY look at file submissions if they're for PAID support at my above hourly rate. Sorry, I just don't have the time to look at everyone's databases for free. There just aren't enough hours in the day. After you send your file click here to submit your payment. Even if I can't help you, the cost for me to download and look through your database is a minimum charge of one hour of service. Keep in mind that it's almost always faster, easier, and cheaper for me to show you how to build something from scratch than it is for me to figure out what you've built so far and to fix it or add to it. I hate trying to tear apart other people's databases to find bugs or fix things. I'd rather build you something that I know works right the first time. Plus, if I have to look at your Access database with VBA code in it that means I need to be able to run it from a Trusted Location for the code to work. That means I have to take some time to look through ALL of the code in your database to make sure there's nothing malicious in there. That doesn't mean I don't trust you. YOU might not even know it's in there if you're infected with a virus yourself. So... hence the minimum cost I charge to look at your files. It's almost always quicker and easier for you to explain to me what you want to do, and I can teach you how to do it. If you need to show me something, and you don't want to pay the troubleshooting charge, send me a screen shot. I can see what you're talking about without actually having to look at your database file, or charge you a fee! Taking On ProjectsAs you can imagine, I've got a lot on my plate. Between recording my courses, my TechHelp videos, handling customer service emails, and working on projects for clients, I've got little free time. If you want me to take on a custom project for you, and I think it's something that would make a good video to add to my site, then I'm happy to add it to my list. This list is always quite long, however, so I can't make any promises as to how soon I'll be able to get to it. If you're in a hurry and need it done quickly, then I'll have to take it on as a paid job. I can either give you a quote for the entire project, or charge you hourly, depending on the nature of the product and the amount of support you need. Jobs that I can turn into lessons for my other students will always cost YOU less up front. Let Me Build Your DatabaseIf you don't want to invest the time or money into learning how to build your own database, or if your database is horribly broken, it may be more cost effective to let me build it for you. I have over 30 years of experience building custom database solutions of all types. How much does a custom database project cost? That's hard to say. I can work with you on an hourly basis, or I can give you a quote for your entire project. If you'd prefer a project-based quote, start by making a list of ALL of the features that you want your database to have (customer management, contact tracking, phone call list, order entry, inventory management, accounts payable, etc.) and anything specific to your business. Then, I'll put together a quote based on your needs. I've built simple $200 starter template databases, and I've built $20,000 projects for clients. Again, it's completely dependent upon your needs. I prefer to take on projects that have "mass appeal" so that I can turn them into templates or seminars for other students. I'm more likely to accept a project like this than something that's specific to just your business. I'd rather sell something for $200 to 100 people than to have to charge you $20,000 for the same thing. Fixed Price v. HourlyWhile I am happy to give fixed price estimates for products that I build from scratch, any service that involves me working with a project that you have started will be billed strictly by the hour. I cannot gauge the condition that your database is in unless I get under the hood and tear it apart first, plus I'll have to take time to learn and figure out what you've done so far. I know how long it takes me to build certain types of databases. I've built hundreds, if not thousands, of them in my career. So if you say you need contact management, invoicing, and scheduling, I can give you an exact price, up front. If you want me to look at your database and fix or add things to it, that's strictly billed hourly. I can give you a range if you prefer, but I will always err on the high end, and I cannot be held liable if I'm in the middle of something and discover another problem with your database that I didn't see up front. It's kind of like when you take your car to the shop and say "it ain't workin' right." Well, they can't always tell what's wrong until they get under the hood - and then it could be something quick, or you may need a new engine. Request for ProposalsIf this is a job that's being sent out for bids and is going to the lowest bidder, please don't even bother asking me. I will never be the cheapest. I know there are developers in other countries who work for $5 / hour. I know there are young startup businesses that will promise the world. I'm on the other end of the spectrum. I don't accept every job, but the ones I do take get done right. I emphasize quality over everything, and remember the old saying "you get what you pay for." It's certainly true in the world of software development. The ONLY way that I will give you a low price on your project is if it's going to be something generic enough with mass appeal that I can turn into a lesson for one of my classes. Then you might get a really low price because I can resell it to other clients. But if this is a project that is specific to your business, I won't be the cheapest, but I will be the best. Service ContractsIf you would like to engage my services for a longer-term contract, or would like to pre-pay a block of hours, my rates are negotiable based on the type and duration of the project. Please contact me for details. Training & Speaking EngagementsIf you would like to hire me to teach or speak in front of your group, I do provide this service as well. Please contact me with additional information (location, topics, number of students, etc.) and I can provide you with a quote. I will travel outside the Fort Myers, Florida area. You are responsible for my travel, lodging, and consulting fee. A per diem can be discussed. Of course, right now during the COVID pandemic, I'm suspending any in-person meetings, but... Live Online TrainingI'm willing to provide LIVE virtual training for your personnel. A combination of video tutorials PLUS live sessions works great. Your people watch a lesson or two on their own time, and then we meet on a regular basis to review and ask questions. About a year ago I suffered an injury which left me blind in one eye and I get pretty bad random migraines, so I don't generally schedule ANY live sessions (even online) because I never know when I'm going to have to go lay down in a dark room on a moment's notice. That's why I've raised my rates on anything live. I can still do it if absolutely necessary, but it's difficult for me. I prefer to focus my efforts on recording my video lessons. I can record for a little while and take a break whenever I need to. Thank you for understanding. |
Here's a problem that comes up from time to time when dealing with customers as a database consultant. The client needs help with their database, that they built. They send you the file. You fix it. You charge them. Everyone is happy. A few days go by. They say the database isn't working right. Something's wrong. Maybe a calculation isn't correct or they're getting weird errors. You check it out on the copy of the database YOU have. Everything is fine. What gives? Did the client break something tinkering around with the database? They may have.
The "Computer Repair Hourly Rate" image to the right is equally valid for consulting and software design. LOL.
In this scenario, the client expects you to fix the database even though the problem likely was caused by them messing around with... er... I mean "working on" the database design. I've run into this situation before, MANY times. Here is how you politely handle that situation.
First, explain to the client that if they want a bullet-proof database that you will 100% support for any future design problems or errors, then you are giving them an ACCDE (encrypted and locked) file. They will not be able to make any future updates to it, but you will warranty the work. Some clients will be cool with that because they don't plan on making modifications, and they want you to do any followup work they may need. Great. You can tell them that they can have a copy of the ACCDB. It's still their database. But if there are any problems, you're just going to restore the original ACCDE file.
If they insist on getting the ACCDB because THEY want to continue modifying the database, you need to REFUSE to fix any problems OR explain to them that they will be "on the clock" for any future work, even if it's something related to a piece of the database you just worked on. Keep a backup copy of the last copy of the ACCDB that you sent them. If they complain "so and so form isn't working," then check it in your copy. If it works for you tell them to restore that form YOU built. If they do and it still doesn't work, tell them that you'll work on their copy of the database again, but they're paying for that time.
The obvious exception is if you do find a bug. If the problem was an error in your original work that didn't show up until the client started using it, then yeah, you should fix it. That may happen sometimes. Everything works OK for you in your office and then once they start using it in a real production environment, the bug surfaces. Try to recreate the bug in your copy. If it's YOUR fault, then fine, you fix it. But 9 times out of 10, in my experience, it's because the client broke something.
Over the years, most of my clients were wonderful. They took my advice. They let me make changes they needed. They paid on time. But... you will, every now and then, get that pain-in-the-ass customer who thinks they know more about Access than you do. They'll want to make changes to the database themselves and then expect free help when they break stuff. Don't let them eat up your time for free.
If they want free support, ask them what they do for a living. Oh, you're a plumber? Do you go to your customer's houses and fix their toilets for free? I didn't think so. This is what I do for a living. I work on Access databases. If you have a problem, I'll fix it. You pay me. That's how it works.
Sure, it's nice to throw a GOOD client a bone once in a while. They just spent $10,000 having you build them a database. They're happy with it, but they want a few little changes. OK, sure. No problem at all. Oops... the server went down and their database got corrupted? OK, fine, I'll come over and compact/repair and get it back up and running for free (this time). No big deal. But avoid those customers who keep wanting to take your time and not compensate you for it. That's the major reason why I stopped taking phone calls unless the client was PAYING for the time. They just want to pick your brains for free, or waste time with chit chat. Don't fall for it.
I just finished putting together a video on Access Jobs and consulting work. Check it out.
This comes from an email that I sent to one of my admin/moderators, Scott:
You know one of the best lessons I learned from teaching was that it's OK to admit you don't know something. Back when I started my training career (in the classroom, in the dark ages of the 90s) if someone asked me a question and I didn't know the answer, I would do my best to come up with something so that I looked like "the expert." You know the old saying: "fake it 'til you make it." I was new at the business, in my 20s, and didn't know any better.
Sometimes, looking back, the answers I gave were complete bullshit, but they sounded good at the time, and nobody ever called me out on it. These were the days before everyone had Google in their pocket, and they came to me because they didn't know what they were doing and just assumed I was a person of authority on the subject, whether it was Access, Excel, Word, etc.
Almost 30 years later now, I realize it's better to just admin, "I don't know." I refuse to just make something up. If I don't know the answer, and I don't feel like Googling it to learn myself, I just flat-out tell them. Sorry. That's kind of how I approach life in general. If I don't have a definitive, scientific answer for something, I refuse to just make something up or believe something someone else tells me. Prove it. Where's the Beef? There's nothing wrong with the phrase, "I don't know." It's the first step towards wisdom.
Plus, another benefit of having 30 years of experience with Access is that if I don't know it, chances are either (a) it's really not something that comes up on a regular basis, because I've pretty much seen it all by this point, (b) it's brand new - perhaps a feature I haven't seen yet, which is rare, or (c) probably only a few other people on the planet know the answer. So...
If I don't learn something new every day, I'm surprised. Just take each day as it comes, and you'll be OK. Don't sweat the small stuff, and it's all small stuff. Life is too short to worry about little things.
I honestly really value the way you approach most of the students. Some people just want you to give them the answer. Which is OK... But you're doing the student a disservice if you don't help them figure it out for themselves. I like to see people struggle a little with the answer. That's how you learn!
If everything is handed to you on a silver platter, you don't learn. You don't grow. No pain, no gain. The best learning experience is when you struggle with something for hours, pull your hair out, try multiple approaches, and then finally figure it out for yourself. It's like spoiled rich kids who never had to work in their lives and just got handed everything from mommy and daddy. They don't learn a work ethic. They expect everything in life to just be given to them.
Learning is the same way. The point of my lessons is to show you what's possible, then you go off and explore on your own. Take the Lego pieces and assemble them your way. Something doesn't fit? Rearrange and try again.
Sometimes understanding the client's needs are more difficult that learning Access. I remember one of the first "real" clients I had was an insurance agent. I was in my early 20s. I knew programming and Access, but I knew absolutely nothing about the insurance business... premiums, rates, etc. So he had to take the time to teach me exactly how everything worked and was calculated. So if you're going to be an independent consultant, always take that into consideration. Learning the client's business can sometimes take longer than building their database.
A little while back, I received an email from a good friend of mine, John, who said he had received an email from a potential customer about having a database built. John said:
I could likely work out something that would meet her needs. I asked a few questions about the project and what the reporting needs are. She never responded! I sent another email and again- she never responded. Such a waste of my time! How would you handle this? Should I impose a minimum fee to do a quote? I would appreciate your thoughts.
My initial thought is: get used to it. People love to kick tires. In fact, when I first started selling computer hardware and service, I would get companies that would ask me to come out for an intial consultation, which I did for free at that time because I was young and hungry. They would pick my brain for an hour. I would provide them with a detailed invoice of everything they needed. Then they would go buy the hardware somewhere cheaper.
This happened a lot. In fact, I got to the point where I'd tell people, "look, if you have a place you'd like to buy the hardware from, I'll just come in and set everything up and teach you how to use it." So my business pivoted from hardware sales to service and training.
But... it doesn't matter whether you're selling computers, software, service, toasters, or bull semen. Well, I guess bull semen is a different matter, but I digress. Anyhow, you need to put a value on your time. Now, when you're young and hungry, like I was in the early 90s (yes, I'm old), then your time isn't worth as much. The older you get, the more experience you have, the less you "need" the work, the more valuable your time becomes. Price it accordingly.
In my case, what I started doing was to charge an initial consultation fee. At first it was just a token about, like $25 or something small. But after a while, I charged more. Eventually it was $100 for a 30 minute consultation, but I would put that $100 towards your initial order within 30 days. That worked great for me. It kept away the tire kickers, but people who were serious about using my services weren't at all dissuaded. Plus I looked at it as doing work for them, and I provided a serious, "no-joke" consultation, and an outline of everything they'd need.
Now, when it comes to building a database, the same rules apply. Just like I said in my paragraph above:
To get started, send me an email explaining your needs and what you would like me to help you with. Give me enough detail so that I understand what you need, but don't be too verbose. If it's going to take me half an hour to read through your question, then that's on the clock. Sorry. Be as concise as possible. I will tell you if your email is too long for a "free" initial consultation.
So before you waste your time spending an hour going back and forth with emails, or putting together a 32-page proposal for a project, know how much you're willing to give them for free. For me, if I couldn't read through someone's email in 10 minutes, I'd tell them so. Don't feel awkward to charge for an initial consultation. Your time has value. How much to charge is up to you.
I used to get a rough idea of what they wanted done first. If it was something easy and simple that I knew I could knock out in a day or two, I'd give them a ballpark figure, but tell them it was just a rough guesstimate. This is fine for small projects, maybe $500 to $1000 worth. If it was a more complex project that I knew would be in the thousands of dollars or weeks worth of work, then I would be up front with them. "My initial estimate is about $5,000 for this project, and three weeks of development time. However, in order to give you an exact quote, I'll need to prepare a detailed proposal, outline, and contract for you. I charge a non-refundable $100 fee for that, but the fee goes towards your project." Again, the dollar amounts are completely up to you. If they're serious, they won't balk at it.
Also, don't chase people. If you send them a quote and a followup email, and they don't get back to you in a week or two. Delete. Move on. Maybe a third followup a couple of weeks later. Remember, though, that sometimes life gets in the way. I once got really upset with a customer because I spent a lot of time putting together a proposal for him. He seemed really interested. We went back and forth on details for a week or two. We were just getting to the point of closing the sale, and he stopped answering my emails, and calls would just go to voicemail. I sent him a nasty email accusing him of wasting my time. A few weeks after that, I got a call from his wife. The guy passed away suddenly. I felt like a jerk. So, remember... they might not be intentionally ignoring you. Something may have come up. Just move on. Followup a couple of times, then let it go. Peacefully and professionally.
So, John, I hope this helps to answer your question. And thanks again for the lobster and Sam Adams. Hope to have lunch again with you soon. :)
Here are some questions people have asked me related to the topics above.
Q: It seems that many people including myself do not know the real potential and capabilities of MS Access. If I master Access, Excel and SQL server and integrate them together. Can I make a good living? Or at some point I will be stuck and must go forward to C# and ASP.NET? -Mohamed
A: I've made a career out of Access, Excel, SQL Server, and VBA. It all depends on what you want to do. If you want to be an independent consultant, find your own work, set your own schedule, and build databases, then Access is the way to go. There are always small businesses looking to have custom databases built. I turn down dozens of projects a month.
On the other hand, if you want to get a corporate job with some big company, then C# or one of the new, hot technologies might be more for you. They seem to want those skills (and Certifications), and they frown upon Access as "not a serious database," which couldn't be further from the truth. SQL Server and SQL Language skills will always come in handy, in both camps. But as long as you have that entrepreneurial drive, you can always find consulting work.
Do you want a 9-to-5 with a paycheck, or do you want to be your own boss, make your own schedule, and build your own business. I chose the latter. And if you can't find development work, people are always looking for training too. I spent many years in the classroom teaching Word, Excel, Access, etc. Just don't do video tutorials on YouTube. That's my gig. LOL. No, seriously, there's plenty of business out there for everyone.
Q: Hey Rick, just kind of curious when you were doing consulting how you handled them? I have like 6 of them stacked up again from new people and people coming back. Do you try to work on them simultaneously or do you think it's easier to just focus everything on one of them and then move to the next? I'm trying to do a little bit of all of them at once and it feels chaotic, maybe I should just do them one at a time and tell them to make a waiting line. Curious how you did it before. -AdamA: It's almost impossible to finish one customer and then move on to the next project, because that customer is going to have questions, want changes, etc. So you have to perform a sort of juggling act. And yes, it's chaotic at times. The life of a consultant isn't always glamorous.
I would at least not try to have more than one active project in development at a given time. There's usually three phases of a project: (1) consultation phase, (2) in development, (3) followup work. The first is where you're still going back and nailing down the specifics of the project, getting to know what the customer wants and needs, and negotiating price. Once that's all agreed upon, you now start building it (in development). Once that's done - the bulk of the work is completed - then I would move the next project in the consultation phase queue up to development.You may have several projects in consultation, and several in followup, but try to only have one maybe two projects that you're actively working on. Scheduling is key. Knowing your limitations is important. I would often look at a new project and be like "no problem, I could bang that out in a weekend." Yeah... you probably could. If that's all you did for that weekend. Don't forget everything else... emails, other clients, LIFE, etc.
Just remember what Scotty says... always overestimate your development time by a factor of three.
| |||