1: Coding yourself out of business
-
High-quality code is vital to independent developer success, but heads-down coding is a job, not a business.
-
To be certain, you should always be thorough, with an eye toward
delivering the best code you can. But make sure you have something else
in the pipeline to work on when you’re done.
-
When coding, it’s all too easy to focus only on the work in front of
you. In fact, it’s far more efficient to devote yourself to coding than
it is to task-switch between development, marketing, sales, planning,
administration, and so on. But that’s exactly what you will have to do
to succeed. Billable work pays the bills, but finding more work keeps
your business afloat.
2: Forgetting that you are your brand
-
You may not realize it starting out, but even if you are working solo as
an outside contractor with only one client, you have a brand, and that
brand is you. Remember: A brand is a promise of quality and consistency,
and though it can stand for whatever you think is important as a
developer, it must be precise.
-
How you present yourself, your work, your team, and your development
philosophy is the bedrock of your brand, and it should be reflected in
all facets of your business, from your website to your business card to
how you discuss your work with a casual acquaintance on a day off. If
you are vague or inconsistent, your business will suffer.
-
Too often, independent software developers define their business by a
tool or fad. Brands built around tools quickly become commodities --
would you rather hire a “Java shop” or an “expert in enterprise
applications systems development”? Brands built around the latest trends
can be lucrative, temporarily, but they too quickly become commodities.
-
The more specific you can be about your work and what you stand for, the
easier it is to distinguish yourself from others, and the easier it is
to identify and locate potential clients. More important, establishing a
clear brand makes it easier for potential clients to identify and
locate you.
3: Trying to be everything to everybody
-
Customer satisfaction is essential to your success as an independent
developer, but trying to please everybody can sink your business
quickly. It causes you to spread your resources too thin, in the end
pleasing no one.
-
This doesn’t mean you shouldn’t go the extra mile to serve clients to
the best of your ability, or never take on work outside of your comfort
zone. But pay attention to the limits of your abilities and resources.
Overcommitting or signing up for work you can’t complete to the level
your customers expect can quickly poison your business.
-
Instead, be diligent about logging your work, so you can be accurate in
estimating your bandwidth when special requests arise. Increment your
experimentation into new areas rather than promise to deliver big,
merely because you know you can learn new tools quickly. Remember -- you
have a business to run, and mastering tech to the level of your brand
takes time away from paying work.
4: Targeting the wrong market
-
Small businesses struggling to grow out of manual systems may seem like
the ideal client for your fledgling independent software business; after
all, they stand to reap the greatest benefits from automation. But they
can also be the least trusting of technology and outsiders, and their
cash flow may not be consistent enough to afford your services.
-
Targeting the “right” market is more art than science, but one vastly
oversimplified maxim is to seek a combination of fit, finance, and
fearlessness. Finding the best fit for your services is a complex,
volatile process of ambitions, problems, needs, skills, gaps, benefits,
and timing. There is likely to be no external signals for these, so you
have to talk to a lot of people in various industries and organizations
to find out. As you are doing this, you can assess the financial issue
-- if an industry or organization can’t afford your services, the whole
process is pointless.
- Gauging “fearlessness” is more of a gut instinct. Do the players in your
targeted market have the organizational courage to see your partnership
through? Software systems change business operations; for many
industries, and many organizations, change is scary. Don’t get lost
chasing timid leads.
5: Failing to identify the true project "champion"
-
Every software project has a “champion” (or “patron” if you prefer).
This is the person with the authority to write the checks to pay for
your work and the will to defend your project internally to ensure it
succeeds. It is essential to identify this person and cultivate a
meaningful relationship, where possible.
-
All too often the champion is not present, revealed, or even mentioned
in consultative meetings. Worse, department heads or senior executives
often insist they have the authority and budget to get the project done,
when in fact that is not the case.
-
Always look at who signs the checks. In some companies, department
managers have discretionary budgets and are indeed the champion of their
projects. In other companies, executives higher up the chain --
sometimes more than one -- are the true, hidden champions; their
approval is required for project expenditures.
-
It’s not unusual, especially in smaller, privately held businesses, for
the company president to be presented as the project champion, but in
reality the CFO or company owner has to sign the checks. Don’t be fooled
into thinking you have a stronger commitment than you actually have.
6: Failing to establish (and maintain) a sales pipeline
-
Selling custom software development is a slow, consultative process.
Prospects may know they have a problem, but they may not be sure they
really want to solve it. After all, the decision to adopt a custom
solution can change the direction and foundation of an entire business;
the bigger the business, the longer it takes to decide and turn. Even
highly qualified, eager referrals from happy clients can take several
months to close.
-
This means you must always add prospects to your sales pipeline. You
must also always measure time spent and results. These numbers are
crucial to keeping your pipeline flowing.
-
Suppose you need one client to support your business for half a year,
and you can close one sale in six months for every 600 prospects you
encounter. In this simplistic example, fewer than 100 prospects entering
your pipeline every month could mean trouble.
-
In reality, the numbers are more complicated, but the structure of the
pipeline remains the same: prospects in, time elapsed, sales out. Always
be tracking time to qualify, time to close, average deal size, and
close percentages. Use these numbers to project future income from the
current pipeline. Subtract future costs and allow for projects (and
income) ending. This will give you a leading indicator: If the resulting
number is negative or trending downward, you are at risk of
insufficient cash flow unless you add more clients to the pipeline.
7: Failing to diversify your client base
-
Most independent software developers get their start with one main
client. This can be a great way to strike out on your own, but beware
attempting to maintain a business this way. When that one client has a
hiccup, you’ll be scrambling -- or out of business.
-
The other downside of having one main client is that they may start
thinking of you as “staff augmentation” instead of “valued business
partner,” with demands going up and respect going down simultaneously.
Three medium clients are better than one large one. Twenty small clients
may be better still, as it is highly unlikely that a majority of them
will suddenly stop at once.
-
Think of it this way: One client is a job; multiple clients, with diverse revenue streams, comprise a business.
8: Failing to account for taxes and overhead
-
Most ISVs are LLCs or S-Corps, both of which are “pass-through”
companies in the United States. This means you have to account for and
pay estimated taxes as you go, and usually even more at the end of the
year; nothing is deducted for you. Even if you pay yourself a salary,
your finances can still get complicated and surprising at the end of the
year. A good CPA can help, but it takes consistent financial discipline
to stay current.
-
Nothing can sink your business like inattention to taxes.
9: Playing fast and loose with collections and cash flow
-
Most independent development shops run “lean,” as in “very little cash
buffer to fall back on.” This can turn a minor payment issue into a
layoff-inducing company crisis.
-
The fact is, clients don’t always pay on time; this is normal, and it
helps the relationship to be flexible. But if you notice a pattern --
unexplained delays, administrative misplacement of invoices, waiting on
someone to sign checks, and so on -- the client may be having internal
problems they aren’t telling you about.
-
This may be a temporary issue, but it could last long enough to put you
under water if you’re not prepared for the possibility. Do your best to
keep a buffer and pay close attention to collections. Understand the
client’s payment process, who is involved, and how long it takes;
investigate immediately if the pattern starts to quaver.
10: Hiring people before you have (enough) paying work for them
-
A chief concern when going independent is knowing when it’s time to no
longer go it alone. While staying lean at the expense of adding help is
the norm for some, it’s nearly as easy to overestimate the scope or
certainty of new projects and bring on eager, even inexpensive talent to
help. After all, the only way to grow is to grow, right?
-
But this can increase your overhead significantly without increasing
your revenue -- in terms of both budget and time. Changing processes to
accommodate new head count, training new hires, managing workloads -- it
can quickly derail your ability to close sales and deliver the quality
your customers have come to expect. Hire cautiously.
11: Thinking there are shortcuts to sales success
-
Most developers who go independent do it to solve problems, write code,
and deliver results. They may not enjoy marketing and sales activities,
but these activities can’t be ignored -- and I do not recommend that you
outsource them completely, at least not initially.
-
There are no shortcuts to sales that work reliably, and each technique
and tool alters your process in ways both subtle and gross. Long shots
happen, but don’t bet the farm on them; instead focus on steady,
reliable, refinable systems that you thoroughly understand.
-
Evaluate each marketing/sales tactic and tool with the same critical eye
you would use when deciding to adopt a new programming language or IDE.
Play with it, run some tests and benchmarks, consider how it impacts
everything else you’re doing, and resist the urge to change directions
too frequently. Even the most reliable, time-tested, surefire sales
techniques take time and tweaking to work, so set realistic expectations
and timelines, and be wary of abandoning existing systems before you
understand them. If you hopped on the latest programming trend every
month, you’d never finish anything and would quickly go out of business.
The same applies to marketing/sales tools and trends.
-
Like it or not, there is no escaping the basic marketing/sales education
process, learning curve, and effort. Go talk to prospects. There’s no
other way to learn this aspect of your business.
12: Failing to document, refine, and automate processes and systems
-
Processes and documentation may seem like the stuff of slow, dinosaur
companies -- they may even be the chief reasons you left your corporate
job -- but the truth is, an efficient independent software business
depends on them.
-
Chances are you already have processes you have followed, repeated, and
refined for years. Some you may have even taught, directly or
indirectly, to others. Do yourself a favor: Write them down, discuss and
refine them often, and automate wherever possible.
-
Automation is your bread and butter. You probably extol the virtues of
automation to your clients all day long. But your own internal systems
are manual or nonexistent. This makes results somewhat unpredictable;
worse, it wastes your time -- and for an entrepreneur, time is the most
critical nonrenewable resource.
-
Manual or hacked-together systems are fine to start with, but don’t stay
satisfied with them. Removing tedious, repetitive work reduces friction
across all processes.
-
Look first at where most of your nonproductive time goes, and automate
that. “Automation” in this sense includes all options, from fully
automatic software systems that do everything for you while you sleep,
to virtual assistants to personal assistants to outsourcing specialists
and any combination of the above.
13: Dropping the ball when it comes to support
-
Poor support is a major reason why clients change service providers. The
less support needed, the better, but being known for excellent support
is pure gold -- not just because it maintains customer relationships
after sales and delivery, but because outstanding support turns your
customers into evangelists.
-
This doesn’t only mean fixing problems in the middle of the night. It
means helping clients understand every facet of your solution, teaching
them how to perform tasks and fixes themselves, and providing all of the
information they need to remain confident they made the right choice
for their business’ future.
-
Because that’s what you build for your clients: their future. You may
not have to live in it for long, but they do. Support their decision and
vision, and reinforce and reassure them. There is no such thing as “not
my problem.”
14: Becoming a bottleneck to your own success
-
When you go it alone, every decision is important, and because it’s your
business, you’re on the hook to make every one of them. As your company
grows, the decisions mount -- which projects to pursue, how to juggle
workloads, where to investigate new leads -- and they can quickly dam up
and destroy the company.
0 comments:
Post a Comment