Mayank Sharma wrote an interesting blog post about hiring difficulties for startups in India. He says the reasons are
(1) The very good devs can work for multinationals (Google,Microsoft etc) and local startups can't match the compensation.
(2) Indian services companies have lock in contracts
(3) No real history of non founders making lots of money from a startup
(4) Those who do want to work for startups have "unreasonable expectations" (quotes mine, not his)
Manoj Govindan (who works for (startup) Perfios - due disclosure - I reccomended him to Perfios - guilty as charged! :-) ) responded with four reasons why these startups don't hold any allure for good devs
(1) very few Indian startups offer significant equity to early hires.
(2) Many Indian startups give employees little say in strategic decision making. In the end, you are still a "coding body".
(3) Signal/Noise ratio - too many "social this" "cloud that" clone startups out there than innovative ones. Noise attracts noise.
(4) "Very good guys" like to make own technical decisions. Here they find them already made and locked in before they join. Often tech stacks are in place even before people actually decide what to do.
I have some sympathy for both view points. Is the question such a complicated one though?
There is a simpler explanation. All the points above can be subsumed under "Whenever there is a demand and supply gap, and some kind of free market mediating the two, prices rise". That is it.
Good devs, those with the combination of tech chops, communication skills, attitude and *ambition* (iow the exact type you want for your startup) are a scarce resource generally and particularly so in today's market. Demand is very high (this fluctuates) and supply is very low (this is constant). In such a scenario, the price varies from very high to high. Right now it is very high. And that is it.
You just can't buy gold for peanuts (speaking metaphorically. In reality you can trade a few truckloads for some gold). I can't. You can't. It is a value neutral statement - just the way the market works. You can sometimes marginally route around the Iron Law of supply and demand - Zoho trains people who wouldn't be considered for normal dev jobs for e.g - in effect, creating their own supply - but you can't escape it.
Even then, the argument goes, the "price" for good devs isn't necessarily all about money. True enough.
Look at how Silicon Valley's startups (or even more narrowly, YC funded companies) hire good devs - If you can't match (or exceed) market price in terms of compensation you need to make it up with (a) significant equity and/or (b) advanced tech and/or (c) a compelling business model with some traction and/or (d) a "change the world" product (think SpaceX) or (e) credible, proven founders. This is true *everywhere*, not just in the valley, though details and leeway differ. If you are a company trying to hire the very best developers, you have to pay the price somehow.
The typical Indian "lean startup" fails on all counts - it is often doing some whacky buzzword heavy, content lite, mobile/social mini app, works on PHP and MySQL, has no money (and so offers bare minimum salaries), is often run by clueless MBA/undistinguished engineer types and will give a prospective employee 1% equity in a doomed product for an endless 18 hour working day.
Why the hell would anyone half way technically good want to work with such outfits?
Devs are sometimes economically stupid but they aren't *that* stupid.
If they want to do interesting tech stuff they can go work for Google (Mountain View, not Bangalore!), start their own "great tech" companies, work on Open Source projects, work from home for US based startups doing interesting things or wait for Indian startups with cutting edge tech to proliferate, meanwhile drawing a steady salary and honing their skills.
If you must stay in Bangalore, but want great tech and a small company, go work for Gluster. All the tech and Open Source you want. Or apply to Tachyon. Or Notion Ink. There are a *lot* of companies attempting technically interesting things in Bangalore these days. And there is space for many many more, if you have founder dreams.
If you want to do services web dev, and work with small teams of bright people in a great office atmosphere, they should go work for someone like C42. Good company I vouch for.
If you just want to get out of that crappy enterprise services bodyshop, but don't want to get stressed about whether your children will starve, *and* want to do something "like a startup, but stable",go work for (a) someone with traction and funding, but aren't quite a startup any more (say SlideShare or Inmobi or Flipkart) (b) work with one of the many offshore centres of product companies, who have plenty of money. (say Intuit,or Zynga).
If you choose to be an employee (and it is an honourable choice), always make sure you are getting what you are worth - be that in terms of money, equity or technical challenge or whatever your individual preference is. This is just plain common sense.
If you want to be entrepreneurial and don't mind the stress, be a (co)founder, not an employee. That way you can still work on the latest social/mobile ripoff idea in PHP (or the blue sky idea in your own custom language!) and scrounge around for money, but you'll be in control of your destiny and won't have to factor in crazy bosses. ;-)
Nutshell : The law of demand and supply explains all phenomena in a free market. If you are any good at programming, you have more options now than you ever did. If you want to hire such people, create a compelling value proposition. If you aren't getting enough applications from qualified devs your "offer" isn't good enough.
EDIT: someone asked about good startups in Pune. The only Pune based startup I know of is Infinitely Beta (who have no problems recruiting afaik). But I am no expert on Indian startups.Do your research!
EDIT 2: I dashed this off while waiting for a build to complete. Apologies in advance for any typos/flaws.