Why are they even called "consulting" firms? They are really just contracting agencies. And why are they so prevalent in the midwest and the insurance/banking/healthcare segments? Is it so that employers don't have to lay people off? Do they record the costs differently on their books versus full time employees? It just seems so obviously not in the interest of a company to use them with regards to culture, turnover, cost.
I've seen two reasons why mega insurance company inc brings in "consultants." One is the consultant is specialized in an area of tech that is completely outside of the companies expertise. I did some of this being in a niche area of enterprise security. While those contracts still suck they suck a little less because you are at least advising the company and getting them up to speed on something. The other type, and the most common type is the "staff augmentation". I've been on those projects too and its exactly how they seem. The company has some in house knowledge (say a manager of infrastructure and maybe one full time employee for that tech) but the rest is really about throwing bodies at a project. From the client's perspective its all about workforce flexibility and not having the expense of a full time employee on the books. Even at like 100/hr its cheaper I guess for them vs having a full time employee. Plus its not their "core business" although in 2016 I'd argue if you are running a company it's insane not to think of tech as part of your "core business."
Overall, between the unsteady work, travel, etc being an enterprise consultant sucks. Most people that I know go into it because the potential to make a bit more money vs a traditional job at mega insurance company inc is there and they don't like the idea of working for mega insurance company inc for years. However, I've been on contracts where the project is like two years long so you might as well be working for mega insurance company inc anyway.
For instance, you can be a "contractor" as a software engineer, where you sign an employment contract to work for 6 or 12 months at a client site, working through an employment agency. At the end of that term, either your contract is renewed or it is not and you're now unemployed.
Or, in the defense industry, you can work as a "contractor" where you're a full-time employee of some company (called a "defense contractor"). That company signs a contract with the government to do some work for them somehow, and you're assigned to do this work. Your work does not have a defined end date (like the 6-month contract you might get to work at some big commercial company), you're just a regular full-time employee, but you still have to track your time (so it can be billed to that government contract), and if something goes wrong with the contract (like it runs out of money), then you can suddenly, with little warning, be furloughed without any pay.
Of course, there's many other kinds of "contractors" too, like the guy you hire to replace your house's roof. And there's all the people who are full-time workers, but are given 1099 forms as classified as "independent contractors" so their employer doesn't have to pay FICA and unemployment insurance for them.
Now, as for "consultants", that usually seems to be pretty much what I described in the part about defense contracting: you're a regular W-2 employee of some corporation, but you're sent out to client sites to do work for them, though there's no fixed-term contract with the client usually.
I also objected to the idea that someone who directly generates revenue was being labeled a cost center. I left, as did my junior consultant, and shortly after the company failed to gain ongoing contracts at the very large financial services corporation they were trying to break in to.
My main problem with that job however, was that they recruited me as a greenfield .NET developer, but then had me analysing some 800 columns over dozens of tables looking for software errors that were causing incorrect results in the 401k accounts for which our client was the steward.