Consulting Lessons
Thursday, March 26, 2009 at 2:22AM Do you do consulting to augment your income? Do you have a sideline project that has nothing to do with your day job? Are you working on a project that's interesting and that you think deserves extra effort on your part because you think your client/customer will be understanding and will be accommodating to your situation? Stop. Think. Then think again. Maybe you're working on a project that seems to be demanding more time than you can give and suddenly the rewards of working on the project at some point seems to be diminishing my the day. Maybe your client is asking you to try and beat a deadline that he set for himself and didn't consider how your availability might be like as the project goes? Stop. Think. Then think again. If this sounds familiar, maybe you'd like to learn with me.
Background
So for a while now I've been working part time on a really interesting and challenging project with a client that's based in the US. I'm in the Philippines and for the first month of the project I thought I'd be able to learn a lot of things while solving specific issues with specific technologies (which I wouldn't mention). It was a different challenge for me since I'm not used to doing this specific kind of work and that I wasn't used to working with semi-technical people.
My client was a non-full-time-programmer. This was already something that should have raised the flags. But he was used to working with technology and I thought I might be able to work through things on my own anyway.
The project involved many moving parts, some of which I was going to work with for the first time. This is also something that should have raised more flags. I was thinking that I might be able to do it alone but at the time of agreeing to work on the project I was concentrating on the learning and the challenge.
Lesson 1: Scope is Everything
If you don't set the scope as a consultant and let the client define the scope of work for you, you're already in deep water. Agreeing to a client's expectation only makes sense if there's an upside for you. Agreeing to a scope that's not set by you as the solutions provider already makes the business proposition a little more risky than usual. Of course, if you agree with the defined scope this should not apply.
When I talk about scope, that doesn't just include what kind of work you'll be doing but rather the extent or duration within which you're going to be doing the work. That means how long the project will take, how many hours you'll spend on a specific feature/task is considered as scope. If you think something may take you more than 24 hours to do and your client insists on just 12, then you may very well have to either: do a crappy job at it and bill just the 12 hours or try your best to make it in 12 then negotiate an extension to get 24 hours. Again, do not let the client dictate the terms of the scope unless you want to feel the pain.
Lesson 2: Your Rate is Non-Negotiable
If your prospective client cannot pay for the rate you have proposed, you don't negotiate the rate, you instead negotiate the scope. If you're decided that your hour is worth $XX, you don't negotiate that rate but you rather negotiate the number of hours and the kind of work the prospective client is going to expect from you. If you do a good job in the first deliverable, then the rate should justify itself. Lowering your rate for a prospective client only makes sense if:
- Your rate is unjustly high. For instance, it's your first project and you don't have the reputation or experience to back your rate up for the given scope, then maybe you should rethink your rate. But don't do it if your client is asking for a lower rate "just because he can".
- The prospective client is not within the same scale as your other clients. For example, if you're just there to give advice instead of write code or actually do something, then maybe you can think about a lower rate for that kind of service. Ultimately you can adjust your rate for the client if you think the upside of doing it initially allows you to go to the normal rate in the future with the same client.
- Once you offer your rate, you stick to it. If you feel like you've done enough projects and would like to move your rate up, you stick with the rate -- unless nobody can afford it. Ultimately, determining your rate should be up to you and how you see the market, rather than what your client thinks is the correct rate. Remember, you're offering the service and you set the price.
I've been burnt by this one since I thought I can lower my rate to get the project rather than offering rate I think my services are worth. I should have learned Lesson 1 and negotiated the scope rather than lower my rate.
Lesson 3: Be Realistic
Realistic doesn't mean pessimistic, and pragmatic doesn't mean clever. Assuming you have a day job, think long and hard to determine whether:
- You can actually work on the project at your own time. If you're like me working with a dynamic team and a very demanding product, you might not have the time to actually put in even just 4 hours a day on a side project.
- The kind of work will keep you interested for longer than one hour every day. If it's something routine and boring (or something that becomes boring for you) then I don't recommend you go into the project. The last thing you want to be is trying to find motivation to work on something you have come to find as routine.
- What you'll be working on is worth the time and effort. Unless you find the work you're going to do is worth the time and effort, you should not do it. Interesting doesn't cut it, and if you don't see the point in working on the project, you shouldn't do it. If you can't treat the project as a personal project, then you'll more likely fail than succeed.
If you're doing consulting for a while already and have multiple clients lined up, the above three things are a good filter for you to determine whether you should take on some projects or reject them. Taking on less projects may allow you to up your rate, delineate the scope of the projects better, and then be part of projects that you feel are worth your talents/skills. Nothing feels worse than trying to find the will to actually finish a project once your interest has waned and you're wishing to just get over the project.
Lesson 4: Keep Learning
As a consultant, your main job is to know what you're doing so that you can help others do what they need to do better. Sometimes this involves actually doing the work, but more often than not it's about empowering your client to do theirs. Maybe you're offering a service that your client needs (like writing software) that they don't necessarily want to do on their own (or can't), you owe it to your clients and yourself to keep learning about the things that may or may not help them do what they do better. That means learning never stops even if people ask you the questions and you supposedly have the answers.
Given the lessons above, I certainly hope this help you in your consulting efforts. I certainly learned them (the hard way) and I hope they help those looking to do consulting too. Do you know any more tips about consulting you'd like to share? I'd love to hear them -- post a comment or send me an email.


Reader Comments (2)
Hi Dean
Very good post. In addition, consultant should know his or her limits - what he can and can not do given the timeframe and scope. You just can't say yes or no to everything but knowing when to say NO when negotiating is also a good skill to have. Knowing your limits also opens up the possibility of outsourcing some of the stuff that you can't do but other people can, hence, you build relationships with people and it shows your initiative and willingness to really help the client achieve their goals.
Just because you're a consultant doesn't mean you only do the work yourself. You can still get jobs that you can't do and outsource it to other people.
Oh, I forgot to put that explicitly. Yes, saying 'no' or at least 'no deal' is a good skill to master especially if you think it's beyond you. Thanks for adding to the list Jan!