I had an interesting discussion with a co-worker about food the other day, and it sparked a train of thought:<p>If you were opening a restaurant (and actually care about food - let's leave fast food out of this one), you essentially have two segments of the market to target: there's the mass-market, who just need lunch during the workday, or who just need a dinner and don't want to cook, and there's the artisanal non-chain approach where enjoying the food is the attraction. It's an event.<p>The train of thought went like this: I love to cook, and when I do, I do it for the enjoyment of preparing and eating the food. There's not a lot of satisfaction in just fulfilling my daily calorie requirements. This is just the way I work. If you take the time to cook, why not do it right? Now, in my career, I want to do the same with software, but there _is no_ artisanal market for software. Open source is a way for people to enjoy other peoples' work, but there's no market for consumers of open source software itself (consulting aside). Every job I've had working for someone else is much more like the just-make-some-mac'n'cheez variety, where there's no satisfaction in it - because consumers of software don't really care about software (the code itself, mind you) in the way that they care about food. If it works, it's good enough.<p>Now, the question is this: much of the struggle in a budding company is to hit product-market fit, right? A startup product is an ever-changing product, where things are born and die on a daily basis. So how does one manage to balance a good quality product with having to hustle your product?