I'd like to separate a few concepts in my response.
I think there are two types of consultants: Real ones, and contractors using the word consultant.
Real consultants get paid because they leave their clients better than they found them.
Contractors work with a defined solution (Sometimes without a problem) within scope, time, and budget constraints.
Both sets have to manage their execution, budget, and scope of their work. They both also have to cope with invoicing and hand-offs.
Differences appear in how contractors focus on building a solution, and consultants focus on the problems. You hire a "Consultant" to migrate you to the cloud and you'll have things in the cloud. Maybe it'll all work, maybe it'll be something the company can use and manage. Maybe not. If you hire a consultant, they'll understand the desires and needs behind the request. Seek alternatives, and only then move towards a solution that fits the client's desires and reality.
The contractor style has a surprisingly high chance of achieving technical success while simultaneously being a disaster. The contractor style claims victory because the scope was satisfied and invoices paid. A consultant can only claim victory if the client was satisfied and invoices paid.
I have a simple test that I use on myself and others. The test is a simple question: What is keeping you from offering a money back guarantee?
The more I focus on being a real consultant the less troubled I feel about offering such a guarantee. The more contractor style and others who work like this think the proposition is insane.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.