So you want to go it alone? You're sick of the daily grind and office politics, and you think that you have the chops to earn more money through selling your skills. Before you take the plunge though, you need to be aware that being your own boss demands a whole set of skills that you might not necessarily have. This article will attempt to give you a glimpse of what you will need in order to succeed. It's the first in a series of articles detailing the lessons I've learned running a business, and some of the pitfalls that you need to watch out for.
This article will not guarantee success. It is not intended to replace all the hours that you are going to have to work in order to develop your client base and it only deals with working with clients.
The Role of Marketing
I hate to say this, but you are going to have to learn how to market your skills. Before now you've probably looked down on marketing and you may think that they have an easy job. It's time for a reality check here – marketing is a very difficult, demanding job that requires a set of soft skills that a lot of developers don't have.
The first thing that you are going to have to be aware of, when marketing yourself, is the fact that first impressions are paramount. I've seen far too many people shoot themselves in the foot thinking that they can recover from a stuttering start and that clients will be impressed by a mess of jargon. This couldn't be further from the truth. Clients are impressed by a confident, clear expression of ideas and intent. Here's a little test for you. Get somebody you know to ask you why they should hire you. You have 60 seconds on the clock – and go. It's not easy, is it? Fortunately, practice does make perfect – so tape what you say and analyse it. Listen for the umms and aahs, and the bits where you have entered “waffle mode”. Repeat the exercise until you can do this without any prevarication or hesitation and you have your opening “speech” for potential clients.
Next – marketing is about listening to what your customers want and then giving them what they need. If they don't see the need as being there, it's your job to get them to recognise that need. What client's normally want is rocket science software for free – it's up to you to work out what they need and then get them to come to you with this.
Successful marketing is also about the long term. Which do you think is better, getting the client to agree to one campaign that’s worth 50K or getting commitment to 10 campaigns that are worth 200K? While the first campaign may bring in more revenue in the short term, you are more likely to have long term success with the second.
David has a sit down meeting with a potential client to discuss their requirements. He comes to the meeting in jeans and a t-shirt and hasn't had a shave. The client starts to talk about what they want, and after 2 minutes Dave butts in with what he sees the design to be. He starts talking about XML, Java and Web services. The meeting lasts for 30 minutes and the client leaves never to be seen again. David, while being technically very capable, has failed in just about all the soft skills.
If you remember, we said that marketing is about presentation, listening and generating a need. David immediately failed by not presenting the right image. While his clothes may have had some impact, if he could have made a positive impact with the rest of the meeting then he may have salvaged something. If the client is corporate, they generally want to see you in smart clothes. Where he really failed though, is in not listening to the client. He was too eager to impress people with his knowledge of technology and buzz-words. Remember, if somebody is paying you to deliver something, they really want you to deliver something that is reliable – generally they don't care what the process is that you use to create it. When Ford sells you a car, their adverts don't feature the assembly line and insides of an engine.
The Expert or "Who's the Daddy?"
Do you want the bad news now or later? You aren't an expert. Repeat after me “I'm not an expert.” I've lost count of the number of people who blow it with clients because they treat the client with contempt. They assume that they know better than the client what they want, and how it should be presented. When you are talking to a client or a potential client then you have to remember that they are the experts in their own business. They'll generally have been doing it for a while and they have a pretty good idea as to what they want. This gets back to what I was saying earlier on – learn to listen to the client.
This may go against the grain, but you really need to meet marketing people. Listen to them and get to know how they think. Marketing people go beyond salesmen because they tell you how to establish the need for your company. Take this to the next level, and you soon come to realise that there is a whole level of “soft” skills that you need to master. You are becoming a manager, and this means that you need to think about issues that seem foreign to you as a coder.
So, how do you go about actually getting clients? Well, this is the Sixty Four Thousand Dollar question. The bad news is that there is no magic bullet for getting customers, but there are a few things that you can do to help yourself. The best thing you can do to help yourself here is to “network”. By this, I mean that you have to meet and sell yourself to as many potential clients as you can. Carry your business card with you at all times; have enough to give out to a crowd. Next, you need to persevere. You'll end up handing out 100 business cards, for a single solid lead. Don't be put off by what seems to be rejection and don't take it personally.
When you do get a client, you need to be careful how you deal with them. You need to establish a reputation for delivering what you say you are going to deliver. This is the good news. If your chops are that good, then you know how to estimate projects and you know how to code to timescales. There are certain things that you really should do, that you probably ignore using the latest and greatest “Agile” methods. One of these things is to draw up Acceptance Criteria early on in the project. Agree this with the client and you are well on your way to delivering what you say you are going to deliver. If you can't define the criteria that you both think the project will be accepted with then how do you hope to show that you have actually produced what you said you are going to. Another thing that you need to do is to lay down the scope right at the start of the project. You'll probably draw up a delivery schedule that shows that your early deliverables are all documentation; don't worry this is perfectly normal and is reassuring to clients that you know what you are doing.
Now – here’s the bit of advice that you won't hear often. Don't be afraid to walk away from a potential client. Remember that I said that you are working to establish a reputation; the worst thing that you could do is get saddled with a client who is impossible to satisfy. They end up taking all of your time and can do a lot of damage to your reputation if you're not careful. With a little bit of experience, you learn to spot the troublesome client. There are warning signs such as the inability to communicate their requirements, and a demand for endless clarifications, but you will have to develop your own “radar” for them.
Scope creep is bad – don't agree to do something if it isn't in the contract. It may only take you ½ a day to code, but it’s going to take a lot longer for you to test (you have remembered to factor testing and fixing into the contract haven't you).
The next bit is going to go against the grain for you. Don't jump onto a coding bandwagon, and don't get into a technology just because “it’s cool”. Being an early adopter isn't good for you – you don't have the time to find out the pitfalls and “gotchas” in new technologies. Let other people find out what works and what doesn't then learn from them. The only time I let the company move to a new technology is if the evidence is overwhelming that it is going to help the company to successfully complete projects faster without compromising our overall architecture.
Your Online Voice
Now let me talk to you about your online voice. This is the way you approach your online identity. The way you blog, interact on forums, email people – all of these things affect the way you, and by extension your company, are viewed by clients. When you say something online, this has weight, this affects how you are perceived by clients. As a company owner, you don't have the freedom to vent online that you have when working for others. This is one of the reasons that I don't link to my company or talk in detail about my company on CodeProject. It’s also the reason that I blog off the company site. Don't say anything that can be perceived as your company’s official position, so don't be controversial in anything that can be connected to your company. So my advice here is to get an independent blog where you can blow off steam without it rebounding on your company.
This is probably going to be the most complicated thing that you have to deal with in your early days trading. Establishing an identity is a difficult task that is going to take you a lot of trial and error in dealing with. Going back to an earlier point, you need to be able to identify what your company is about in a couple of sentences. The colours you choose for your website, the language you use on it, the logos and the business cards – these must all reinforce your identity.
Getting a Life
In the first couple of years, you are going to be working your ass off. Holidays are a luxury for other people – and your family is going to be relegated to pictures on your desk. Unfortunately, there is no shortcut to establishing your business and turning it into a viable going concern. If you don't feel that you can work 20 hours a day, 6 days a week then you really need to consider whether or not you want to make the shift.
The good news is that it does get easier. If you do the above properly, then the clients start to flow in and your portfolio picks up. You build up a reputation and this leads to new clients and with luck, this leads to you hiring others.
Saying that, it is important to have something that you do that has nothing to do with your company. Better still, have something that has nothing whatsoever to do with computers. You need the time to de-stress – family is good, so are hobbies. You need something that is going to stop you burning out before the end of your first year.
Final Thoughts - For Now
I hope that this has given you some food for thought. If you'd like to leave comments about what else you'd like to see addressed, I'll see how I can work them into the rest of this series. Due to comments and requests, I've changed the focus of the next article to look at the infrastructure you need when setting up.
Part 2 of this series is available here.