Is there a name for this particular type of contractor?
This isn't jus a matter of contracting, but also of project management. Some real world examples:
- I am employed by my employer (a consulting agency), but I work at the offices of a client who have hired and pay billable hours to my employer.
- In the past, I worked at my employer's office, working on a client's project but not at the client's offices or with any of their employees (as colleagues).
- My friend is a freelancer who works in the client's office as one developer on a larger team.
- My other friend is a freelancer who does projects, i.e. he works on project in his own office.
On top of that, you also mention "fixed price" (the opposite of which is "billable hours"), which is another variation that you can add onto this.
There are three different and very much separate things at play here. Firstly, it's the type of contract:
- Employees are employed by the company, and are protected by employment laws. Generally speaking, recruiting employees is slower and it's harder to get rid of them, but they are cheaper than contractors. Employees are guaranteed to be paid even if there is no work (unless they are fired of course).
- Contractors work based on a contract. They are not protected by employment laws but by general contract law. What an employee would call "my employer", a contracter would call "my client". Contractors are easier to acquire and get rid of, and often have more specialized experience than the average job applicant; but they are more expensive than employees. When they have no active contract, contractors do not get paid.
- Some contractors (like me) are actually employees at a consulting agency. This means that for all administrative purposes, I am employed by my employer. But my employer then sends me out to clients, who consider me to be a contractor. But the contract is between my employer and the client, not between me and the client. When I don't have a project (e.g. my employer hasn't found me a new client yet), then I am still guaranteed a wage (since I am an employee).
Administratively, third option is an employee. However, they are commonly referred to as a contractor because their day-to-day job mostly resembles that of a contractor. It's only the payroll that considers them as an employee.
Secondly, there is the type of project:
- Some contractors only take contracts where they manage the project themselves (this is often called "project" work). This means that they are contracted to deliver a product to the client. They might (occasionally) work in the client's office, but more often than not this is done outside the client's offices. The important thing to note here is that the contractor's job is only done when the agreed upon application has been delivered, no matter the hours it took to do so.
- Some contractors instead sell their hours to a client. This means that they do not manage the project, and they are simply there to perform certain tasks. The important thing to note here is that the contractor's job is done when he has performed the requested hours of work, regardless of whether the actual project (application) is finished or not.
Thirdly, there are the payment options.
- Fixed price refers to a contract that is set in stone and cannot change dynamically.
- For project work, this means that a requested application is delivered (presumably by an agreed upon deadline), and the customer will pay a fixed price. How much time it takes the developer is not specified. If the developer is done quickly, then that's good for them. If they end up having to pull allnighters to get it finished, they will not receive any extra reimbursement for the cost. In this system, the client is not allowed to change the requirements mid development. The extra work incurred by doing so, without receiving extra money, would be a cost paid by the developer. Instead, the only option is to renegotiate a different contract.
- For billable hours work, this refers to a fixed price for a fixed time period (either expressed as an amount of manhours, or as a period with a fixed amount of hours each day). The developer cannot be expected to do overtime, or cannot be forced to extend the contract. The developer doing so voluntarily will usually incur a secondary contract that covers the extra hours, usually at an increased rate.
- Billable contracts refer to contracts where the client pays for the developer's time, even though it's yet unclear how much that will be. The developer provides a timesheet of time spent, and the client pays the needed rate (hours x hourly wage). In this system, the client is able to change the requirements of the application mid development. If this incurs extra effort on the developer's part, the developer simply bills more hours, which the customer is expected to pay. Working overtime is something that needs to be addressed between client and contractor. Some contractors may ask for a higher rate for unexpected extra hours, whereas others may simply calculate them at the same rate, or recuperate them as non-billable non-working hours in the future. This is really just a matter of what the client and contractor agree upon.
I find this is the most common form of contracting among my peers. Is this true in general?
This is very subjective. It hinges on the circles in which you find yourself. For me, I more often see "employee contractors" like myself, because there is a fairly big market for them where I'm from, and a lot of my friends have ended up in these types of employments.
But I've also talked to freelancers who are of the opinion that there are vastly more freelancers.
I think this is mostly a matter of what you're exposed to on a daily basis, because you tend to assume that this is the prevalent option because you see it every day.
Other than that, this is also very dependent on the field you're specialized in.
- Security consultants tend to (in my experience) often do shorter contracts with many clients, which means they tend to end up in project-billable hours-contracting.
- Web and app designers tend to take fixed price projects because they can often reuse their own templates/tools which means that they have to spend less time on building a website than the customer would expect.
- Testers tend to take long term billable hour contracts where they work in the client's office, because companies that need external testers are often in dire need of these testers.
- People who are not great at networking (social, not technical) tend to become "employee contractors" because they don't have to manage the clients or find the contracts. It's a less lucrative system but it has more securities in terms of consistent income.
But these are all just personal observations of mine. Nothing is a given.