if your code isn't quite ready, build a screencast, then submit it to news.yc. doing this was probably instrumental in our eventual YC acceptance. (this lets you convey the cool parts of your idea in a way you can control even if there are a lot of missing pieces.)
otherwise, if you've only got a team and a hunch, you're in this _giant_ pile of "eh who knows if it'll work, who knows if they're good, but maybe" applications (many of which ultimately fail), and it's basically a crapshoot. yc gets enough apps w/ 1) amazing people 2) amazing products or 3) amazing traction to avoid having to place these kinds of shaky bets.
the more risk (product risk, people risk, market risk) you can eliminate on your own, the better you'll look to _any_ investor (and the more equity you'll keep for yourselves.)
obviously, there's a catch-22 that to prove some of these things you need initial capital, but for most software startups it just means locking yourself up and hacking out a prototype and letting it rip to a few people.
then just apply next cycle -- mercifully, it's not like college admissions where you (generally) only get one shot. (my first yc app was rejected a year before ultimately getting in.)