Ask YC: So, why are you doing a startup?

25 points by hhm ↗ HN
This is a simple question: why are you doing your startup? why did you quit your job, or maybe even why didn't you get any? What is your motivation for doing this?

Mine is a personal motivation: I want to do something worth, something interesting. I don't want to look back and see I wasted my time doing worthless projects for money. I believe we have to do some kind of (Spanish) "obra", just like writers, musicians and scientists do: we have to be able to look in the past and say: "I did X, Y, Z, and this has my signature on it".

So, why are you doing a startup?

86 comments

[ 3.3 ms ] story [ 148 ms ] thread
her: "wow that's a really great site"

me: "yeah, I think it's OK"

her: "wonder who did it.."

me: "well, me and a couple of guys.."

her: "take me to bed you stud.."

:-)

That's what my girlfriend says to me all the time...
Got downmodded because people didn't believe you?
no i think it may be because I cant speak proper english...lol
Mine says that she is jealous of my computer, that I spend more time with it than her, and she doesn't even let me use it at night when I could be sleeping next to her. She's going to kill it one day, I know it.
OK, I was lying before...but seriously, my girlfriend really says this!
lol.lol "too true my bro, too true"
When I took my laptop to bed my gf said that she is not into threesomes.
After showing my girlfriend this thread she said wants to start a news.yc girlfriends club...
That could be an interesting startup :)
I felt I had a better way to do something, and that it would be wrong not to find out if I was right.
Building something cool and useful is just doggone fun!
Because the guy who wrote this:

if (MonthNbr == 1) {MonthDesc = "January"} ;

if (MonthNbr == 2) {MonthDesc = "February"} ;

if (MonthNbr == 3) {MonthDesc = "March"} ;

if (MonthNbr == 4) {MonthDesc = "April"} ;

if (MonthNbr == 5) {MonthDesc = "May"} ;

if (MonthNbr == 6) {MonthDesc = "June"} ;

if (MonthNbr == 7) {MonthDesc = "July"} ;

if (MonthNbr == 8) {MonthDesc = "August"} ;

if (MonthNbr == 9) {MonthDesc = "September"} ;

if (MonthNbr == 10) {MonthDesc = "October"} ;

if (MonthNbr == 11) {MonthDesc = "November"} ;

if (MonthNbr == 12) {MonthDesc = "December"} ;

is a retired millionaire while I'm still cleaning up his mess.

I think I can do better.

But really, is that it? Are you in a startup for the money, or is there another motivation?
Money is not a bad reason.

With money comes freedom in aspects of your life, you no longer would need to work a normal job to get by.

I don't think it's a bad reason. But from what I see in this site, I don't think it's the main reason for most hackers to do what they do. That's why I ask.
If your wants and standard of living balloon, you'll always think you need more money to gain freedom.
Absolutely.

The key to getting freedom financially is living well below your means. That starts before you get rich, and has to continue at that point.

Money can either be a tool used by you to build freedom or dig yourself in a little hole.

What about the freedom to donate a couple of billion dollars to HIV research or whatever else you fancy (ending world hunger etc)?
No, I'm not in it for the money. The money is a barometer of something else. If someone can make money in this business (not that hard to do), then something they wrote is successful at some level.

I can confidently say that 90% of the code I have ever had to maintain is total garbage. I am often stunned that it even runs and I used to wonder how it ever made it into production. (I don't wonder any more, now I know, hardly anyone QA's source code anymore.)

(Another example: Today I refactored 1200 lines of code that edits credit card numbers down to 46 lines, removing 4 bugs in the process. This has been running in production for 18 years. This is not a joke.)

I realize that what I see is not a random sample of all code. I never get to work on the good stuff; no one does - that's the whole point.

My work, OTOH, has been wildly received by my customers and users for many years. I love what I do and love providing value to others. I can't imagine doing anything else.

I am currently working on my ultimate start-up, one that produces so much value that no one ever has to put up with garbage like my OP. For some reason (my internal metaprogams or something), I am much more highly motivated by seeing someone else's garbage doing well and thinking, "I can do WAY better than that," instead of people saying, "That was good." I don't know why.

Also, it's my experience that most people do not see the possibilities for truly excellent software (present readers excluded, of course). They believe they have to put up with my previous example. I can't wait to show them otherwise.

My OP was somewhat in jest, but not really. I hope you now understand why. Thanks for asking.

Thanks a lot for your interesting reply. And: "I never get to work on the good stuff; no one does" is true most of the time if you don't do a startup, or work by your own way. Or maybe if you work in some cool lab?
(comment deleted)
http://steve-yegge.blogspot.com/2006/07/get-famous-by-not-pr...

"Can programming make you rich? Well, let's figure it out: think of all the fantastically rich programmers you know. Not a very long list, is it? And did they get rich by virtue of being incredible programmers?"

"A startup that manages to get acquired doesn't have to have had great code; they simply had to either establish a lead in a new market, or put on a damn good road show."

It's worth noting that the programmer who wrote this string-based numerical rounding procedure:

# round to one decimal place and

# separate into whole and fractional parts

parts = str(round(star_sum/num_raters, 1)).split('.')

whole = int(parts[0])

frac = int(parts[1])

if frac < 3:

___frac = 0

elif frac > 7:

___frac = 0

___whole += 1

else:

___frac = 5

# recombine for a star rating rounded to the half

stars = float(str(whole)+'.'+str(frac))

is running a pretty famous startup.

Please do tell.

(All motivators are appreciated.)

That code belongs to Leah Culver of Pownce.

http://leahculver.com/2007/04/19/star-ratings/

lol, thanks.

Anyone who thinks they can do better than that should.

(comment deleted)
(comment deleted)
(comment deleted)
Thanks, after reading that I no longer resent her beauty.
The semantics of that are no different than a case statement. (Unless this is in a performace-critical loop, and you'd gain something though a compiler optimization of the case statement.) You're equating using case statement syntax to good programming? That's the best example you have of a "mess?" That makes me suspect that you don't think about programming at a very high level and that you like making largely arbitrary changes to code for (unacknowledged) ego-driven reasons.
"You're equating using case statement syntax to good programming?"

No. I'd prefer something a little closer to:

Months = ['January','February','March','April','May','June','July','August','September','October','November','December'];

MonthDesc = Months[MonthNbr - 1];

"That's the best example you have of a mess?"

No. Just what came to mind.

"That makes me suspect that you don't think about programming at a very high level"

You suspect wrong. Don't suspect. Ask and find out.

"you like making largely arbitrary changes to code for (unacknowledged) ego-driven reasons"

If only I had the time, that would be my dream come true!

Array indexing is just another way of getting it done. Often a case statement is going to be faster. 90% of the time, it just doesn't matter. If you're getting paid for doing such useless code changes, you might as well get paid for surfing Y Combinator news.

Perhaps that's why the original programmer is a successful founder, and you're fixing the code.

> You suspect wrong. Don't suspect. Ask and find out.

Don't have to ask. You actually think minutiae at this level is interesting discussion. That's evidence against you.

I actually think cutting 12 lines of code down to 2 is worthwhile.

He could have posted an example of 600 lines of code that should have been 50, but I'm glad he didn't.

Do you really think "faster" is what's most important?

In any of these cases, we're in core, where measurements are made in nanoseconds. So it just doesn't matter. Anyone trying to squeeze a few nanoseconds out of anything is wasting their time.

Now let me tell you what DOES matter. Ready?

My back of the envelope solution is 15% as much code as the original. To do the same thing. THAT is a big frickin' deal.

If you've ever spent time building, deploying, enhancing, and maintaining anything of substance, then you already know that, right?

Never said the original programmer was a successful founder. I said he was a retired millionaire. Not hard to do after 40 years in this industry. Or in his case, 1 year's experience 40 times.

I'm fixing bad code because there is a stunning demand to do so now. Because of guys like the original programmer. Which is great. Because it demonstrates the demand for the startup I'm developing.

By the way, I don't decide what is interesting discussion here. The whole group does. Apparently, someone other than you thinks that what I have to say is interesting.

> Do you really think "faster" is what's most important?

As I said before in the thread, over 90% of the time, no. Actually, more like 98%, no, so we are in agreement about nanoseconds. I only included the quip about performance for completeness.

True, the array indexing code is much shorter. That can be worthwhile. If your project has gotten to the point that these sorts of things are actually worth your time pursuing, then you're doing very well.

But that would mean that all your bugs are fixed, there are no more pressing architectural issues, and there are no highly demanded bits of new functionality to implement. In other words, your project would be practically dead.

Reducing a 600 line subsystem to 100 lines would be a big deal. Reducing 12 lines to 2? Nope. It runs. Reducing 12 lines to 2 in 500 different spots around your codebase? Well, if that's the case then I'm sorry that you have to put up with that all over the place, but at least it's correct. Again, if your highest priority is cleaning up stuff like that, then you probably have it easy. Too easy.

I realize we're beating this to death, but so what.

It's never my priority, it's always my customers' priority.

Here's my life right now:

Customer is opening new warehouse in 2 weeks and calls me to change whatever software needs changed to split orders to print in the appropriate warehouse. I agree because I'm a masochist. I find 15,000 lines of code to do what I (and you too, probably) could have done in less than 1000. Most of it was clearly written by someone who had no idea what they were doing, much of it is never accessed, much of it has never run properly, and I have to do something. I rewrite what, in my professional opinion, must be rewritten. I workaround what I can, and I add what I need. I want it to work right the first time and I never want to come back (until new business requirements come along). I am usually very successful doing this, making changes during unit and system testing and finishing in a day or two.

I use to be bitter about cleaning up other peoples' mess because they were too lazy, stupid, rushed for time, or whatever. But no more. I've turned around my thinking to use all of this as a motivator to build solid business apps where no one ever has to go though this again.

<closing loop...> THAT'S what has motivated me to do my start-up.

I threw out my original example because it's a classic, it came to mind quickly, and most readers here, even the juniors, could understand it. I had no idea it would spawn such discussion. Nice talking to you.

> I had no idea it would spawn such discussion.

There's a good indicator that something will spawn a heated debate, and you pointed it out yourself:

> and most readers here, even the juniors, could understand it.

It's a bikeshed.

My "hair was on fire" for a tool I desperately needed for my architectural firm that was not available anywhere, and I realized the tool would be equally powerful for any business.
Money And to escape the Boredom !
Two big reasons:

1. Right now the leverage that a small group of talented technical folks have is huge. Much more so than I expect it will be in 10 years, or it was 10 years ago. I don't want to cede that to the PHBs.

2. A really useful web startup is a way to touch a lot of people's lives, and ideally improve them in some small way.

#2 is hugely motivating for me.

I love creating stuff, especially through programming. I almost started my own "Web 2.0" site while at university, but my study time eventually took over. Then, no longer funded by my parents, I needed a job. I worked for a games company which, one year later, was slowly draining the passion for coding out of me. So I quit, moved country (again) and now I'm living off savings and odd jobs while building a prototype and hunting for co-founders. Woo!
I'm looking for co-founders too! I finished Uni last year, been working on prototype since. It isn't the money, it isn't proving other apps are bad; I'm just doing because I can't imagine doing anything else. I'm all consumed by the startup excitement!
Could you elaborate on why you didn't like the gaming industry?

What title(s) did you work on?

I just switched to the gaming industry so I hope the same doesn't happen to me.

So far though, I've just been stoked having an xbox360 on my desk...

> Could you elaborate on why you didn't like the gaming industry?

Whoa, Pandora's box! :) I'll try not to break any NDAs and still be informative. Apologies if this degenerates into a rant. A lot of this stuff depends on the developer/publisher pairing you happen to work for, although I talked to quite a few people at Rockstar and it seemed even worse there.

* The publisher is always right. Even if they request illogical, stupid things, which clearly won't work, you have to implement them, only for them to withdraw them later. I spent weeks on stuff like that.

* Even 'obviously' good development practices seem to be considered purely theoretical, at least at the studio I worked at. The code was terrible, the bug count was astronomical throughout the project, because there was never time to fix them, everyone always had to add new stuff. The whole thing didn't even get any serious QA until AFTER the original intended release date. (which eventually slipped by almost a year; I blame all of the above for that)

* Uncompensated overtime is bad enough, but the attitude with which it was handled was the worst part. "No, I'm busy this Sunday" was treated as a serious problem and you had to have a 1-on-2 "chat" with senior management where you'd effectively be bullied into agreeing to working yet more overtime. They even tried to talk one guy out of being best man at his friend's wedding.

* There was always promise of that vaporous concept of bonuses, but to me it was pretty clear that the publisher had no interest in promoting the game, or even in it being a good game. I think everyone else was either lying or wearing their industry-standard rose-tinted-glasses. I left shortly before it was released in the US but as far as I can tell, it never made it into any top-10 sales list. It's not even out in the ROTW. (yet?) I suspect that nobody is getting any bonuses. (if the studio is even still alive by then)

* At least in the UK, game industry jobs are terribly paid compared to other programming jobs; specifically, about 30-50% less. And that's baseline salary, many "real" jobs pay overtime or give TOIL. Non-programming game jobs pay even less; my salary wasn't even enough to cover cost of living, even after being promoted pretty rapidly.

Sure, some of it is pretty cool.

* I personally really enjoy engine programming, which is what I was hired to do, even though I only did that until the engine/tools work was done.

* You tend to work with some pretty smart, if highly cynical people.

* I got to play with a Wii devkit a couple months before the Wii was out.

* You're making games!

I think I'd only work in games again if it was either for a very small company, or it was a company that has made >50% really awesome games that I personally enjoyed in the past. I'd definitely "test drive" the company before I stayed there, i.e. quit within the probation period if it felt iffy. EDIT: Yes, it's possible to be that choosy if you're any good. The industry greatly overhypes how hard it is to get in. Having been involved in the key parts of the hiring process (CV screening, interviews) at the company, I know how difficult it is to hire programmers.

Published game I worked on: Battalion Wars 2.

YMMV.

Thanks for the in depth response! It was informative!
I would like to re-thank you for your advice!
I want to work for myself, and with the right people (I'm always on the lookout), and I want to make things that don't suck.
Because no other photo-sharing site does what I want.

http://ourdoings.com/2007-12-19

I visited ourdoing, and I really liked it. Nice job!
Your work has come a long way. Congratulations.
Thanks, and thanks for your feedback way-back-when.
Bruce, I like your style. Create something valuable to you, then help others reap that same value. Kudos!
I'm young and have nothing to lose.

I want to change the world (by making something people need).

I'm nerdy and think there is always a solution in technology. People just haven't found it yet.

I'll learn a lot.

I see through the veneer of "traditional" paths of employment.

PG says it all. I send this out regularly: http://www.paulgraham.com/notnot.html

Because I believe I've come up with a novel method of handling user participation in a relatively mature market; it's far stickier than many sites currently in the space, and avoids some of the issues that other 'unconventional' sites have.
Because I got tired of retirement after a year or so...

Because every evening before I fall asleep I ask myself "What have you built/learned today?" and when the answer is nothing for too long I go crazy.

Yeah, I can't wait to get rich and retire so I can finally work more (on projects unconstrained by financial considerations)!
It's the most fun I could possibly have while working and I feel that I have a lot of power while doing it. Since I'm not rich, I've got to work so this is the natural choice.

Were money no issue then I might focus on some exciting programming/engineering projects that aren't as certain a way of making money but would certainly help change the world.

Doing a startup is more pain, stress, and trouble than the alternatives. Unfortunately, after trying a majority of the attractive options, I found myself unable to work on anything else except in start ups and my own personal projects. Even if I had billions in the bank, I couldn't imagine myself deriving greater self-fulfillment than pushing myself to the limits in a start up environment.
People were willing to pay $100 per hour for me (of which I got to keep about 20%) while I was working on projects I did not believe in, using a language I found completely unsuitable, using frameworks that were a configuration nightmare, while reading blogs for 30% of the time. And they were happy with me!

Now imagine how much happier I can be and how much more I can earn while working on projects I passionately believe in, using the most suitable language and framework I know. I'm working 2 or 3 times as much per week as I used to, but I don't mind.

Ouch, billed at $100/hr and got paid $20/hr? You got the shaft.

I agree completely with what you're saying. This is what is driving me away from my job at a software consulting firm at the moment.

If you think that is bad. The ladyfriend gets billed out at $250/hour by Ernst & Young but she is paid out on salary. She's estimated that she is making about $13/hour with all of the overtime.
That's after dutch income taxes.

But my point was that people were paying 5x more for my services than I need to live on, even though I was working at less than 10% of my potential (due to language, tools, motivation, working hours...).

There must be a more efficient way, and I hope this is it.

Because I've always wanted to. I love software and the idea of creating innovative things that people want to use. Becoming a professor at a research university was one goal I achieved, and doing a startup is the other.

My situation: I'm 38, I saved up enough money to live on for a year with no other income, I quit my job, I have two kids, and my working wife is 110% supportive. As they say in the casinos, I am "all in".

to make an impact on humanity
A positive one, I hope! ;)
1. Acquire knowledge; 2. Develop technology; 3. Have fun; 4. Maybe change people's lives for the best; 5. Maybe get rich.

Even if my startup proved to be an utter commercial failure, the 3 first points apply. I can't lose, I've already won! Of course I can win even bigger than now...

Those are my kinds of scenarios: a win for everyone and/or a success no matter what.

I wanted efficient and secure remote backups, and nobody else was providing them.
1. Ego 2. I relish the idea of creating something new 3. I love the idea of serving a unique niche and helping promote startups and entrepreneurs 4. Ego 5. Working out of coffee shops, drinking decaf mochas all day long is my idea of LIVING it up 6. Because I never want to have to say "I wish I had!"
I enjoy making computers better.
Perhaps I'm more selfish than the rest of you, but I am starting my company because I want to Win. I want to make a better product than you, have my users love my product more than yours, make more money off it than you, and get more positive press than you. I want to Win, and unlike most people, I really believe I can Win.
I hope you do.

And here's the dirty little secret that makes programming startups the best "sport" of all: we all can.

I currently work for a startup where I'm not the founder. The company's success is important to me for multiple reasons but I don't have nearly as much at stake as the founders do. Their opinion is that there are lots of things we have to "own" and so I currently spend a lot of time creating new technical things. I don't think this is the best way but I don't question it too seriously. Right now I'm more motivated by flexibility.

That said, when I get around to doing my own startup I plan to create as few new technical things as I possibly can until it is safely out of the startup phase. To me creating new technology is more often than not a huge risk which you only want to do when you know the reward is worthwhile.

it is all about the money, and doing something fun at the same time.

If you do something you like, at home, it is a hobby. If you do something you like, and try to get rich, than it is a startup. If you do something you don't like, just b/c to get rich, you will either fail, or be miserable and quit.