I think there's also the rare case of "bad things happen to good people". I've been lucky as a consultant, that I have had a handful of long-term clients. We've learned how one another work, and how to communicate our expectations.
Alot of web-development consultancies however, as far as I can tell (primarily the culprits I think), are run by business-minded people who are great at marketing and advertising and networking, but don't understand how to get the right kind of talent in the door. They get the lucrative deals, but have no idea that they don't have the talent on board to make it happen. I've "cleaned up" on a few of these in the past.
Also, there's people like me who start their consultancies without as much business-sense as tech-knowledge, and so you learn quickly what your limits are and to not over promise and under-deliver. An iterative approach helps ensure your mistakes are minimal and generally not impactful in a negative way on the overall project.
Finally there are (yes they are rare, but they do exist) overbearing clients who manage their people and their consultants like it's a sweatshop. Generally speaking I find that it's hard to extract a perfect set of requirements out of a client when in the early stages. I find that an iterative approach is best suited for clients, thus the full picture is not completely understood when the project begins. Most of the time the client appreciates this lean / scrum-like approach, and so it helps me extract requirements throughout the life of the project. The overbearing client, however, sees this as a window of opportunity to take advantage by increasing scope, or changing directions completely, and in some magical way think they'll be able to squeeze you for your time and expertise to get a bargain basement deal. I have an at-will clause in my contracts for exactly this type of client.
I have recently met one example of this type of client, it was so damaging to my company that the owners ended up selling it. If you could you give an example of this at-will clause I'll try to have it included in future contracts.
Alot of web-development consultancies however, as far as I can tell (primarily the culprits I think), are run by business-minded people who are great at marketing and advertising and networking, but don't understand how to get the right kind of talent in the door. They get the lucrative deals, but have no idea that they don't have the talent on board to make it happen. I've "cleaned up" on a few of these in the past.
Also, there's people like me who start their consultancies without as much business-sense as tech-knowledge, and so you learn quickly what your limits are and to not over promise and under-deliver. An iterative approach helps ensure your mistakes are minimal and generally not impactful in a negative way on the overall project.
Finally there are (yes they are rare, but they do exist) overbearing clients who manage their people and their consultants like it's a sweatshop. Generally speaking I find that it's hard to extract a perfect set of requirements out of a client when in the early stages. I find that an iterative approach is best suited for clients, thus the full picture is not completely understood when the project begins. Most of the time the client appreciates this lean / scrum-like approach, and so it helps me extract requirements throughout the life of the project. The overbearing client, however, sees this as a window of opportunity to take advantage by increasing scope, or changing directions completely, and in some magical way think they'll be able to squeeze you for your time and expertise to get a bargain basement deal. I have an at-will clause in my contracts for exactly this type of client.