The reason companies hire so many programmers is all about power. If you have a team of 5 programmers, then those 5 people have huge power over the fortunes of the company, they can just leave and make the enterprise fail, or demand any level of salary. By having large teams, and none of those people responsible for anything more than a small aspect of the whole a company protects itself from having to deal with powerful workers. The workforce can be shed whenever cost cutting is required, no problem, and workers can be disciplined by the fear of being laid off