Okay, this is not a typical question, but applies in a specific case. Starting out as a freelancer, most of us spend a lot of time in picking up necessary skills and building out a set of happy clients and drawing a decent, even if not steady, income.
Now when we want to take up more work, naturally the first thought is to hire people - but its such a pain, if you ask me - depending on other people to do the work, taking up a project (maybe on fixed price) but having to pay a salary to your employees, keeping track of their work timings, training them, etc, its just too much work. Still I see a lot of people have successfully transitioned from being Freelancers to small teams, and then bigger teams fairly easily - at the same time, many, still cringe at that notion.
What do you think is needed to make that jump - from being a freelancer, to actually being a development company?
Though I've no experience on this, I'd like to take this opportunity to recommend a book I've been reading that was highly recommended for people getting in to start-ups.
It is: Eric Sink on the Business of Software An absolutely amazing insight to software start-ups and addresses this very issue in one of the chapters. To summarize from the book, put off hiring people for absolutely as long as you can. Only employ people you absolutely trust, and turning away a good developer, is better than hiring a bad one.
Great book, thoroughly enjoying it.
Owners don't think or act like managers and managers don't think like technicians. You have to give up on the notion that you write better code than anyone else on the planet.
Apply your knowledge to design a company that minimizes these issues. You don't have to do all of these tasks yourself.
Where did you come up with the idea that this is easy for anyone? I guess after you've worked on something for several years it does tend to get easier.
Running a professional services firm is a challenge. This http://www.amazon.com/Managing-Professional-Service-David-Maister/dp/0684834316 was helpful in clarifying the issues.
I have done this and my technique was to first recruit a summer intern. They are cheap and allow you to fail cheaply and quickly. My first was awesome, and I offered him a job when he graduated.
I still did 75% coding and failed to make a viable company because I couldn't become a manager and salesman first and techie second. I work for someone else now and I'm ok with that.
I suggest you create a middle point between being a freelancer and being a develpment company. In this new stage, you wouldn't hire people; instead you should make yourself a grill of development companies of asorted sizes, prices and work schemas.
With a database of developing providers, start giving contracts to them but not as "they will do everything" but as "I will agree with you in some guidelines of what would be the development process, then I'll go through the inception stage along with you and then you will take charge of the project". You will be the guardian of the agreement terms (schedule, budget).
If you work this way, the time will let you know how your own develpment company should work, what kind of people do you need and probably, you will be able to talk great programmers and tech-leaders (already known by you) into going along with you in your enterprise.