There are hundreds of consultants out there doing the exact same thing you do. They’re hustling to sell their services to the very same people you’re trying to sell to. They don’t live in New York city or San Francisco and can live on $15/hour. How can you, a good developer, compete with overseas programmers or newbies?
Let’s be honest. If the client is evaluating potential developers solely on price then you probably don’t want them as a client anyway. That’s not to say that price should be ignored because a client that’s not frugal with their money is a problem too. But, it is possible to win a bid even with a higher end price.
So how do you differentiate yourself from the cheap programmers? The first thing to have is a page on your website that shows previous projects. This shows potential clients the type of work you’ve done before. You have to be careful about violating any Non-Disclosure Agreements you have, but for the most part you don’t have to get into specific details about a project to portray the type of work it was.
If you’re just starting out, your previous projects page is going to be sparse. Another drawback is when your previous projects page doesn’t show the skills the client is looking for. Unfortunately, the only way to get around this problem is to be upfront with the client and let them know you’ve done the research and have a plan.
Do you have off-site storage of source code? If you’re working out of your house (who needs an office anyway?) you should probably have automatic backup of source code to an off-site facility. In the event of a disaster like a flood, fire, earthquake or someone breaks into your house, this is a simple and inexpensive way to protect your work.
We use a Subversion host that gives us gigabytes of storage that amounts to hundreds of Xojo projects files along with documentation and other supplementary info. The host itself has offsite backup storage and hourly backups. Does this sound paranoid? You bet it does! Your code is your money maker and the client isn’t going to be willing to fund several more months worth of work because your hard drive crashed or your laptop was stolen and you have to recreate your work. They don’t care, they just want the project done.
Bug tracking systems like Bugzilla, Mantis and many others are good open source software applications that make bug tracking cheap and easy. Using a bug tracking system is light years ahead of working strictly through email, if for nothing more than the documentation features and audit trail features. The client can log into the system and see a bug’s status and add additional information. You, as the developer, can request additional information, close a bug, or merge it with another one. A good bug tracking system is a must on large projects or projects with multiple developers.
Oddly enough, the other thing that can differentiate yourself from other developers is your contract (you do have a contract, right?). A good contract is not only protection for you and your client legally, it is also a way to document what you will and won’t do. It’s the first step into managing the expectations of the client.
Contracts can be a pain to create. Start with a standard contract. I’ve been pretty impressed with the documents at www.docracy.com. Once you have one you like you can add to it. We use a standard boilerplate contract that is fill-in-the-blank for the basics (name, address, etc) and has general responsibilities for us and the client. We constantly refer to Appendix A that lists all of our deliverables (source code, installers, documentation, etc), client deliverables (graphics, timely testing, etc), a brief description of what the code will do, and the payment terms.
Price is important and you’ll lose some clients because of it. It happens. But using some of the tools and techniques we’ve talked about you can differentiate yourself from the cheap and inexperienced developers.
What things help differentiate you from other developers?