I've been doing some freelance software development in Ruby on Rails for a while and I'm currently thinking of hiring people to grow my business (I'm based in Shanghai) but going from a one person gig to a real company seems to be rather complicated...
Has anyone here any experiences making the transitions? What are the mistakes to avoid?
Somethings that you should you look out for before making hiring your first employee:
Best of luck.
I'd suggest first doing some simple research by asking your existing clients to see if they have a special point of pain that isn't being met and seeing if you + crew could tackle those kinds of problems. They probably think of you more as a single-project person so this might take slight changes in the way they think about you. Also, sometimes the problem is different than your skill level. For example, you may be an application programmer but they have networking issues so they don't automatically think of you. Ask them if they would consider you if you found competent networking experts and trained and managed them.
Second, I'd find out if these are the types of projects that require long-term contracts, for example, involving maintenance or being on-call to handle emergencies. Also, if these require staff to be on-site or remote. This helps gauge how much office-space, equipment, network, etc. you need to put together. Having your staff on-site is probably easier for you, but harder to manage remotely. On the other hand, by being on-site they can watch for any other projects and give you advance notice so you can put bids on them. Encourage clients to give you long-term (i.e. annual or more) contracts by giving them discounts.
Third, I'd watch out for the temptation to go from a project to a product company. Choose which one you're going to be and stick to it. If your company is a project-oriented company (i.e. consulting services) you will come upon situations where you will think a specific project is worth turning into a product. The problem is that projects are often client-specific and product development brings in no revenue for a long time. A better solution is to negotiate a deal with a client so you're building their project in a more general-purpose way and you retain rights to the software in return for a discount. That way you get closer to a product, but you're still bringing in revenue. Or else, start a whole other company and get funding for it so it can do product work, then license the software back to your projects and clients.
I'd also suggest not making the move to multi-person until you have at least 3 clients and 6 months of expenses in the bank. The first is if one project stops or client's business goes down, it doesn't sink your new company. The second is to cover staff while they're in-between projects. It sounds like a lot, but you will be able to sleep a lot easier once you're going.
My final suggestion: once you're going, take vacations every once in a while and leave your staff in charge. You will need the time off and by letting them run the show for a while, it helps them (and you) build confidence that the business can operate without you having to constantly be there.
Best of luck.
I was not sure whether you meant to start a consulting company (as can be understood from your question) or a software development company (as can be understood from your description). There are books on either subject.
For software development:
Grow organically over time. Once you have enough projects available to warrant hiring another person, do so. Over time, shift your main focus from the software development to marketing and to getting more projects, and leave the software development to your employees.
If business development is not your strong suit, hire someone who specializes in it, and pay them based on commissions. That way you will be able to grow and hire additional people and still work in your field.
Its all about marketing. If you can sell yourself to more project and sell the opportunity to your potential employees, you will do fine (the rest of the advice is similar to the software development, but in this case, its all about the marketing.)