There are good people everywhere. You just need to find them, and grow them to where they can shine.
Simple things, like it's better to ask when you don't know than say "yes everything is fine" until it's too late.
Worked pretty well, a few from the team actually ended up immigrating and are still living over here with their families =)
Why do any sort of progression, when you can just have a bunch of skilled people visiting customers to secure contracts, and once projects are started, they can be substituted for an army of juniors? Meanwhile, the seniors go secure more contracts elsewhere.
Basically you get what you pay for. Large consulting companies offer peanuts compared to good software developer salaries. But compared to the salaries you can expect in other fields of engineering if you are an average student (considering the glut of mediocre engineering colleges here)- consulting salaries seem decent.
Create a branch office in India and offer the expected salaries for software engineers and you can find great developers.
You get that one who's really damn good at what they do. Just as they are up to speed on your project and working style, they get promoted to manage a group of 10+ engineers.
And then you start again with the next one, hoping that they're as good as the previous one.