A friend of mine, Steve Meyfroidt, made a statement a couple of years ago that I've used several times and its holding more and more true as time goes by. The statement is
"We like to pretend that its India that's rubbish, but actually its pretty much everyone"
As applications become more complex, but with the amount of basic work in them becoming larger as well, its becoming more and more common to have a clear split in development between those people who define and govern, and those who do standard coding. In defiance of the Mythical Man Month more people are added to projects, rather than increasing the quality threshold. People blame poor coding on India or China, but a rudimentary analysis indicates a whole lot of rubbish being created on-shore as well.
The trend seems unstoppable to keep adding more bodies to the industry, and the average skill level continues to move downwards, both onshore and offshore. If you are planning a project, a programme or your entire enterprise IT strategy keep Meyfroidt's Law in mind, you can't plan for everyone to be brilliant, you must plan to enable the brilliant to succeed and enable the rest to deliver without causing damage.
Think about Brunel building the SS Great Britain or the GWR lines, a great visionary, a bunch of fantastic engineers, and then a load of people with hammers. You want to plan your IT in the same way, target the smart people to direct the rest, and only give the rest hammers.
As IT continues to expand its reach and pull more and more people from non-technical into semi-technical roles keeping Meyfroidt's Law in mind is going to be critical to success.