
Ask HN:  What if I suck at consulting? - phamilton
I'm a undergrad always looking to earn some extra money on the side.  I often come across potential consulting jobs, but they usually are outside the scope of things I've done before.  My question (and fear) is this:<p>What happens if I deliver a crappy product?<p>I understand I miss out on future work with said client.  Beyond that, what are the consequences?<p>There may not be very big consequences.  New clients = new start.  Over time I figure it out.  Yet I still feel like it's a risk to take on a project that I might not be able to handle.  I like to take pride in my work.  What are some experiences you've had with delivering a half-baked product?
======
swombat
The main consequences are if that most of your new work will probably come
from references through past clients, so if you regularly screw up, you
probably won't be able to generate as much work.

However, I think you're asking the wrong question. Don't ask "What happens if
I deliver a crappy product?"

Instead, ask "How can I make absolutely certain that I will deliver a product
that the client is pleased about?"

You won't get it right all the time, especially not at the beginning, but
you'll find that in general that's most to do with your ability to manage
client expectations than with your coding skills, so don't worry about
delivering a crappy product - instead worry about managing client expectations
so they're never negatively surprised by what you deliver.

~~~
sliverstorm
> worry about managing client expectations so they're never negatively
> surprised by what you deliver.

In short (to be blunt): Don't promise what you can't deliver.

~~~
swombat
Well, it's more subtle than that. Even if you never over-promise, your client
could still get the wrong idea. The hard work in consulting often not in
actually doing the work, but in finding the leads, turning them into clients,
and then managing the process so that the client ends up happy at the end of
it.

------
dotBen
You have to find the middle ground between only doing stuff you are absolutely
sure you can deliver excellently because you've already done that kind of work
before (which for all of us is always going to be small) vs taking stupid wild
risks with technologies and areas you are not familiar with.

Also, there will always be risk that you will deliver a crappy product because
your client did something that made it that way _(eg "but we MUST have .Net
ASP on the front end talking to a PHP back-end and ONLY using flatfiles")_ \-
that's a constant regardless of your degree of familiarity with a given
technology or problem space (you can mitigate that in other ways but that's
beyond scope here I think).

Take stock of what it is that you are comfortable working on:

* Technologies you have clearly demonstrable capabilities

* Problem spaces you have worked in before

* Areas you have researched

Now extrapolate by one degree - eg so if you are familiar working with Hadoop
you probably could set up and use Cassandra if you needed to. But to say you
have experience setting up a massively scaled and redundant data warehousing
operation would be too far.

If you have built mainly consumer focused apps you might feel comfortable
trying a social network app, but jumping into financial software might be too
far.

etc.

Now with the above market clearly the technologies and spaces you have
experience in and don't be afraid to take on jobs that exist in the "1 degree
apart" space - but be cautious of anything that falls outside of that.

Sorry if this is a long windy reply - I've spent the last 5 years consulting
and the above is my basic methodology for this.

~~~
dotBen
I also forgot to mention, another great way to gain confidence in new areas is
to experiment and R&D in your own time.

Pick projects that will leave you with a clearly demonstrable experience of a
_marketable_ technology (eg Node.JS is cool but difficult to find wide market
interest at this time).

But only do this if you have time between gigs - always take a gig over a
project because you will always gain some kind of experience from any gig, in
addition to getting paid.

------
jlees
You could start with some 'safe' low-bar jobs to get a feel for it, like
eLance or similar (back in the day I did some eye-opening work for clients
through rentacoder and a British freelancing site). The experience may be
worth more to you than the abysmal pay.

You could also try structuring your work and charging methods so you have a
week or two of lower-paid 'research' at the start of the job to really figure
out if you can execute or if it's something you should leave well alone. Once
you have a client waiting and are in the swing of things, though, the ability
to execute is somehow higher :)

------
javery
Then you will be like 80% of the people delivering products out there, that
doesn't make it good or acceptable, but knowing this should help take some of
the pressure off of you.

The key with consulting is to always communicate with your client, let them
know where you are and how much more work you think you have. Be honest about
how you feel about the quality of it as well, a good client with work with you
and help you deliver a great product.

------
kitcar
If you never attempt things outside the scope of things you've done before,
you will never do anything - its the definition of a self fulfilling prophecy.

Do research, learn, talk to people who have done it before, manage client
expectations. Best of luck -

------
mikeryan
Never ever deliver a crappy product. If you're in the weeds you're going to
know it. Raise the issue early and ask for help. If you can't complete the
project that sucks for your client, but its recoverable. If you continue to
flail for weeks and finally deliver half ass crap without a warning then you
have failed miserably.

~~~
phamilton
So what's the route to take when I realize i'm in over my head? Apologize,
refund the money and move on? Hire someone to help me finish it?

~~~
mikeryan
So here's the deal - you're not likely getting contracts to do banking
systems. I'm guessing things like websites and maybe mobile apps etc.

The thing is if you're a bit smart and know how to code, there's very little
you probably _can't_ do. The question is how long will it take you to figure
out how to do it. You will much more likely be wondering whether you are doing
it right.

So now its a question usually of scheduling. When you start getting in doubt
about your ability to deliver on time, thats the time to raise your concerns.
Tell them you might need to bring someone else on, maybe you can do this on
budget or maybe you might have to eat some hours for free. Again its not
perfect but if I hired someone like you and they went that route - I'm pretty
okay with that, and I'm going to respect your honesty. Also if you're setting
schedule make sure you build some buffer time in, and try to avoid projects
with super hard and fast delivery dates.

Some people may flip out, but if you manage to keep them as close to on time
and on budget as possible thats okay.

------
makeramen
Treat it like dating. (From a guy's POV:) Some girls you know you don't want
to deal with, so you don't date them. Some girls are interesting, but you've
never dated them before, so if you're feeling risky or ambitious, you try and
see what happens. Some you know are your type, so you actively pursue them,
but even then, they might not work out until you really get to know them.

Bad Consequences? You can get a reputation of being promiscuous (or worse) if
you handle things poorly. People can find out you're not a good kisser, you're
not good in bed, you're unreliable, you're cheap, etc. Or they can find out
that you're responsible, you try hard, you're willing to give it all you got,
you're romantic, etc.

The only risk I see is "is this girl worth my time to pursue?" There are 6
billion people in the world and only one you. Your time is limited, potential
clients are not.

------
martinc
I recommend shying away from things that are not in your comfort zone - or
somehow progressing you.

For example, I was requested to quote for a project that _had_ to use Joomla
for a certain type of website (well, it was Facebook and a document management
system). That was enough to ring alarm bells and steer away from it.

------
japherwocky
Pretty much the worst that can happen is you won't get paid, and those clients
will tell all their friends not to hire you. Which is.. not that awful.

But if you try at all, you might find that in the real world the bar is
actually pretty low. Just being able to deliver anything at all is the first
step!

------
KevBurnsJr
Saying "Yes" is easy. Saying "No" is hard.

You won't be able to say "No" until you've said "Yes" and failed.

------
palehose
If you are able to complete the project and there are problems with it in the
future, you may just be giving yourself future work when the client needs
those bugs fixed.

------
binarysoul
“You miss 100% of the shots you don't take." -Wayne Gretzky

Just try it, if you suck, move on, or try to improve, but you'll never know
otherwise.

------
mynameishere
The word you're looking for is "contracting".

------
known
I think most consulting openings are _political_ in nature.

