However, the bean counters and glad-handers who stand between you and a paycheck often ask difficult but irrelevant question, and if you don't worry about explaining yourself to them, you make it much harder to get that paycheck.
You get a lot farther with the ability to solve real-world problems and MBA-appropriate skills than with just the ability to solve real-world problems, if only because there is such high demand for technically inclined people with people skills and business skills.
Some years ago I was in a comparable position, only I was working full-time at a salaried job when I was approached to be a partner in a new startup. The elevator pitch and cocktail-napkin numbers were engaging, and it looked like we could bootstrap it with resources we already had on hand and be profitable within a year.
Except that six months in, we had no business plan. Now, I am not an MBA type, and I think that the value of the business plan is more that it's a self-check: if you say "Based on our projections, we should have 100,000 users and be realizing $10,000 a month in subscription fees and ad revenues by December 2012," and in December you have 35 users you know something is wrong; and if in December you see $1.2 million in revenues then you know you're doing something right and you'd better start doing more of it quickly.
Without a business plan on paper, we had no way of gauging even that the founders were on the same page as to what "success" meant, let alone whether we were succeeding or not. After six months of asking for this, I said, "I can't work a second full-time job on spec, and my business questions are not being taken seriously because I'm just the guy who knows web servers and streaming video." And I walked.
You might try an approach like that: pick up a basic business textbook and ask questions. When do they expect to see revenues? Do they have an exit strategy where they make themselves attractive to a large company and get bought for kerjillions of dollars? Do they have a non-exit strategy where they bootstrap themselves to profitability? If they can't answer that question, get out before the paychecks start bouncing.
My other experience was with a startup. It was five non-technical people - three who had lots of experience in the problem domain, one who had experience in business development, and one who had experience in data processing software development for insurance companies and bill collectors. And the goal of the startup was to put a certain experience online. The three experts in the problem domain were full of (and I say this without irony) excellent ideas as to what the software should do.
The principal structural problem that we ran into over and over again is that the only partner (and thus the only voice that was taken seriously) who had any experience in software development came from a domain where the business analysts would issue a mostly-clear set of rules and it was the job of the programmers to turn that into COBOL. So their first approach was to hire a consulting company to build the product for them. That was an almost completely unmitigated disaster: the only real benefit was that it let them get a product off the ground and start realizing some revenue. This was offset by the fast realization that the consulting company was milking them for all they were worth because the consulting company didn't expect them to last, which then led to a very acrimonious parting of the ways followed by lawsuits. And then they hired their own developers.
So the pattern we fell into, which you will probably find strangely familiar, was that the five partners would gather in the conference room once a month and come out with with two or three good solid ideas. They would then instruct the developers (two coders, a web designer, and a database analyst) to make it happen. We would start on it, hampered by the horrendous infrastructure that the consultants had left (but there was no time to address technical debt). We would get maybe halfway through implementing one of the ideas, while putting out fires and serving as tier 3 tech support, and then the next monthly meeting would happen.
That was the job where I learned to give development estimates in person-days on task, rather than in calendar days, and where I picked up the habit of automatically appending "assuming you don't change the requirements in the interim, because that will make it take longer" to estimates.
So what happened there? Well, I was the first developer to leave. Within a year, all of the developers had left, the partner in charge of software development had also left (no doubt with a massive golden handshake for her efforts) and the company had been folded into one of the CEO-partner's other companies, possibly with the recognition that it would never be fully profitable.
Based on my experience: if there is no technical person competent in the development style you're working in among the partners, if the only technical people are employees rather than partners, stay away. There may be exceptions, but generally partners have a lot more credibility with other partners than employees do, and if you as an employee are saying "this will take X person-days to implement and will not be profitable" and a partner is saying "this will be trivial to implement and I read in Infoworld about a company that did this and made ten billion dollars a day!" then the partner will be believed and you will not. No matter how many times you are right and that partner (and Infoworld) are wrong.
Summary of the summary: no technical partner means you shouldn't have signed on in the first place; no path to profitability and no exit strategy means you should get out while you can.
A good programmer who can find a job in an urban market can earn $120K a year. But there are a lot of programmers who can't find jobs, and that puts significant downward pressure on salaries; and there are a lot of programmers in more rural markets who are willing to telecommute, and that puts significant downward pressure on salaries as well.
I've taught introductory computer programming in Scheme and Pascal. (I think I just dated myself.) And I find myself concurring with this.
People who taught themselves to program often have a hard time understanding what novices find difficult. The one that gobsmacked me -- and I only ever ran into this when teaching Pascal -- was twofold: one, that the computer does things in the order they are in the program, and two, that the definition of a function or procedure does NOT execute the function or procedure. Something about Scheme made the distinction between "we are defining a function" and "we are executing a function" much easier to understand.
And I concur about the terseness of Python. I've been using Perl professionally for, um, 15 years now (and I just dated myself again). I've written a few toy programs in Python, enough to establish that it's a worthy programming language.
But the pedagogical problem is that there's a lot of depth under the surface of Python (Perl, PHP, Visual Basic) - a lot of things going on that the experienced programmer understands and that the novice programmer needs to. It's often easier to learn in languages that have less going on, because the programmer needs to do more explicitly.
Bzzzt. Bad use of statistics, because it's not a matter of chance. The ideas that fit best with YC's ideas of what a Y Combinator startup should look like and look like they have the best shot at succeeding win.
This is not a matter of chance. If your idea lines up perfectly with YC's vision, you get in, no matter how many other people apply. If your idea is completely unworkable for YC's goals (such as: you have a single founder, you're planning to run the startup indefinitely rather than sell it ), you may as well not apply, because even if there are 25 slots and 20 applicants you'll probably be rejected.
You don't know what you're talking about. We've funded several single founders, and we actually prefer people who want to run the company indefinitely. We make very little from early acquisitions.
If your lawyer okays it, then it's fine. If you don't have a lawyer, why are you asking us? Ask your lawyer.
Honestly, the questin is like asking "Is it okay to copy code from another project?" And the answer is the same: if it works the way you want it to work, and you won't get in trouble for using it, then go for it. The way to determine if it works the way you want it to work is to consult a lawyer.
Don't think of legalese as if it were just marketing BS; think of it as an odd programming language for the legal system. When you need Python code written or evaluated, you become or hire a Python programmer; when you need legalese written or evalauted, you become or hire a lawyer. It's as simple as that.
No, it means that building the site is not sufficient, no matter how wonderful it is, and no matter how much people who use it love it -- you also need to find a way to tell people about it.
One of the most brilliant examples I've seen is ravelry.com -- there's an existing online community of knitters, and the people behind ravelry.com invited a few people to test, and gave them invitations to share, much like gmail did. Shortly thereafter they built a registration queue so that they could scale up gradually. Word of mouth did the rest, and twenty thousand people signed up, either for accounts or on the waiting list.
If you think you'll be unhappy doing the actual work that you'll be doing when you take the job, the job isn't worth it. There's no difference between being employee #9 or being employee #99999 in that regard.
Also, if they're successful enough with their current languages, you willnot change them. Taking a job saying "I know they use X, but I'll talk them into using Y instead, and then I'll be happy!" is like entering a relationship saying "I know she does X that drives me nuts, but I know if I pester her enough, she'll stop it, and then I'll be happy!" Doesn't work that way.
One of the things you must realize to make sense of a lot of PG's advice is that the default business model for YC companies is to build a promising product so that venture capitalists will give you money or that a Yahoo/Google/Microsoft will buy your company.
For those two goals, which are based as much on impressing investors as on anything else, your chances are much better if you're not a single founder. Investors are much happier investing in a team than they are investing in a single person. To that end, PG's advice against single founders is spot on.
The core of your business should be in-house. If the technology sits at the core of your business -- as it does for most web companies -- then outsourcing it is foolish. If your business is actually something else, like plumbing, and the tech just supports it, then you may as well outsource it; it's a decision for a cost-benefit analysis.
And yes. You heard me right. I've talked to a number of so called internet biz dev "pros" and they actually advocate outsourcing site development to offshore places and concentrate on marketing. I was like, WTF? Now i know why the successful web startups all originate from hackers. These internet biz dev "pros" just don't get it
The most uncomfortable thing is that my non-techie co-founder actually agrees with this thought. Maybe it's time for me to find another cofounder.
You can really tell the diff between an outsourced site and a non-outsourced site. An outsourced site will most likely be .aspx (India's fav), have a rigid design/structure. Eg. http://scriptovia.com
An in-house version usually has its own unique design/identity Eg. scribd.com
Most programmers don't know how to develop software very well. You shouldn't be surprised "biz guys" are totally ignorant. Most non-programmers think you can have marketing and design people come up with "specs" and then hand it off to have it "programmed". That almost never works and yet it's by far the most common method. People who think this is a good practice should be no where near the helm of a technology company.
Some web companies are not technology companies though. I think the "biz guy" approach works for those -- occasionally. Digg was a cheap project on elance. The success for that site was more about a TechTV/Kevin Rose community. MySpace is similar.
Right, but stupid business types don't distinguish between "web startup" and "non-web startup." You might be able to make headway by talking about core competencies and business expertise.
Outsourcing programming tasks is a very reasonable thing to do when the core of your business is something else and the programming is just supporting that. If your business's core expertise and value proposition is that you have highly skilled plumbers on call 24/7, then insisting on developing the website and billing software in-house is a waste of effort. But when the core of your business is the software, outsourcing it is foolish. If your business's core expertise and value proposition is that you have a location and scheduling algorithm that will guarantee you get an affiliated plumber at your house within 30 minutes of your request, then the software to support that should be developed in-house.
This is something that good business guys will understand.
However, the bean counters and glad-handers who stand between you and a paycheck often ask difficult but irrelevant question, and if you don't worry about explaining yourself to them, you make it much harder to get that paycheck.
You get a lot farther with the ability to solve real-world problems and MBA-appropriate skills than with just the ability to solve real-world problems, if only because there is such high demand for technically inclined people with people skills and business skills.