Sunday, 15 February 2015

independent development

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

Digital Marketing

Subscribe to RSS Feed Follow me on Twitter!