What do people in IT consulting firms do?
Ok I can guess they consult, provide answers to questions, but exactly what kind of questions do they answer that it is even possible people will pay enough for them to sustain their company expenses?
Software Engineering Stack Exchange is a question and answer site for professionals, academics, and students working within the systems development life cycle. It only takes a minute to sign up.Sign up to join this community
Seriously though "consultancy" is a very vague term and can cover many things.
At one extreme are low level body shops which hire fresh graduates at $250 dollars a day and farm them out to large corporations at $1500 dollars a day. The lack of experience is regarded as a good thing as they take longer to get the job done, their work needs more testing and there are more defects to fix, all of which means more billing.
At the other extreme you get small boutique consultancy firms with some "big name" employees who give expert advice on a subject they actually know about.
Most of the big name consultancies are actually a mixture of both, they have a small core of real experts which lend them credibility and a large pool of worker drones who bring in the money.
There are degrees. A "contractor" does what you tell him to do, an you pay him. You have less control over him than over an employee, and the option to let him go with rather less ceremony. A lot of contractors (staff aug or feature development teams) list themselves as consultants. Contractors are paid for producing a product.
A "consultant" will analyze your situation and give you advice and additional informations and perspectives. The work product is often a white paper, written by someone who knows the business, which can help you to make decisions. The value of the advice is related to the reputation of the consultant. Letting a lean expert examine your production system can be worth a lot of money, likewise someone who can iron out your product management or software process.
In related circles you find a coach, who is someone who helps your team to implement a certain process or set of processes. This person is experienced in various people skills, logistics, and technical skills. The coach's product is a team that can perform the new skills at least adequately and can self-improve from that point.
Typically an IT consultant is a consultant and may be a coach. You pay for research, analysis, recommendation, and sometimes coaching.
Also be aware that there are contractors who are also consultants and coaches. You may bring them in to help build a product, only to received valuable advice, training, and coaching in addition. Treat those people nice... you need a good relationship with them.
A real word example:
I was working at a telecommunications company and they wanted to get Siebel up and running and didn't have any real in house experience (at least that's what they thought, we in IT probably knew more than the the consultants, but management wanted to blow a few million I guess). Anyway they bring in Accenture (big name consulting firm). They brought with them some experienced (and some not so as noted in other posts) developers and a pre-done configuration for Siebel.
These folks gathered requirements, designed the system, and did some of the implementation. If we had wanted to spend more they would have done all the implementation, but the company wanted to train a bunch of us IT folks to keep things going once Accenture got it started.
Big consulting firms have lots of people with different skillsets and different levels of experience. The skillsets range from telephone support through to high end project managers / Architects. They then hire out the staff (at a huge mark-up as James suggests). In the better firms they will have career development plans, decent HR & will look after the staff and move them from contract to contract - however in bad times they can and will have massive rounds of redundancies.
They will hire out anything from one Enterprise Architect or DBA to a whole programming team including managers & testers. Their bread and butter is signing a big outsourcing deal and supplying 3 team of DBAs, several short term project teams of programmers and other support staff based worldwide providing 24/7 support. The company doing the outsourcing may even see a reduction in costs because they don't need to pay 100% of a good DBA but end up with a mix of 75% junior DBA and 25% a good DBA with even better ones available when necessary. The consulting companies are also usually very capable and efficient at ITIL or similar so they are a lot better at managing the IT function than non-IT managers in, say, a big mining company.
The consulting firm does some of the customizations that the enterprise software requires for a company to use it as intended. The software that is so flexible and scalable that it requires someone to properly configure it and get it rolling would be another way to describe it.
If you can imagine companies that are paying hundreds of thousands of dollars to buy the software, it isn't that hard to imagine other companies charging tens of thousands to customize it for a client.