|
|
A virtual
interview about consultancy
I started consulting in 1995, with a focus
on FPGA design, but also embedded software, IC product planning, and
system architecture. This article was originally written around 2001, but
has been updated several times through to 2003, then idle till a refresh
on 10/26/2017 and a reformat on 10/29/2017 and 11/05/2017
I have occasionally (about
seven times total) been asked for advice on getting into consulting doing
digital design, or software, or FPGA design. Here is an edited version of
one such email, and my response. If you would like additional questions
added to this "interview", or would like to add to the usefulness of this
page, please contact me.
Q1 |
Hi, Philip, I'm an engineer and FPGA
designer and wanted to get in touch with a few other designers and
consultants out there. I'm weighing the pros and cons of striking
out on my own as a consultant and would like some practical
insights from someone already doing it. May I put a few questions
to you? |
A |
You
certainly may. |
Q2 |
How much do you make as a consultant?
More than when on a salary? Do you work hourly or fixed price per
project? |
A
|
I
make more than when I was employed, but not a lot more. Plus I
now have to pay my own health insurance, medical and dental,
etc.. (much of this was part of the benefits package at my prior
employer. I didn't really appreciate how much it was worth until
I had to pay it my self.) Health insurance in the USA is a mess.
Unless medical bankruptcy is part of your business plan, you
must get this figured out! Probably disability insurance and if
you have dependents, then life, insurance (three separate
policies). Your mileage will vary. I would recommend researching
this (and maybe even getting coverage) before leaving the
umbrella of your current employer.
Many
people think I must be making the BIG bucks as a consultant. My
experience is that while I seem to be working longer hours, many
of them are not chargeable. I probably work 60 to 70 hours a
week of which about 30 to 35 are chargeable. Some times it is
higher, but this is rare. Examples of hours I don't charge for:
- General
self improvement
- Books
related to my consulting
- On-line
courses
- Training
seminars
- Webinars
- Learning/updating
knowledge of design languages
- Maintaining
my business
- Accounting
- Web
site maintenance
- Maintaining
my PC, including installing new software, backups,
installing and testing new hardware
- Lab
maintenance
- Parts
procurement
- Looking
for new clients
- Business
lunches and dinners, maintaining contacts
- Learning
how to use new software and hardware packages (IDEs)
- Writing
tools that support my consultancy, such as vector file
creation, Hex/Bin file manipulation, FPGA download programs,
diagnostics.
- Developing
FPGA IP that I will use with multiple clients
- Developing
presentation/tutorials that I might present to multiple
clients or maybe for a conference session such as the
Embedded Systems Conference (ESC, or the various renames of
this conference)
- Reading
and posting to USENET news groups
(Several clients found me because of my postings to
comp.arch.fpga)
- Participating
in on-line forums
- Social
media
You
don't get paid for sick days, and vacation days, and holidays.
In the US there are some extra taxes for the self employed.
Check with your tax advisor. So assume you are real busy, and
get 48 weeks of activity, at 30 chargeable hours per week, is
1440 hours. Take your current salary and multiply by (wild
guess) 1.3, and set your hourly rate accordingly.
As
an example (the numbers are NOT expected to be real) , if you
are currently making $40,000, you get $52,000/1440 = $36 per
hour. How does that sound ??? maybe round up to $40 ?
(the above numbers are to show the calculation/ratios. Not
realistic for this type of consulting)
Since
I live in Silicon Valley, (which has almost the highest cost of
living in the US), and the area is littered with companies that
need good people (and in FPGAs I am very good :-), my numbers
are somewhat higher than the above stuff.
On
the other hand, (now writing in August 2002), business currently
sucks, and the first thing companies do in "down" times is end
all the consulting jobs. I have been very lightly employed for
the last 6 months. Last month I billed a total of 3/4 of an
hour. Not the best of times.
My
recommendation is to always do "Time and Materials" rather than
fixed price. With fixed price, the client may believe that it is
fine to make "little" changes to the project, and not have to
pay anymore. With fixed price, what happens if bring-up/debug
takes longer than expected? What if the spec missed something
critical, or maybe just minor. The client isn't going to want to
tweak the fixed price for each and every unforeseen change. And
if they aren't paying for it, then this can become a habit.
Fixed price is just too one sided in favor of the client. With
time and materials, the risk is shared. If there aren't any
problems along the way, the project comes in ahead of schedule,
and at a lower cost due to less hours. If the spec changes, or
other problems happens, the cost is directly measurable by the
extra hours needed, and if trade-offs are needed, they can have
costs associated to them. |
Q3 |
When first starting out, did you
have to weather a lean period until your business got
established? |
A |
My
prior employer was STUNNINGLY supportive of my starting my
consulting business, and allowed me to switch to part-time (20
hours per week) with them while I built up my consulting
business. Although at 20 hours per week they could no longer
cover my medical, dental, life insurance, at that time my wife
was employed, and her insurance was extended to cover me too.
Eventually I got individual medical insurance, which is quite
expensive. Check this stuff before taking the big jump. After 6
months of the mixed half time work / building up my consulting
business, the half time stuff was really interfering with my
consultancy, so I went to full time consulting. I promised my ex
employer that they could have me do consulting work any time
they wanted, and they would get the lowest rate I was charging
to any of my other clients. ( I have bumped my rate up once a
year for a few years, by about 5% each time. I am not planning
to change my rate this year.). Existing clients get the old rate
until the end of the current project. I never change rates on a
client during a project. Behavioral ethics is real important.
Here is my experience to date: Long term consulting is rare, and
short term panic projects are more common, often of the form of
they want you to do two months work, and they want it finished
in 4 weeks. For all of 1995 I was very busy at any single time,
with work scheduled for the following 4 to 6 weeks. Beyond 6
weeks there was nothing till the end of the year. I was
terrified. The whole year was like that! By the time stuff was
coming to an end, new stuff arrived. All the contracts I did in
1995 and 1996 were on a fee per hour basis, and I have managed
to not do anything on fixed price bid. For 1997 to 2001 things
were also fairly good, and almost all projects were handled on a
fee per hour basis (also sometimes called "time and materials").
1999 also included a trip down disaster lane when I put my
consulting business on hold, and I joined a startup. I am back
in consulting again, thankfully. For 2002 , business is not too
good, but I have great hopes that things will turn around by Q7
2003. This pattern continued through to 2015 when I started to
cut down on consulting due to burn-out. So 20 fun years of
consulting. |
Q4 |
Is it a feast and famine kind of
business, or is cash flow pretty steady?
|
A |
Feast
and famine. But that is more a function of how well you sell
your self and schedule work. A friend of mine recommends that 1
day a week be spent finding new work, even while you are busy,
because when you run out of work, it is not a good time to start
hunting. This is an example of non-chargeable hours per week.
Going to lunch, buying a potential client lunch, reading
magazines, traveling to a client's site are also non-chargeable.
(travel may be chargeable, if the client agrees to it up front).
To add to the famine side of things, clients pay you when their
accounting department feels like it. You need to watch this VERY
carefully. The accounting department rarely has your house
mortgage payments in mind, and I have one client that through
incompetence delayed a payment almost 3 months ($11,000).
Another client got into financial difficulty and made sure rent
and employees and other things were all ahead of me. They owed
me about $90,000 and finally finished paying me 10 months later.
This was clearly my own fault for not managing the client
better, and I should have stopped working on their project as
soon as payments went over 60 days. They still wanted me to do
work for them, so I insisted for cash up front, and I bumped my
rate 20% just for them. In particular, you need to make their
order entry and payment process something you understand. The
engineer/manager that you work for at the client company usually
has not handled consultants before, and so he/she probably
thinks all that is needed is a purchase order. The Human
Resources, accounting, and admin departments may all have other
ideas. Get this stuff resolved up front if possible.
|
Q5 |
What are the pros and cons of being
a consultant vs. being salaried?
|
A |
Pros:
- I get to work longer hours.
- I get paid for my time.
- My clients seem to respect my opinion.
- I get to choose the projects I want to work on.
- I get to work in my home office.
- I make more money (not a lot)
- When times are tough, you get an extended vacation
Cons:
- I get to work longer hours
- Pay can be irregular
- Work can be irregular
- Can't always work on the projects you want to because you
are already committed to another client project
- Working at home in my home office can be lonely.
- I pay more taxes.
- Self coverage of health benefits etc...
- Not there at the beginning of a project to stop bad
decisions being made. (One of my clients involves me in the
project planning, and it is great. so this pro-con list is
not absolute)
- Not there at the end of the project for the accolades of a
job well done. (Same client also includes me in
end-of-project success parties)
- When times are tough, consultants are the first to be
"turned off"
|
Q6 |
How do you get clients? Are they
mainly people and companies you already knew before starting out?
Advertising? Cold calling? Word of mouth referrals? What works and
what doesn't? Is your client base geographically local, or are
they all over the country? A lot of repeat business? Do first-time
clients normally expect a lot of credentials and references?
|
A |
Most
of my new projects are for existing clients, or referrals from
them (so far all my clients like me), plus a few small jobs from
referrals by local Xilinx FAEs. You should let your local FAE know
that you are available, but you will have to be VERY loyal. i.e.
if a Xilinx FAE points you at a customer, you had better not
recommend Altera chips to them.
Other options are companies that handle contractors for a fee, and
they find the work for you. I have used one once, and while the
experience was ok, they added little value for the fee they
charged (to my client).
Another source is other consultants. This needs to be
bi-directional.
I don't do any advertising, but I do "network", i.e. let friends
know that I am looking for work etc. Also engineers at my clients
might recommend I contact an engineer at another company. I do not
ever work for the competitors of my clients (at least not for a
year), and treat ALL client information as strictly confidential,
whether marked that way or not.
Visibility on social media such as USENET newsgroups and vendor
forums may also make you more visible to potential clients. Being
very helpful on forums helps build a good reputation for both
knowledge and willingness to share acquired skills.
Word of mouth referrals are by far the best, and the FAE referrals
can also be very good, but be careful, as their goals and yours
are not the same. In particular, they will sometimes throw you a
drowning victim (see below) and you should run not walk the other
way.
Although 75% of my work was with 1 client in 1995, I would
strongly recommend against such dependence (plus there may be some
severe tax consequences). I am targeting that no client is more
than 20% this year, and we will see how well I go on this. It is
hard to keep it down if you don't have any other work, and the
dominant client wants more of your time. Early in 1996, my main
client (same as 1995) decided that a certain project that I would
have had to design about 100 FPGAs for will be going a different
direction (5 FPGAs, a few ASICs), and I might not have anything to
do for them. This is the downside of strong reliance on 1 client.
I was not worried, as I was sure I could find other work, and
besides, they could always change their minds (again). (They did,
three times :-)
All but one of my clients is within a 1/2 hour drive. The one that
isn't, was all handled by email.
A few clients ask for a copy of my resume. When references are
requested, I ask an existing or past client if it's ok for me to
give their name out.
|
Q7 |
- What do you find it is that clients really want from a
consultant?
- Do they have projects that get into trouble and need an
expert to rescue them?
- Are they simply overloaded with work and need someone on
demand that can work at 110% duty cycle?
- Do they want leading edge speed and density?
- Do they want the work done as cheaply as possible?
- What are they most sensitive to: schedule, NRE cost, or
performance and quality of the finished design?
|
A |
Expert
help, overloaded, quick ramp-up the learning curve for new
technology, speed and density and architecture. If they care about
my rates, they are a drowning victim (see below), and I don't work
for them, I don't need the pressure on top of whatever their other
problems are. I think their number 1 concern is quality of the
work being done. Since I almost always get the design done in a
cheaper device than what they could have done, that adds to the
reason they use me. I always include complete
schematics/Verilog/VHDL, simulation and verification data as part
of my deliverables, and if special software was written (for
instances C programs to create the test vectors) then the source
is also delivered. Same thing for any proprietary libraries I have
developed (they get a royalty free, non-distribute license).
Be sure the client (and you) know the difference between a
contractor and a consultant. A contractor is "just another body"
that doesn't have to be counted as a body if there are layoffs.
The contract just ends. Contract work seems to be any task within
a project that might just as well be done by an employee, but
there aren't enough employees. That doesn't mean that contract
work isn't good, fun, and rewarding, just that it is different
from consulting. A consultant is bringing specific above average
(expert?) skill in some domain that is needed by the project. In
my case it is high performance FPGA designs with a very heavy dose
of massively parallel DSP.
|
Q8 |
What are some things to watch out for?
Do you sometimes get stung by clients who don't pay? What are the
big time wasters (in dealing with clients, not in the nitty
gritties of design technique)? What are the essential terms and
conditions in any contract, without which you are asking for
trouble?
|
A |
I
have yet to have a client not pay me (except for one that I didn't
send the bill to). This is handled by being somewhat careful who
you work for. Big companies while slow (sometimes) to pay their
bills, do eventually pay. Small companies seem to be much more
prompt with paying me. The big time wasters are clients that
haven't figured out what they want. I tell clients that their
specs for an FPGA should be as detailed as a data sheet from a
semiconductor supplier. Only one of my client follows this guide
line. The FPGAs I design for them ALWAYS work first time, and
integration is usually a breeze. Their total costs are also less,
because there is less re-design when poorly thought out specs need
revising. I usually tell the client that it is their
responsibility to supply test vectors and result vectors. Some do,
some don't.
Here comes the drowning victim stuff :-)
You need to recognize the client's behavior. If you wouldn't want
to work with them full time, then maybe you don't want to work
with them part time either. Some clients are what a friend and I
refer to as "drowning victims", and we have learnt to turn them
down. You can recognize them by any of the following (usually more
than 1):
- Poor scheduling
- No detailed specification
- No time allocated for simulation, test, debug, system bring
up
- Schedule is set by some external, near term event (i.e.
ComDex or CES) with no checking of what is required to do it.
- They tell you "this will be easy, it will only take ..."
- They need you right NOW, on site, 40+ hours a week, then
whine about your hourly fee.
- They schedule HW and SW to happen at the same time with poor
or no specification documentation.
- Someone else has already worked on the project, and they
"just need you to come in and complete it"
- They want you to work on an existing design and "just make a
few changes, ..." and there is no documentation.
- They have already allocated the pin-outs for an FPGAs before
the FPGA is designed.
- They have already chosen a design methodology, it isn't
working for them, and when you recommend an alternative that
you believe will more likely reach their goals (based on
experience), they don't listen, and instead want you to
continue with their demonstrably flawed methodology.
- Late pay checks for their employees
- Under-funding key projects
- Critical projects or resources being put on hold (often to
fight fires)
- FPGA project is "done", they just want me to "fix" the
timing
- FPGA project is "done", they just want me to "fix" the
floor-planning
- ASIC project is done, they "just" want me to put into an
FPGA that will run at the same speed
Lots of others things too. If you would like to add to this list,
email me your suggestions.
|
Q9 |
How and where do clients expect you to
perform the work? Do you become their employee for a time, working
at their site on their equipment? Or at the other extreme, do they
send you a set of requirements and a few months later you return
with finished design in hand? Do they normally require designs to
be done with specific tools, (E.G. must be entirely in VHDL, must
be designed using Viewlogic tools) or is that not usually a
concern?
|
A |
I
tell them that I prefer to work in my own office, as I am more
productive there, and will be available on call to them and come
to their site for meetings, design reviews, and system bring up.
This is usually acceptable to my clients. If they are demanding
that you are on-site for the whole project, then maybe they are
talking about a contractor rather than a consultant. There are
also tax issues. Check your local requirements. I have done stuff
where I almost don't see the client, but this is not the norm. I
usually try and do at least a meeting every 2 weeks with my
clients, sometimes more often. Depends upon the quality of their
specs, and their need for hand holding. Also, regular meeting
avoid things falling into the cracks. If the client does not have
any preference, I strongly recommend the Viewlogic schematic
system and simulation (Viewsim) (update 2017: this is back when I
did FPGA designs with schematics. Now it is all Verilog). I have
both of these on my computers in my office.
|
|