Being your own boss, setting your own hours, working only on projects that interest you- all while earning a lot more money are possible when you strike out on your own as an independent software developer.
Here are 15 tips to help you on your way.
1. Know why you're doing this
Before you write that letter of resignation, think about why you want to become an independent software developer. Do you want to work from home? Do you want to travel? Do you want more money, fewer hours, or both? What are your main motivations for making this change? Write them down somewhere because chances are all of your goals will not be met immediately. When things get tough, that list will remind you of why you are doing this, and that can make the difference between giving up and success.
Above all, understand and accept that "going independent" means "starting a business," and a business is very different from a job.
2. Plan before you quit
Going independent can give you greater say in the kind of work you do. And in the world of software, there are many possibilities; you don't have to do exactly what you do at your current job. Consulting, development, products, training, and other services are all viable paths to independence. Make a list of everything you can do, everything you'd like to do, and everything you might be interested in learning how to do. Having that list will help prepare you to recognize opportunities when they arise. Similarly, make a list of all the ways you can find and attract clients. When you make the leap, you'll want to be in a position where you have more offers than you can accept.
3. Securing your first contract is key
The first contract can be the hardest, or the easiest. It is not uncommon for someone to resign as an employee then turn right around and contract with their former employer, doing exactly the same job as before, just with a different financial arrangement -- but it is not guaranteed. Another option is to contact a recruiting firm and have them find you a position that you like and make the terms of engagement corp-to-corp.
4. Diversify your business skill set
Your job responsibilities will include everything, not just coding. Going it alone means going it alone. You'll have to do all of the work that your current team and organization do for you. This applies to both technical skills and "soft" skills; either you learn how to do it yourself, or you hire someone to do it for you. If you hire others to help you, you'll have to learn how to manage people at the very least, but ideally how to lead them. Communication skills may mean more to your bottom line than sheer coding talent.
5. Deliver exceptional service and quality
This may seem like an obvious platitude, but consider that the average office worker is productive only three to six hours per day, according to recent surveys. The rest of the time is sucked away in meetings, emails, social media, and various other nonproductive distractions.
When you are the business, you can eat Twinkies, drink Mountain Dew, and surf the Web all day if you want to. But chances are you only get paid when things get done so getting things done consistently, efficiently, and well will become paramount to the survival of your business. Happy clients are key and consistently delivering extraordinary results makes them happy.
6. Sweat the small stuff
Many tasks don't pay directly, but can lead to business failure (not to mention legal/tax trouble) if omitted. Accounting, cash flow, collections, contracts, liability insurance, and so on are easy to forget or postpone - don't!
Other small things may suddenly matter, like being awake during business hours, answering your phone promptly, and having suitable clothes to wear to meetings with prospects and clients. The hip slacker image that works so well in your laid-back office job may not fly when you and only you represent the entire business. People will perceive you according to their inherent expectations, and you cannot control or change that but you can be aware of it, and prepare accordingly.
7. Always be marketing
Focusing only on the paying work in front of you and letting everything else slide is a good way to code yourself out of a job. Pay attention to additional opportunities with current clients, ask for referrals, continually prospect, and keep your pipeline full.
Marketing and sales are not evil; they are necessary. Even if all you have is a résumé on a job site that is still marketing - and the product is you. Even the best of clients can have sudden downturns; you do not want to be at the mercy of one client. To paraphrase Naomi Dunford of ittybiz - "if the vast majority of your income depends on one client you don't have a business, you have a job."
8. Get organized
Since you are responsible for everything, you must be organized. I recommend David Allen's Getting Things Done system, but any system used consistently will do.
Whatever you choose get things out of your head and into the system, and review it consistently. It is far too easy to think that you can remember everything you need to be doing, and perhaps you can, for a while, but the effort is draining and wasteful. An organizational system is not supposed to be a straightjacket or a dictator; it is a tool. Apply your organizational system consistently to all of your areas of responsibility - not just technical ones - to ensure that you are always on top of everything that needs to be done.
9. Going independent is not a promotion
There is a huge difference between going independent and getting promoted to management. If you get promoted to management, you become responsible primarily for the work of others, along with a load of administrative issues that you may not enjoy. If you go independent, you get managerial responsibilities and keep all your technical responsibilities as well.
Many good programmers have been ruined when turned into managers; many excellent technical people are simply not happy in management roles. If this is you, that is fine, just be aware of it and plan accordingly - perhaps by hiring an assistant or designating one day a week as "admin day." As an independent developer, you are both management and worker, and you must do both well to succeed.
10. Get out of your own way
Don't be your own barrier to business growth. At some point you will hit a limit of how much work you can do personally and still keep up with the business, maintain your health and family/social ties, and generally keep from burning out. You can raise your rates, but only up to a point. Learn how to delegate, sooner rather than later.
Many businesses that are otherwise doing well reach a tipping point where they fail because the person in charge cannot delegate, and that bottleneck strangles the business. If things are falling behind because everyone is waiting on you to do something, take this as a warning sign.
11. Know when to scale back, and when to double down
When you hit your limit, you can contract or expand. To do less, consider firing "bad" clients, raising your rates, and making better use of your time. To expand, consider hiring help, delegating or eliminating tasks, and diversifying your products and services.Outsource administrative tasks to trusted assistants, do not to blindly follow anyone's advice especially strangers on the Internet but o know what your options are and choose wisely.
12. Consider the product
Products have a distinct advantage over services: Products scale. You can only sell an hour of your time once, and it's gone, but you can sell a product over and over, even while you sleep. Of course, products have their own overhead: First you have to write it then you have to sell it. But once it is selling well, the only drain on your time is support, and counting your money. Consider building products (that people actually want) while supporting yourself by selling your services. If you can transform some of your services into products so much the better.
13. Brand and network
People need to know about you. Whether you call it promotion or marketing or branding, the requirement is the same: Get the word out, with a consistent image and message about the kind of services and quality you provide. You can start a blog, join the local Chamber of Commerce, answer questions in LinkedIn groups, post instructive videos to YouTube, and so on.
Choose a few ways that you are comfortable with, and start. Be creative, use your imagination, find ways to stand out that represent you well, but above all make sure the channels you choose are populated with likely prospects. Try several approaches, track where your leads come from, and then concentrate on the avenues that prove fruitful.
14. Replace yourself
Eventually you may decide that you've had enough of being responsible for every aspect of your business; that's the time to replace yourself. You can replace yourself with one person, if it's the right person. More likely, your responsibilities will be divided among multiple people. This can be good, especially if the people you find share your philosophy and work ethic and are better at their jobs than you are.
Finding the right people can take a lot of effort, and you may have to go through a few to find the right one. It's best to test and fire early rather than invest too much time in trying to train or educate someone who is not up to your standards.
15. Take care of your primary asset
The primary asset of your business is you. If you become burned out or ill or your skills get out of date, your business will suffer. There are no sick days, there are rarely vacations, and deadlines don't care how you feel. Be aware of new developments in your field, but spend R&D time wisely - not only on things your clients want, but also on things that excite you.
Occasionally turn off the computer and go outside. Socialize with friends, spend quality time with family and loved ones, read a nontechnical book, and enjoy being human. Most importantly, when the going gets rough, take time to recharge and remember why you started this journey. The payoff of time off to refocus is tremendous.