Why I Became a Consultant
When I left my chief information officer (CIO) position in 2007, I wanted to return to the purity of software development. The work of software development—programming—was my first love by a very wide margin, and after a few years as a CIO, I came to hate the day-to-day tediousness of budgeting and more budgeting, and defending that budget; performance evaluations; personnel management; endless meetings to plan and organize, and then scheduling the next round of meetings to ultimately arrange yet another series of meetings. Rinse and repeat.
In my earlier senior management days, I was ecstatic to participate in guiding the steps of the company and our department. I loved being involved in decision-making processes for software and hardware acquisition, high-level business planning, and the subsequent staffing and project development processes to ultimately meet the goals of the business. All of that was fun and exciting. For a while.
After a period of time, though, I realized that I am not the guy who can evolve completely or comfortably out of software development. I know lots of people who have happily hung up their programming duties in favor of a management position. That’s great for them, but I am not that guy.
I found that I could no longer participate in the things that advanced my career in the first place. The things that got me promoted through the ranks and to the roles that I aspired to were the very things I had to relinquish. Being a good software developer got me promoted right out of being a software developer. After a while, it just didn’t make sense to me.
I missed software development more than I liked the status, money, and responsibility that came with my nice big title. I started asking myself what I really wanted to do. I had more or less achieved what I thought was the endgame for software professionals. Heck, I was a CIO. What was left?
That was a hollow thought for quite a while. I was miserable.
By that time, I had been hiring consultants, contract programmers, freelancers—call it what you will—for years. I, too, had been in and out of contract and consulting work at times over the years.
Then it hit me. Why not consult? Why not start my own consulting and contracting business? Wasn’t that the dream in the back of my mind all along?
I got excited! I mused, I plotted, and I daydreamed: I would write code for various customers. I would help companies make good systems decisions and then I would help them create their software. I would bring my experience as a software developer and a senior manager together and help companies achieve their software and technology goals. I would have fun again! I would be great at it! They would love me!
It all made perfect sense. It seemed so simple.
Just one problem: How? And where do I start?
How and Where Do I Start?
As I thought about it, there were endless “hows” to deal with:
- How do I stay busy enough to survive, to thrive?
- How do I market and sell?
- How do I close deals when I find customers?
- How do I price my offerings?
- How do I find additional programming resources?
- How do I manage finance, taxation?
- How do I handle legal issues?
- How do I grow my company?
- How do I manage contracts?
- How do I stay relevant technologically?
And that is only 10 questions! I could increase this list ad infinitum.
Within each of these “how” questions are a conceivably endless list of more questions.
Gulp …
Back in 2007, when we first started our company, Pinch Hitter Solutions, there was not a ton of information on the web about how to start a software development consultancy.
I had my career as a software developer, and my experience as a senior manager and CIO. I knew what buying assets and services looked like. I was skilled as a Java and JavaScript developer and I had a ton of AS/400 and RPG experience; I knew how to write code, manage teams, and run projects.
Even with all my experience up to that point, considering the list of “how” questions above, the skills I started with were not nearly enough. Not even close.
Nevertheless, I began my journey with what I had to work with, which was really just myself. My wife and family believed in me, and my experience in corporate America was certainly helpful, but ultimately I had a lot to learn. A whole lot. And that is a vast understatement as I look back.
By the end of 2017, I began to reflect on all of the lessons I had learned in my journey as a consultant. And there had been many!
I asked myself how I could be helpful to others. What could I do for those that might be considering a walk down the same path? That would be the path of leaving a relatively stable life in corporate America to live in the wild, Wild West of consulting, contract programming, self-employment, and business ownership. And, oh yeah, marketing and sales.
Earlier this year, after a lot of thought, consideration, and research as to how I might do this, I started a blog and a YouTube channel of the same name (Motivated Code Pro—links below). Both of which were inspired and encouraged in part by the work of John Sonmez—his SimpleProgrammer.com blog and YouTube channel were extremely helpful to me.
In the interest of space and time, I have distilled a lot of experience down to just five keys that will help you become a successful software development consultant, and I've included links to their corresponding videos below.
1. Your Skill and Experience
Obvious, right? We present ourselves to potential clients based on the merits of our skill and experience. I want you to have at least five years of work history in your technologies of choice before trying to sell those skills to potential customers.
Experience is the one thing that can’t be taught or rushed. Time takes time and it is the day-to-day, mile-after-mile, step-by-step work that earns you that experience. There is no substitute for putting in the time.
Companies that engage your services are counting on you to complete time-sensitive projects with efficiency. I know from years on the buying side of many contracts that people with at least five years of solid experience in their disciplines tend to come with robust knowledge of their chosen languages, frameworks, and technologies. They are able to resolve complex problems, work independently or on a team, and can learn new disciplines quickly.
Companies will hire you based on your experience (and your ability to sell and represent that experience), but they will also expect you to consume and apply new information very quickly.
Maybe they work in a business that is different from where you came from. Trucking instead of health care, for example, so you will need to apply your technology skills in a business setting that is new to you. You need to be mentally limber, eager to learn what is new, and quick to apply what you know.
Not only that, with all of the Java, PHP, Python, and JavaScript frameworks—not to mention the many other languages, design patterns, and the sheer number of people using them—you will definitely encounter techniques and solutions to common problems that are different than what you are used to. Fast assimilation of new things is part of the fun and also part of the challenge.
That said, there is always the temptation to wander way off course and learn something completely new and sexy. You may want to learn it because it’s getting a lot of press, because it’s the hot new thing, the technology du jour.
Pause! Stop!
Don’t do that. Wait until buying customers are engaging with that technology before you burn countless hours of your life to learn something that may not take off and therefore will not get you paid.
Remember, you are in business now. You need to make smart business choices with your talent and time. Be sensible with where you spend it; make choices based on what is going to get you paid. Period.
As for further sharpening your existing tools, it’s wise to spend at least 30 minutes every single workday pushing your skills ahead—learning a new framework, for example (maybe new to you, but tried-and-true in the marketplace), within one of your main languages. This is important and is a good investment.
I am a fan of going deeper with the skill set that is already getting you paid. For example, if you’re working in web development today, learning another popular JavaScript framework is a good idea.
Choose wisely, and if you decide to dig into something totally new, and I know some of you will, just be sure it’s a worthy investment of your time and talent. Remember: You are a business.
Skill and experience will get you paid, but time is your greatest asset. Treat it like money.
2. Writing for Blogs and Posting on Social Media
Getting your name out there is important. Writing for blogs and posting on social media are great ways to let prospects and even existing customers know who you are, what you do, and that you really know your stuff.
Taking the initiative to write also gives them a look at your ability to communicate using the written word. Despite living in a world of highly abridged communication styles via text and chat tools, being able to write effectively is incredibly valuable if you’re going to be a consultant—in my humble opinion. IMHO.
This is good old-fashioned marketing for the modern era.
When I first started as a consultant, I wrote an article for a popular AS/400 magazine—still in paper form in those days—encouraging their audience to try Java and to try the NetBeans IDE. It was a guest post, about 500 words.
After the article was published, a company in Tennessee, not too far from where I live, contacted me with a barrage of questions related to Java. After several phone calls and a site visit, we began a nearly two-year consulting engagement that would not and could not have happened without that article.
Sometimes, writing for a blog, yours or someone else’s, feels like pouring cups of water into the ocean, but I know from experience that those tiny contributions to the sea of digital media can make a big difference to you. You never know who might be watching, who might be reading.
All of the social platforms are used for business these days. As for me, I use LinkedIn, and I have a YouTube channel, a personal blog, and a Facebook business page.
I encourage you to start a blog and write for other blogs; write short articles on LinkedIn or other sites in your space; consider creating a YouTube channel where you can be helpful and informative to people who might use your services or work in your space.
Do some homework. What are successful people in your space doing to attract attention and help others?
It’s never too soon or too late to start. This is something that you should give attention to, even if you don’t consider yourself savvy on the various social platforms.
I am guilty of a decade of indifference where social media is concerned and have only recently really, really tried to get traction. And that was way after our business had been established. Don’t wait.
Think of social media and blogging as a step in trusting the process. Your hard work is never wasted. Have faith.
Social media and blogging are an investment in your future, but they are something you have to do today without assurance of a payoff—again, this is an exercise in faith. Immediate return is not the goal; creating an online presence takes time and effort without the immediacy of a paycheck. This is an investment in yourself and your business, and will ultimately help you find work and stay busy.
3. Being Able to Find Work
The biggest way people fail as consultants or contract programmers is in not being able to find work. Specifically, the second and subsequent contracts are harder to obtain. When someone leaves their full-time job to consult, they usually have an arrangement waiting with another company. The difficulty comes when that first contract ends.
One interesting thing about contracts that I want to share is this: I have started multiple contracts over the years that had a stated duration. Ninety days or six months, let’s say. That is not a lot of time and not something I would recommend leaving a full-time position for.
However, I have never been on a contract that lasted only the stated duration. (If you listen carefully, you can hear me knocking on wood.) My point is that contract durations are often contract starting points. There is a never a guarantee, but that is my experience and the experience of many other consultants.
Remember that contract work is designed to end. That is perhaps the most important statement in this article. In a sense, you are there to work yourself out of a job. With that in mind, you should have your eye on where work will come from after your current engagement ends.
Let me say it a different way: You need to look for future work and future relationships, and tend to your current relationships, your social media platforms, and yours and other blogs, or you will be out of business. Finished.
Attending user groups is a great way to meet people who work in your space and are doing more or less the same things that you are. This is where you can make friends, potentially help others, and meet people with influence and hiring ability.
Connecting with consultancies around the country that offer the same types of services you do is a great way to build valuable relationships. As you know, it’s not just finding work, it’s being able to staff that work as well. Other consultancies have this challenge, too, and will look for people like you to meet their customer needs. This is a big win-win in that you can conceivably find work and potentially have access to their resources to staff projects you might sell into.
Something to consider when working through other consultancies is that you will not get the same rate you will get from a direct client—this could be seen as a negative. The positive is that you will typically not have to wait an eternity to get paid. You are also benefiting from their sales efforts.
Working with direct customers is more profitable but harder to sell into. Also, billing with direct customers can be painful and adds another task to an already busy work life—Welcome to Accounts Receivable.
Our company has never had a problem getting paid through our consultancy relationships, but I have frequently had to make phone calls, send emails, etc. to remind our direct customers that we have not received payment.
Stay in touch with people you have worked with over the years. People move around, take new jobs, learn new skills, and may need someone like you to help with their projects, their company, and their software products. Keep your contacts warm. Phone calls, emails, lunches, and other friendly gestures are what keep these relationships alive.
You will feel the gravitational pull of your billable work trying to distract you from the road ahead. This is a dangerous trap. Yes, you need to work and bill to get paid today, but time will pass and you need to be ready for that too.
Strive for balance in tending to your present work while tending to your future possibilities as well. Contracts are built to end. Get comfortable with change. Stay connected!
4. A Good CPA and Business Attorney
Think of your certified public accountant (CPA) as an integral part of your team, even if you’re a team of one. CPAs are licensed by the state or states they do business in and can help you with your local, state, and federal tax issues.
There are a number of things your CPA does or can do for you.
Your CPA:
- Will help you select the right corporate designation: limited liability companyLLC, S corporation, C corporation, sole proprietorship—this can change for various reasons over time and your CPA will help if the time comes to change your designation.
- Is a great source of advice when you get started; when you shrink or grow; if you struggle financially; and when you want to borrow money, purchase equipment, or make other financial decisions. Here are some questions I have asked countless times:
- Is “x thing” deductible?
- Should I buy this equipment now or wait until next year?
- Based on my gross income, how much money should I set aside for taxes?
- Based on my income, am I in a good position to hire someone at x rate of pay?
- Should I hire this person as a W2 employee or a 1099 contractor?
- Can support you in an Internal Revenue Service (IRS) audit or in responding to IRS inquiries (or nasty-grams). This is huge. CPAs know how to deal with the IRS in ways that you do not. Do not try to handle the IRS on your own.
- CPAs are generally connected to people in your community who can help you with bookkeeping, banking, credit, payroll and direct deposit, 401(k), and even health care. Your CPA may not do these things themselves, but they will generally know who the right people are for a given discipline.
The time to hire a CPA is when you first start your business. Interview a few local CPAs as you’re getting started. Tell them you’re a new business owner and that they should assume you know nothing about accounting for a small business.
Unless you have an accounting degree or an actual background in accounting, do not assume that your exposure to big-company corporate accounting is going to get you through. Remember, you are a software professional, not an accountant. Don’t devote valuable time to someone else’s expertise.
Your CPA can guide you or direct you to helpful resources that will start you on the right footing from a tax and accounting standpoint and can guide you as you grow. Make sure your potential CPA is easy to access; returns phone calls, texts, and emails promptly; and is someone you like. I cannot overemphasize this point. Over time, your CPA is someone you will have a lot of contact with. If you groan every time they show up on your caller ID, you have the wrong CPA.
A business attorney is a bit more remote but still integral to your team—once more, even if the team is just you to begin with.
As a software development consultant, contractor, or freelancer,—call it what you like— you are self-employed, and as a matter of course you will submit proposals and contracts to clients, potential clients, and vendors, as well as to contract or consultative workers.
Sometimes, your clients will insist that they author the contract. The same thing might be true for your 1099 professionals and vendors. All of that is well and good, but you are not a lawyer and therefore you are not qualified to review the legalese of a contract. Your business lawyer can and should do this for you.
A few common agreements consultants need to produce or agree to:
- NDA – nNondisclosure agreement
- Contractor agreement
- Subcontractor agreement
- Intellectual property rights
In most cases, these agreements will be boilerplate or one-offs from a boilerplate so you don’t have to have these written and rewritten again and again. Having an attorney to quickly review agreements and changes asked for by your clients, vendors, and 1099 professionals is essential to your peace of mind.
To close this section, I want to remind you that you are a software professional. You are not a CPA or an attorney. Spend your time with your customers, your prospects, your software product, your blog, your social media, etc. You have plenty to do already. Leave the accounting and lawyering to the experts while you tend to your own expertise.
5. Welcome to Sales and Marketing
This is where the reality of being a self-employed entrepreneur really sinks in. Of the five keys, this will require the most from you and take you the furthest from your comfort zone.
This is the one thing that keeps otherwise capable and talented software professionals from taking the step to becoming an independent consultant. I have spoken to many people over the years who have simply said, “I can’t sell.”
Let’s face it, if you have to risk your home and family life as you know it and everything else you’ve worked hard for up to this point, the very real possibility of being without work for periods of time can be a nonstarter.
Staying with a company you like, doing a job you love, and maintaining a lower risk in your life is not a bad thing. There is nothing wrong with that.
The word entrepreneur carries with it the connotation of glamour and success. While this is true for some, the brutal truth for all is that it is extremely hard work. Late nights, early mornings, financial risks, and abandoned personal life are a few of the better-known, though infrequently discussed, hazards of entrepreneurship.
Let me say it this way: Sometimes it sucks, and for every ounce of success, there is a pound of stress.
Being an entrepreneur is not for everyone. Taking a risk like this with your livelihood takes a close examination of who you really are at this point in your life, your tolerance for risk in general, and a super long look at the reality of your skill set in the marketplace.
Does the “suggestion” that you have at least five years of experience make perfect sense now?
Some software people choose to work for an established consultancy. This is often seen as the perfect middle ground between a traditional 9-to-5 job and being self-employed but with less risk and no requirement to “ask for the sale,” because a sales pro is likely handling that. This is a decent choice, maybe a great way to put your toe in the water. Maybe a great place to spend your career.
Like a lot of things, selling is a skill that takes time and patience, and for deeply technical people does not tend to come naturally. It has to be developed. Just like learning to code, it takes practice, practice, practice.
I think the best piece of advice I’ve ever gotten is to just be myself and to talk to prospects the way I would talk to a new friend. Ultimately, they are buying you, not some salesy version of you.
You can’t control the way prospects respond to you; some will be fun and engaging, some will be difficult, but you have total control over yourself and your response. So be yourself. It’s what you know best. It’s what you already have.
Even if you’re a bit klutzy, your sense of authenticity will come through and be easier to warm up to than a super-polished, over-rehearsed Zig Ziglar version of yourself.
With all that said, there is nothing wrong with learning as much about marketing and sales as you can—in the end, though, just be yourself as you apply the techniques and lessons you’ve learned.
Finally, when it comes to selling, at some point in the process you are going to have to ask for the sale, to say it costs x amount of money, it is going to take x long to complete, the payment terms are thus, and that you are the right person to help them. Sign here, please.
Your preparation for this moment could take weeks or months, but you need to be ready.
The most important thing to know at this point in the process is that everything is a negotiation. I mean everything. It might look something like this:
You throw out a fair number, but they say it’s high (and your throat is in your stomach).
They counter with a low number (now you have un-swallowed your throat).
You negotiate to the middle.
Sometimes, you get it just right, but other times you will hear things like, “It’s outside of the financial allocation I have for this project,” or “It’s more than I’m comfortable selling to my boss down the hall.” It could be anything, but it’s always a negotiation and you need to prepare yourself mentally for that process. You need to know what your bottom line is.
This gets to the heart of closing deals and it is something you will have to work on over time. You don’t get to close deals every day, and it is these moments that coin phrases like the closer.
These conversations need to happen in person if possible or over the phone at least. Email is not the medium to handle a serious negotiation. I say this based on real experience and real money. The value of a voice-to-voice, or preferably a face-to-face, conversation cannot be overstated.
To wrap up this section, I want to remind you that selling is a strange bedfellow for software development professionals and it takes practice, practice, and still more practice. You have to really want it.
The well is deep when it comes to marketing and selling. There are infinite resources available on the web and in books. My goal here was to scratch the surface and present the reality of sales and marketing from the perspective of a software professional who has been there, who in fact lives it every day.
Take the Leap Into Successful Consulting
Stepping into your own consultancy is a big step indeed—one to be taken with care and caution. Make sure you are ready and that the timing is right with the rest of your personal priorities.
After years of software work, it’s your skill and experience that got you here. Stay sharp and go even deeper with the software development choices that paved the way for you.
Writing for blogs and posting on social media will help keep you here. Carve out time for this activity so it becomes part of your daily business process.
Staying in touch with your software development friends and keeping your business contacts warm will keep your prospects hot for finding new work.
Good businesses function as a team. Your CPA and business attorney will keep the business end of your venture healthy and accountable.
In the end, your willingness to market and sell will not only keep you in business, but will also allow you to grow your consulting practice and thrive. You have to get paid to succeed, so your ability to ask for the sale will make you a true entrepreneur and a successful consultant as a software developer.
As I inferred at the beginning of this article, each of these five keys is a deep topic, worthy of a lot more ink than I have spilled here.
In closing, I hope you are inspired to dig deep and ask yourself the important questions about becoming a successful consultant as a software developer.