This question is heavily influenced with my experience of an offline entrepreneur.
While hearing voices for teaming with tech-savvy cofounders to create a prototype or working technology I can't help thinking of it as a trap for an entrepreneur. Let me explain why.
First of all, I have drawn from my personal experience that it is better to be a sole founder of a business (for me). Nothing to share, no conflicts, no psychological games or need for special social and communicative tactics to persuade your partner "to sign this contract" or something else.
The second thing is the following: if you do not own (I mean you actually write code) the core technology of your business (web startup) you do not actually control this business. Developers can leave for numerous reasons and you will loose the business at all (or the technology can be stolen, or the developer will refuse to support or it, or to develop it further, or will develop it not in the way you expected - anything).
As you probably understood my position is that: "an MBA hires programmers to build a business from his brilliant idea and inevitably fails" (I have heard that it was proven when the Internet Bubble burst in 2000, isn't it right?).
So, with my new web-startup in the early development phase, I have a dilemma:
To develop a beta on my own and then hire experienced programmers (from beta sales profits) or to find a tech-cofounder/outsource from the very beginning?
The pros for doing it by myself are:
The cons are:
Well - it sounds like you're pre-disposed to go it on your own, have the ability to code, and have beta launch / revenue opportunities defined.
I believe that once you spend some time doing the code, you'll either have a better appreciation of the complexity of the effort and understand its value, or you will be able specify what task(s) are best handled by other parties & outsource them. (perhaps both).
I understand the desire to be the sole founder -- I was, for Smart Bear. Some people argue it's easier to have cofounders, and in general that's probably true, but going it alone isn't automatically wrong.
But then, I was actually capable of doing everything -- the code in addition to the rest.
You're asking whether it's wise to do a company by yourself when you cannot do everything by yourself. Sounds bad when I phrase it that way, right?
Your stipulation that "MBA hires dev is wrong, proved by the bubble" is completely wrong -- the bubble was wrong because the companies had no way to make money. Nothing to do with MBAs or developers or founders.
I do agree however that "MBA hires dev" is difficult because the MBA cannot ascertain whether the dev is any good, just like a non-doctor cannot ascertain whether a certain doctor is competant.
But then, for that same reason you won't be able to write particularly good code. If you believe the strength of your business is in marketing, sales, position, your domain knowledge, or anything else not involving having a good product, then by all means you should stand something up yourself and go!
If the quality of the product matters, then you need a real dev from the start.
Note I am NOT trying to imply that the quality of the product does matter! Many businesses were started with truly shitty software but executed well elsewhere. I'm not lobbying for one way or the other, just trying to inject some reality into the choices.
I'm going through this right now myself. I've never done web design or web programming before, but in the last couple of weeks, I put together a set of wireframes in PowerPoint, and set up a database hosting service and laid out a content management system in MySQL.
I'm currently putting together a simple text-based version of the site using PHP, which I'm learning from free online tutorials. I've learned how to set up forms to put data in the database and take it out to display it to the user.
Now, I have no expectation that I am going to learn enough to put together a polished product. However, I expect that I can put together a pretty well laid-out minimum viable product that should be sufficient to find investment or show a more technical co-founder that I am serious about this.
The lesson I've learned is that to become 80% proficient in something (like PHP or MySQL) may take me 1000 hours, but to become 50% proficient only takes me 40 hours. 50% isn't enough to build a finished product, but it's enough to know exactly what I need done and find people to do the rest of it.
One last thought here that is somewhat off-topic but entertaining: a less-than-scrupulous guy I know who owns a sign shop once told me that the key to being able to charge somebody ridiculous amounts of money is if they have no idea what it takes to get the job done. "Do you have any idea what it takes to put a welding torch on a crane to install that thing?" They don't, and he charges $1000/hr for the job.
If you can learn that 50%, you know exactly what it will take to do the job, even if you can't do it yourself, and it will save you a ton of money.
Sorry for sounding harsh, but this do-it-yourself approach sounds like an awfully bad idea when you are not an experienced software developer. Doing software development right is a task that requires knowledge, talent and experience. Therefore, chances are that the first prototype of your software might more-or-less work, but is written in a way that makes it incredibly difficult to maintain and expand for anybody else but you, probably even for you.
Besides that, you would have to invest a lot of time for a job that somebody else probably can do better and faster.
The pros for doing it by myself are:The "control" of the technology will be preserved regardless of whether you do it yourself or hire someone or take on a co-founder. If someone steals your intellectual property that is theft and you have recourse. It is not likely if you find the right person.tech directions better;
* the control of the core technology will be preserved;
* no trade-offs as when working with a cofounder;
* maybe technological awareness will let me understand the promising
* will check my ethereal ideas for reality compliance very early.
Additionally, having no experience with technology yourself there is very limited value in the technology you bring to the table...
The benefits of having a co-founder far outweigh the negatives. This comment is what leads me to believe you just don't want to work with anyone else. I don't see what "trade-offs" you would have. It is pretty commonly accepted that startups have better chances to succeed with two people over one person.
It is unlikely that your short-lived, newly acquired technology skills are going to give you an edge over someone who has been working in the field. In fact, you will have an even more limited and narrow view than most technologists.
I THINK you mean a reality-check, but again, in that case a partner is BETTER suited for this - you can keep each other in check.
The cons are:No argument on that point, but you missed so many others.technologies needed (although I
* I will loose time getting familiar with and learning all the
actually like all this geeky stuff and
it is not a problem to learn, - it is
much better to devote more time to
Customer Development, Marketing and
Sales from the business perspective).
Disclosure: I work for a Russian company that in particular provides custom s/w development services.
I would go the outsourcing route but hedge my risks. For instance, I would engage a trusted third party with the right technical background to help me select the outsourcing vendor, establish the processes, and then review the code and documentation produced by the selected vendor on an ongoing basis. In other words, hire a consultant to be my part-time VP of Tech.
Then I would make it very clear to the bidding vendors from the very start that the results of their work will be reviewed for quality and they won't get paid if their materials do not match the given acceptance criteria.
Maybe you just don't make a good partner, so you are better off by yourself.
When you start to get into the "geeky stuff", you'll either enjoy it and continue to do it or: