I feel like it depends highly upon the nature of the project.
I've worked with (and for) consultants and we typically billed by the project for things with well-defined scope, work, and outputs. (Maybe a small business website, or PBX system.) But we billed by the hour for things that were unfamiliar territory for us and forced us to learn as we go. Like migrating a bunch of data from an ancient proprietary database to Postgres.
I've worked with (and for) consultants and we typically billed by the project for things with well-defined scope, work, and outputs. (Maybe a small business website, or PBX system.) But we billed by the hour for things that were unfamiliar territory for us and forced us to learn as we go. Like migrating a bunch of data from an ancient proprietary database to Postgres.