Probably at least once every couple of weeks, I get into (sometimes heated) discussions with other software developers about their careers. I see so much helplessness, so much hopelessness, and so much dependence on others and it’s all entirely unnecessary.
So, it’s time I said some things that need saying. It’s time to smash some ugly, easy lies so that beautiful, subtle (and often difficult) truths can flourish. It’s time for me to have THE TALK with you (no, not that one, this one). It’s time for me to tell you why you are absolutely nuts as a software developer not to be making progress towards self-employment. After more than a decade in this industry, I can tell you that the best time to have gotten in business for yourself is five years ago. The second best time is right now. Below are some very good reasons. It may sound like I’m bashing employers; I’m not. It’s just that their concerns and yours are increasingly not intersecting. As a consultant, that is fact number one in your mind; as an employee, it should be, but is easily ignored until it can’t be ignored.
- Your employer doesn’t care about you enough to make you safe. It’s sad, but true. Productive, friendly people get canned all the time. Sometimes businesses simply don’t have the money or work to keep you around. It’s just business, but it absolutely sucks to be planning ahead for a vacation, only to find that you’ve been downsized the week before you are supposed to go. Do you cancel your vacation and disappoint the kids? Do you go on the vacation and worry the entire time while trying to find a job remotely? And what do you do about the missing paycheck when you return? Sometimes the political situation deteriorates at a job to the degree that you’d be insane to stay there even if you could. Can you even leave?
- Your employer represents a single point of failure. Do you like living dangerously? You do realize that all of your eggs are in one basket, in someone else’s hands, if you are an employee, right? How many times have you had to kiss someone’s butt so that your life doesn’t get disrupted? Sure, you’ll have to do it sometimes as a contractor too, but at least as a contractor, you have a little more leeway in the terms of your deal. Whereas, your terms of employment can change drastically while you are at a job (I’ve been at a couple of places now where benefits and pay were slashed, people lost the ability to work from home, etc.). If a client decides to unilaterally change the terms of a contract that is already signed, you can take them to court (you won’t have to – they are aware that you can and reluctant to sow the dragon’s teeth for themselves). If an employer does it, you can take it or leave, and many times you can’t leave because circumstances would make it difficult to look for a job.
- Your employer does not care about your market viability. You are darned lucky in this industry if your employer will even pay for you to take any training at all, and you are practically a lottery winner if they will do so in a timely manner and/or let you train while on the clock. Instead you are expected to do so on your own time and on your own equipment. If you fail to keep up, well, eventually you’ll get replaced by someone younger who has the skills they need and hasn’t been around long enough to be a political threat for someone up the chain.
- Dante could have never conceived of cubicle hell. The modern workspace is destructive of productivity like leg irons are destructive of swimming capability. Do you want to forever be consigned to working on someone else’s ideas while sitting in gray, cloth-covered box, listening to some schmuck two cubes over loudly discuss a project on speaker phone, while getting pinged by emails about “I’m going to clean the fridge out Friday, so be sure and get your stuff out of there”? Do you like being judged on your ability to run while your environment has essentially fitted you with concrete shoes?
- When you improve code, your benefit in doing so is limited. You could be out the door tomorrow through no choice of your own; do you really want to stay late and make that code really eloquent and maintainable? Do you care to build Rome for the benefit of the Barbarians? If you were working for yourself, writing general-purpose libraries for use in your various projects actually provides value to you, rather than to the company you work for. We talk all the time of technical debt; let’s talk about technical savings. Are you building something that will serve YOU down the road, or are you building something for others?
- You still have to work all the time if you are an employee. Sure, I work pretty crazy hours at times as a consultant (especially as I’m trying to develop products on top of the regular consulting work). It’s rather nasty and I pretty much work 7 days a week (with reduced hours on Saturday and Sunday, usually). But be honest here. Do you check work email at home? Do you carry work home with you so that you can hit deadlines? You’re already living with the workload of a consultant – you’re just not getting paid for it.
- You can be paid for the value you provide, rather than the going rate in the industry. If I make you a million dollars for every $100K you pay me (provided that you can pay me the first $100K), how many times will you pay me $100K? If your answer was “all of them”, you are correct. The downside of this is the death of happy bullshit. If you truly don’t provide value, you will not be provided income. But if you do provide that value, you won’t be splitting it with all the people in “useless professions” in a big organization.
- In consulting (and most small business in general), marketing gets you customers and competence keeps them. In cubicle-world, this might be so, and might not. Frequently, office environments are not meritocracies, but a case study in the Peter Principle from top to bottom. Sell to those people who desperately need your help (desperation raises your rates if you’re savvy), rather than being the guy they try to pawn their work off on for free.
- You get a lot of help when starting a business. Microsoft, for instance, offers Bizspark to give you the tools (including Visual Studio) to allow you to get going during the early days. Lots of other vendors have free or low-cost options for startups. There really hasn’t been a time like now in a long time. The market is also good and hot in many locations (for instance, in Nashville), so you’ll have a little easier time securing clients if you start soon, rather than waiting for the next dip in the market.
- And the final reason. Some day, you’re going to take a dirt nap. Seriously. Do you want to make it all the way to the end, having always been under someone else’s thumb, always wondering whether you can take that vacation or do something big because you might get downsized after you make a down payment? It’s something to think about – death is always in the room. Memento mori.
Give it a thought. Starting a business can be a pain, but the rewards are ultimately worth it. I’m sitting at home, writing this during a gap between gigs at 9:30 in the morning. I have meetings with multiple clients later today, but I was able to schedule them based on when they were convenient for me, rather than some random time just after lunch when I’m sleepy. Is my income as good right now as it was before I became fully self-employed? No, but it doesn’t have to be. My computer-related expenses are all business expenses now. I commute less (except for that last gig) and I frequently take on projects that don’t require me to leave the house at all. I’m paid for my time, not paid to fill a seat. And when I have down time, I mix the search for more work with the development of things that will improve my income in the future. I charge a higher hourly rate to cover the gaps in work. Is it chaotic? Sure. Is it absolutely better than being an employee and knowing that the axe can fall on me at any time through reasons I cannot control? You bet ya.
And if everything goes to hell in a handbasket, I have a far better chance of seeing it coming than an employee who isn’t privy to the meetings the high-level stakeholders are having. Now, I’m sure there are loads of protests at what I’m saying here. Let me address a few.
- But I don’t know how to start a business! Well, start learning how. Start learning things you can use to run your own show. Start small and keep learning, with an eye towards what will help you later.
- But I don’t want to lose my health insurance / benefits! You will anyway. Consider them gone. Companies are cutting benefits right and left. Yours will be cut too.
- Not everybody can start a business! This is absolutely true, but also irrelevant. Are you telling me that you’re smart enough to figure out computers to the degree that you can program, but not smart enough to figure out where you can find clients and what services you can provide?
- But I have a good job! Yes, you do right now. And the next one might not be so good. Or the pay might be crap. Remember, that as a consultant, you can typically take a nice, juicy job. The reverse is not always true.
- But I’m scared! You should be. It’s scary getting something going and the only way to overcome the fear is to jump in and do it. And truthfully, it’s not as scary as that subtle itch between your shoulder blades that you get when you walk up on a water cooler conversation between your manager and someone else, and the conversation dies down right before you get in earshot. Am I getting canned? Yes, yes you are. Maybe not today, but the hammer will fall and you might as well start building a lifestyle now that is hammer-resistant.