I have been working with a contractor on a project now for a few months and in the main their progress has been OK. I have created a number fo short milestones and paid when complete. The contractor now wants to switch to an hourly contract as apparently they want to build their 'reputation' in upwork. While their hourly rate is fairly low I am worried that this would leave me open to them billing foer hours not authorised. It is easy to create a milestone and say 'here's $1500 when you complete this' but more difficult if they just bill hours. Do they always need a milestone they can bill against? This is not continual development - I have an App, it's developed but I will still need occasional changes and additions. I don't however need them full time.
The contractor is pushing for this change but I'm not sure it suits how the project should progress...
You can limit the number of hours logged per week. That is probably the safest way to protect your budget. Since you worked with the freelancer in the past, I would hope that he/she doesn't just log unauthorized hours. I believe you can always authorize more if the changes you need require more hours that week. Also, you have a window of time to look at the freelancer's work diary each week to ensure all the work is on your project. If not, you can dispute those hours. If you feel the freelancer is doing unnecessary work just to log hours, talk to him/her and maybe reconsider the contract if that is the case.
As a freelancer, I can see why yours would want to do this work hourly. I actually prefer fixed rate for certain types of work, but only if the scope of the task is clearly defined. Ongoing work that is variable is often better suited to an hourly contract. That and I get why many freelancers want to accumulate hours since some clients use it as filtering criteria. (Even though freelancers accumulate no Upwork hours for fixed rate contracts so someone can be highly experienced and highly rated yet have zero "hours".)
Most serious development work is done using an hourly contract.
Generally speaking, an hourly contract will cost more in the short term, but help to ensure higher-quality source code and a higher-quality result.
As a freelancer, I would never ask a client to change the way a contract is run so I could "build my reputation". That is extremely unprofessional in my opinion.
With that said, if you're not comfortable with hourly, don't do it. Yes you can limit the hours and check the work diary and such, but in the end if you don't want to convert it, don't. It all depends on what you're comfortable with. You are here to get a project done in a way that best fits your business practices. You're not here to help someone "build a reputation".
No freelancer should ask for a client's help to "build their reputation."
I completely agree.
And if you (as a client) want to work on a development project using fixed-price contracts, this CAN BE DONE.
But it has to be done right.
You need to work with a project manager to break the project down into very independent, isolated modules, which can be set up as milestones or separate contracts. Each of these needs to have clear specifications and targets, and each needs to be checked, verified, tested by the project manager or by other team members.
You shouldn't rely on one person and one big fixed-price contract unless what you are doing is extremely simple.
And you have to understand that when you specify a fixed-price contract to accomplish Goal X, that does NOT necessarily include writing source code in a maintainable or readable manner. That doesn't include testing. That doesn't include bug fixes or maintenance or updates.
If you ask for a fixed-price project that accomplishes Goal X, and the deliverable actually accomplishes Goal X, then that's it. The source code "under the hood" might be very thoughtful and well-crafted. It might be garbage. That's up to the developer. You don't have a say in the matter.
The bottom line is, you don't have to change it if you don't want to. You are in control of the type of contract.
I'm a different sort of client to you, but I use both hourly and fixed price contracts for different types of tasks. For freelancers I work with long-term, who I periodically send new tasks to, I have them on hourly contracts because there's about 20 of them and I don't want to have to constantly add new milestones to ~20 contracts. These are freelancers I've worked with long-term and have a good relationship with. But for shorter term freelancers with a fixed task or goal I have them on fixed price contracts and just add milestones.