I have a reasonably successful SaaS, which is pretty much a one-man show; I always wanted a co-founder but never found the right person. It's been running for a number of years now, growing consistently (if a bit slowly).
I've decided that I'd like to assemble a small team of programmers to continue building the product so I can focus on strategy & marketing - two areas which have, in all honesty, never received any attention so far. I also hope such a move would help combat the burnout I feel having been a solo operator for so long.
The challenge is that I'm unlikely to be able to hire great programmers for 2 reasons:
So it seems likely the best I can hope for is 1-3 programmers working remotely, likely from lower cost countries, and probably of a somewhat average standard.
The question, of course, is it worth it? Do you think it's possible to marshal average programmers to add sufficient value to a product whilst retaining quality? If I can build a great process/system, perhaps can they add value within it? I intend to be very hands on in trying to build this team, I certainly don't intend to "set and forget".
To summarize: I'm seeking to increase the speed at which the product can iterate/innovate and free up my time for other, up to now neglected, aspects of the business.
Is that possible for a software company when you can't hire great programmers?
First of all, you won't be able to distinguish a great programmer from a good programmer or a good programmer from a lousy programmer until it's too late.
Second, building a dev team (and especially a remote team) won't free up your time unless one of them takes on the lead dev role. Increasing the team size increases all sorts of communication and administrative overhead. It's not a free ride.
Third, team building is very high risk.
So, what I'd recommend is you continue on the solo course you are on. With that kind of revenue you're not under any pressure so you have the luxury of sticking with the coding yourself, controlling risk and being deliberate in your growth. What I would do is get the code base stable - no more features. And then I'd focus on a scalable architecture and get that stable. Plan for 10x your current load and capacity.
And then, I'd put aside the engineering hat and focus on the marketing aspects. Pay contractors to shine up the website, talk with a marketing firm about strategy, write a press release, and do whatever your product niche requires.
That kind of shifting of gears can be a relief from burn out.
Or just find a buyer for the business right now. With that kind of positive cash flow, you could very easily sell it for a few hundred thousand dollars. Take a trip to San Jose and go to a few software entrepreneur meetings and you'll have a buyer in no time. Chat up the guys in the suits.
Cheers for your success and good luck!
This is coming from a programmer.
Usually great programmers won't work for you unless you're pretty great yourself. And you won't know what "great" is until you're at least good enough to know that most of what you've been writing is total shit - until you've seen the difference between good code and great code.
Beyond that, great programmers, a lot of times, just won't want to work on boring projects. And let's face it... writing the code that builds the average startup has a lot of monotony. I think you're better off establishing some rules for the project, and hire people who can work within that framework. You don't need all stars (except perhaps the guy creating the architecture for the system), you need people who can:
Do you need more programmers or do you need a marketing person?
I think you might want to evaluate your priorities. If you are the brains behind the software, perhaps what you need is to target a marketing person(s) who can help you with your product.
Have you considered affiliate networks that sell your software for you? What going to a college and having a marketing class build a marketing plan for your product that you could then hire 1/2 of the students to implement.
If you are better at managing the product, I think you might be better managing the product than managing the marketing.
I prefer the 'star team' model to the 'team of stars' model. People that are 'Great Programmers' can be hard to find and keep, and may not be that great for your product. Hiring (and keeping) some reliable people you can coach in your style/product/market might be easier. And although employees bring more work and other issues, you can grow your business or take a few weeks off each year.
It's a difficult choice. The main problem with the "average programmer" is usually not the quality of their work, but the lack of drive/initiative/commitment/overall-vision.
I think you should try to get one good programmer and one junior programmer. You can get a good programmer if you negotiate a deal with some very good freelance; usually that involves giving him the freedom of working (at least partially) from home, not full time (2-3 days per week), and agreeing on a remuneration part in salary, part in revenue share (or tied to an improvement in a measurable metric: revenue, profit, number of users, ...). For a freelance, even a star freelance, that can be a good deal because it doesn't restrict their ability to get more customers and/or work from home; for you it's a good deal because you can get a developer you'll never be able to afford as an employee (for the simple reason that good freelancers make 2-3 times more money that good employees anyway).
The junior developer is going to be, on the other side, a full time employee, completely managed by the "good developer".
Final note: don't go for outsourcing. It takes a lot of time to manage developers in another country and, especially if you contract your work to an outsourcing company, you won't have any control on the quality of the developers. Try to meet your developers in person once in a while, and establish a relationship with them.
Yes, it is!
First thing, I would say is that you could hire a great programmer, by offering them stock options. In this way you would get both a co-founder and a great programmer.
Second, is that offshore programmers can be great, even if they are low-cost. I use VWorker.com myself. Getting value from offshoring is something that takes a lot of experience, though, so consider the time you spend learning this an investment into cheaper programming capacity.
Third, what you could do, is to hire an average programmer, and have him/her administer the VWorkers. This way he can draw upon cheap excellent programmers and test the code according to your needs.
95% of the software in existence today is written by "average" software engineers. The world still revolves. Yours will too if you won't get a super-star, but a normal average software engineer. Average isn't necessarily BAD and if you cannot afford a $180K/year engineer - get a $65K one. It's not like your business will run to the ground because of that, but it may if you put off work and don't develop your business because you just don't have the time to implement everything you need by yourself.
A lot depends on the industry you're in and the product you're offering, but I'd say that in general, average programmers are not worth it.
The cost of the average programmer exceeds just the salary you pay them and the other expenses incurred. The true cost shows up in the long-term. These programmers often write code that is less maintainable (and hence more expensive to upkeep) or make bad tradeoff decisions.
I would either stay solo, hire great programmers, or invest in other parts of the business (like sales and marketing).
Yes, average programmers do take some of the load off you. But you can't expect great things from them (proactive problem solving, innovation).
It is always more productive to have 1 amazing programmer than 4 average ones! You get more done that way! This has been my experience.
But if it's just support we are talking about, you guide and they implement (with your help, of course), then average programmers would do.
Another challenge you'll face is that a great programmer may not want to spend a day re-organizing layouts when that's necessary or doing other low-level tasks. How would you rate your own skill level? How much time do you spend on development?
I have no idea how complex the product is but you may be able to have a great programmer working on a part-time contract basis to handle high-level issues, and then a full-time programmer (or part-time, or offshore) who is comfortable working on lower-level stuff most of the time. If necessary, you or the more experienced developer can do testing and code reviews to make sure that it's up to standards without having to spend all the time developing it.
Over time the less-skilled programmer will get to know the system better and be able to handle more challenging tasks (or maybe even become a great programmer), and at the same time you'll control your costs and avoid putting anyone in a role they aren't good at. I'm a big believer in development quality, but honestly, there are points where it doesn't matter as much; you don't need someone who's contributed to the HTML5 spec to apply new styles to a page.
This assumes you want to outsource development completely, but you may want to stay involved in one of these roles. I found that when I started getting help it was more fun for me to handle the really big challenges where I could do things much faster due to my experience, and spend less time doing things that will take roughly the same amount of time no matter how much you know.
On the other side, should you outsource strategy and marketing? Once you try it you may find that you're better at one of the development areas. As the business grows, you should stay close to what you do best, and hire for the rest where the investment makes sense (maybe it's not worth hiring someone for strategy yet but it might be in the future when the potential revenues grow). For now it's good to take on the strategy and marketing yourself so you can see if you are good at it and so that you know it well enough to hire someone who's good at it if necessary.
Disclosure: I am a developer.
Great programmers don't want to work for a tiny bootstrapped company in a small niche.I find your assumptions a little off. I may not be a great programmer but everyone I've worked with has enjoyed working with me and I've never had trouble finding work. Currently I'm working 20 hours per week on a small app in a niche area that is interesting.
Great programmers cost more than I can pay.
There are lots of different types of people. Sure, you may not be able to afford a great programmer full-time, but hiring one for 10-20 hours per week might only cost you $4000-5000 per month which you can easily afford from your revenues. A great programmer would probably get more done in those short hours than a poor programmer would and then the programmer would have time available to pursue their own interests.
There really aren't enough part time positions in this field and I've heard several people wish their were more opportunities for part-time work.
This could be a win-win situation for you where you are hiring someone of high caliber that is within your budget.
Adding a new programmer of any standard will slow down progress for some amount of time. A better programmer will learn faster, but will also find more things in your existing code that they want to fix (or just do it their way).
What you need in a start-up is a self-motivated and proactive programmer that understands your priorities. In the short term they must be able to work independently and in the long term, as your business grows, work well with other programmers.
If that person is a great programmer it will make things easier later as there's less likelihood that you'll need to bring in someone above them.
I guess you also need to ask yourself whether you yourself are a great programmer and whether you could recognize another one.
So, what you're earning after your $2k worth of expenses $14k a month and you're saying you can't afford good programmers? Where is the $14k going a month you're earning? You have more cash inflow monthly than most of us here can dream of from our day-to-day jobs.
Anyway, back to the question at hand. Good programmers don't cost nearly as much as some people think. I've hired some phenomenal programmers off GetAFreelancer before, and they didn't cost that much.
So it's possible to hire cheap programmers that give an above-average performance, you've just got to dig; read feedback, reviews and look at previous work they've done.
The challenge is that I'm unlikely to be able to hire great programmers for 2 reasonsOn the other hand, you're offering telecommuting. I may want to live in rural France, for example, where there are no other programming jobs, and be willing to be an excellent programmer for a modest salary in exchange for being allowed to telecommute.
I think you need to answer a few questions first:
Also, start them out as independent contractors for 3-6 months, so that you are not stuck with them if they don't work out.