This is a mess, but it is not Upwork's mess.
Upwork is not a software development company. Upwork did not create this project's source code or manage the project.
I feel bad for the client, and want his project to succeed. But the solutions to his problem will not come from Customer Support personnel.
What really needs to happen is the freelancer needs to provide his starter/framework source code to the project owner.
This is exactly how I develop websites for Upwork clients. But I always provide my custom starter framework source code to clients and tell them that they have complete ownership over it.
It is disturbing that this freelancer is not doing the same thing.
Is he asking for a flat fee to receive the full source code? If you have a fully functional site that you are quite happy with, you may need to consider whether his asking price makes it worthwhile to pay him, versus not receiving it and hiring someone else to redo work.
"What really needs to happen is the freelancer needs to provide his starter/framework source code to the project owner."
Thanks Preston. I totally agree. But most community members here are saying that because it is a rebuild of the first site version (they admitted version 1 was substandard), and insisted on a rebuild for free, and the contract was paused during the 6 month rebuild, they technically own the new site code and I own the old site code, since I only paid hourly during development of version 1.
"This is exactly how I develop websites for Upwork clients. But I always provide my custom starter framework source code to clients and tell them that they have complete ownership over it."
On this version 2 rebuild, they will only supply their custom starter framework source code if I start a new contract with them for ongoing work (new features, ongoing maintenance, etc).
"It is disturbing that this freelancer is not doing the same thing."
"Is he asking for a flat fee to receive the full source code? If you have a fully functional site that you are quite happy with, you may need to consider whether his asking price makes it worthwhile to pay him, versus not receiving it and hiring someone else to redo work."
They're asking me to commit to a new hourly work contract with them in order to get it.
The site is 99% there. I'm mostly happy with it. Out of the 3 code reviewers who looked over the code, 2 said they recommend a rewrite, and the other said it's not ideal that they've swapped out Laravel's ORM 'Eloquent' for Doctrine (a dated technology from Symfony days that should not have been used to replace Laravel's default enigine, Eloquent), but he said the site functions ok and is launchable. Adding, it will need to be rewritten at some point. And if I could afford it now, then a rewrite now would ideal, since most developers won't want to touch a backend that is not pure Laravel and butchered in this way.
So to answer your question, his asking price for just ok code tied to one developer will need be weighed up against the cost of a rewrite using technology in it's pure form that is team-friendly.
A key issue is that this was an hourly contract and no disputes were lodged (from what I read) over the time that was charged. There aren't funds in escrow that UW can do anything about so you will need to temper your expectations for what UW can actually do. They do not have access to the freelancer's funds. They have no legal authority to force the freelancer to turn over the code to you. At best they can kick the freelancer from the platform if they find enough evidence in the messaging center (to the extent that they actually review it).
Taking your description of events and clearly the freelancer in question is grossly unprofessional and negligent. However, you as a client also need to take proper steps to protect yourself and your investment. These are active measures to be taken as the project is running and not after. As you are paying for the code in the form of an hourly contract, you need to insist that the freelancer provide the code to you on a consistent basis. This is usually handled through a code repository such as Github or Bitbucket and should be under an account that YOU own and administer. 100% of your investment is the code and allowing the developer to hold that - even though you are paying - is a critical error.
I have a feeling that the best you are going to get out of this are lessons learned. None of this excuses the freelancer whom I hope is booted from the platform based on your retelling of events. However, it is critical clients understand how to protect themselves and run an effective software development project. If they can't, they need to hire someone as a PM who can. This includes the ability to hire the "right" people at an appropriate price.
The reviewers did sign NDA's. They also felt that this was a deliberate "job safe" attempt by the freelancer to tie me to them, which is exactly what they've done.
It's a mess for sure, as Petra said. A total stitch up I didn't see coming. And it's my own fault for not ensuring in the beginning that all code was accessible at all times throughout development.
Note though, that is was accessible when they built version 1 with hourly pay, it just wasn't accessible when they built version 2 unpaid while the site was rebuilt to standard (something they insisted on doing after admitting that version 1 would not pass a code review).
I did receive a call from Upwork this morning, and they are offering to investigate what's been going on and help with negotiations. The rep also said that if the freelancer is found to be blackmailing a client, that could be considered a breach of terms and conditions, which could result in serious consequences for the freelancer. I don't really want them to suffer in any way or have their profile shut down, because I don't think they're bad people... I just think they may have some financial issues and are doing what they can to remedy those issues by going after the fastest route to money.
It's been recommended I offer them a bonus in exchange for the third party folder containing the missing code from my code base. That does feel like buying into blackmail to me. But if that's the recommended first step and most time efficient solution, then I'll take it.
Hi Zane. From your description it sounds like the developers were violating Upwork's ToS by having more than one person working on the same hourly contact. (But I suppose this is only relevant to the original work, which they charged for.)
This may have contributed to your impression that you were paying for an end product, rather than paying a freelancer for his/her time.
Anyway, I hope this works out OK for you.