Field Notes

Avoiding Outsourced Development Scams: Five Warning Signs to Catch Before You Sign

The real risk in outsourced software development is rarely outright fraud — it is structural loss: pricing that appears only after kickoff, scope that lives in a chat window, source code you never actually own. Five signals you can check before signing, and the contract term, acceptance standard, or ownership clause that removes each one.

Son Yeongeun · Freesi··6 min read

Structural Loss Is the Real Risk, Not Fraud

Outright fraud — a vendor taking the money and vanishing — is rarer in software outsourcing than people expect. Where buyers actually lose money and time is a grey zone nobody would file a criminal complaint over: the price grows after work starts, "that was never in scope" surfaces at delivery, the handover arrives and the source code is not yours, and the person writing the code turns out not to be the party you contracted with.

What these have in common is not a bad vendor but a loose structure. Which is also the good news: structural risk almost always shows itself before the contract is signed. Below are five signals you can check before kickoff, each paired with what removes it. If even one of them appears, stop and ask for documents before going further.

Wondering what your project would cost by these standards? Check in 30 seconds

Signal 1: No Price Until You Take a Meeting

You ask what something costs and get "let's schedule a consultation" instead of a number. That is not fraud by itself, but it means you cannot set a budget before work begins — and the later price gets settled, the more room there is for add-on charges and scope arguments afterward.

How to remove it: for a well-defined type of work, ask for a written range (low to high) before kickoff. If the vendor will not give one, ask why. If the answer is "not until requirements are fixed," then putting those requirements in writing is the actual first step. Vendors who open with price have less room to change the story later.

Signal 2: Scope Lives in a Chat Window, Not a Contract

If "payments, notifications, and the admin panel are all included" was promised over messenger, with no contract and no scope document, the odds of hearing "that was not part of it" at completion are high.

How to remove it: keep the screen list and an explicit in-scope/out-of-scope split as an attached document, and structure payment in stages — kickoff, midpoint, and after acceptance. Splitting it that way means a single payment can never become the whole loss. A contract should state scope, timeline, warranty, and what happens if delivery slips. The clause-level detail is in outsourcing contract disputes.

Signal 3: Source Code and Accounts Never Transfer

You received the delivery, but the source code lives only on the vendor's server, and the accounts, domain, and API keys used to deploy it are all in the vendor's name. That is a structure that keeps you dependent on them for every future change.

How to remove it: write into the contract that the deliverable includes the complete source code, and that the accounts and keys required to operate the service transfer into the client's name. Whether that one line exists is the difference between a small handover and a rebuild costing millions of KRW (thousands of USD). If this is your first time outsourcing, read it alongside the first-time outsourcing checklist.

Signal 4: "It Is Complete" Arrives With No Acceptance Standard

When nobody agreed on what has to be true for the work to count as complete, the completion notice arrives — and the invoice with it — regardless of whether the thing runs in your customers' environment. This is the classic gap where the demo is flawless and real usage breaks.

How to remove it: fix the acceptance criteria before work starts: tested against real data, concurrent use and exception cases verified, and an acceptance window (for example, a set number of days after handover). Tie the final payment to passing acceptance, and the definition of "done" belongs to the contract instead of to the vendor.

Signal 5: Subcontracting, or a Nudge to Deal Outside the Platform

Two related warning signs: the party you contracted with is not the party writing the code, or you met on a freelance marketplace and they suggest "let's do this directly and save the fees." Subcontracting blurs who is accountable when something breaks, and leaving the platform removes escrow protection on your payment.

How to remove it: ask before signing who the actual developers are and whether any work is subcontracted, then put the answer in the contract. If you are using a marketplace such as Kmong (a major Korean freelance marketplace), keep payment inside the platform — the moment you move outside it, the reason you chose that platform is gone. The differences in protection between marketplaces are covered in five things to know about hiring developers on Kmong.

Removing These Signals Structurally

The five signals compress into three problems: price is opaque, scope and ownership are not in writing, and who builds it is unclear. So the direction that reduces the risk is equally clear: publish price up front, put scope and source code ownership in the contract, and make sure the builder is identifiable with no brokerage or subcontracting in between.

Freesi (freesi.net) addresses these structurally. We develop directly rather than broker, so there is no subcontracting (signal 5); prices are published per product so you can budget before kickoff (signal 1); and the contract states scope along with source code and account ownership (signals 2 and 3). No structure makes fraud impossible, so run these five checks wherever you hire. If you want to see types and prices first, they are on the fixed-price menu; how the work actually runs is on how it works.

#Outsourcing Risk#Development Contract#Source Code Ownership#Vendor Selection#Milestone Payment
Rough estimate in 5 seconds

Two questions, no contact info. Ranges are from real contracted prices.

Wondering what your project would cost?

Enter your requirements and see a quote range in 30 seconds — based on real project prices. No sales calls.

Frequently asked questions

What should I check to avoid getting burned on outsourced development?
Five things before signing. 1) Can you get a written price range before kickoff? 2) Is scope — in and out — in the contract or an attached document? 3) Do the complete source code and the operating accounts and keys transfer into your name? 4) Were the acceptance criteria for "complete" agreed before work started? 5) Is any work subcontracted, and who actually writes the code? If any answer is vague, ask for documents first.
How large should the upfront payment be?
Paying the full amount at once is the riskiest structure. Split it across kickoff, midpoint, and post-acceptance. Tying the final payment to passing acceptance against real data in particular moves the judgment of "complete" from the vendor to the contract.
What if the vendor refuses to hand over the source code?
The answer is a clause stating that the deliverable includes the complete source code and that the accounts and keys needed to operate it transfer into the client's name. Refusing that clause is itself a warning sign. Without source ownership, maintenance or switching vendors can mean rebuilding from scratch.
Is it fine to run a project on chat alone, with no contract?
Not recommended. Even on a small one-off job, put the screen list, the in-scope/out-of-scope split, the acceptance criteria, and source ownership in writing. On a freelance marketplace, keep payment inside the platform so escrow protection applies, and decline offers to move the deal outside it.

Related reading

Share

Comments

0/1000
Freesi
Son Yeongeun
Lead developer at Freesi — verified outsourcing track record on Kmong and Soomgo
admin@freesi.net
Get a 30-Second AI Quote