Outsourcing software development makes sense when you need skills or speed your company does not have, and you can still own the product decisions yourself. It goes wrong when a company hands off the thinking along with the coding, or when the budget only covers the vendor's quote.
The quote is rarely the full cost. Most hidden costs sit on your side of the table: the time your managers spend clarifying requirements and testing, the change requests that follow, third-party services, hosting and maintenance after launch, and the effort of taking the work back in-house or moving it to another vendor later.
This guide compares the main outsourcing models, the genuine pros and cons, the costs that do not appear on a proposal, and the safeguards to put in the contract before anyone writes a line of code.
Four ways to outsource, and who carries the risk
"Outsourcing" covers very different arrangements. The model you choose decides who manages the work and who absorbs surprises.
| Model | How it works | Best for | Main risk |
|---|---|---|---|
| Project-based | The vendor delivers an agreed scope for an agreed price or budget | Well-defined projects with stable requirements | Change requests become expensive, and quality may suffer if the vendor protects its margin |
| Dedicated team | The vendor provides a full team, usually billed monthly | Ongoing product development | You pay for capacity even when priorities are unclear |
| Staff augmentation | Individual developers join your team under your management | Companies that already have a tech lead | All management and quality responsibility stays with you |
| Freelancers | Individuals contracted directly | Small, well-bounded tasks | Continuity and knowledge loss when they move on |
Each model can be onshore with an Indonesian vendor or offshore. Offshore teams can make sense for niche skills, but time zones, language, contracts under foreign law and invoices in US dollars against Rupiah revenue add friction. A local team already understands QRIS payments, e-Faktur, BPJS rules and customer journeys that run through WhatsApp, so less of your budget goes into explaining context.
Pros and cons, honestly
Both lists below are real. The question is which side weighs more for your project, your team and your timeline.
Advantages
- Faster start. You skip a recruitment cycle that can take months for senior roles, and work can begin once the scope is agreed
- A complete skill set. A small project still needs UI/UX design, back-end, front-end or mobile, testing and cloud setup. One or two hires rarely cover all of that
- Flexible capacity. You can scale the team down after launch instead of carrying full payroll for a quieter maintenance phase
- Established process. A mature vendor brings code review, automated testing and deployment pipelines that a first in-house team would have to build from scratch
- Lower hiring risk. A wrong hire is slow and costly to unwind under Indonesian employment rules, while a vendor relationship ends under the terms of a commercial contract
Disadvantages
- Less control over daily priorities. The vendor balances your project against its other clients
- Knowledge leaves with the vendor. Unless it is written down, the understanding of why the system works the way it does stays with people you do not employ
- Misaligned incentives. Under fixed price, the vendor gains by doing less. Under hourly billing, the vendor gains by taking longer. Neither is dishonest by default, but the contract shapes behavior
- Communication overhead. Every question takes a message, a meeting or a ticket instead of a quick chat at the next desk
- Lock-in. Proprietary frameworks, or accounts registered in the vendor's name, make switching painful
- The team that pitches is not always the team that delivers. Ask who will actually work on your project and put key names in the contract
The hidden costs nobody puts in the quote
None of the costs below are tricks. They are simply outside what a vendor quotes for, so they surprise buyers who compare proposals line by line.
| Hidden cost | Why it appears | How to plan for it |
|---|---|---|
| Your team's time | Someone must answer questions, join demos and accept work | Budget a product owner for the whole project, at least part-time |
| Change requests | Requirements are discovered during the build | Keep a contingency and agree on a clear change process |
| Third-party services | WhatsApp Business Platform messages, maps, SMS OTP, payment gateway fees, app store accounts | List every external service and its pricing model before the build |
| Hosting and monitoring | Servers, backups, logging, domain and SSL certificates | Ask for a monthly running-cost estimate at expected usage |
| Maintenance after launch | Bug fixes after the warranty, OS updates, library upgrades, security patches | Agree on a maintenance retainer or an internal owner |
| User acceptance testing | Your staff test real scenarios on top of their daily work | Schedule it in advance and protect the time |
| Handover and exit | Documentation, knowledge transfer, moving accounts | Put deliverables and exit assistance in the contract |
Taxes and invoicing
Ask whether quotes include PPN (VAT) and how withholding tax on services (PPh 23) will be handled. Vendors are not hiding anything here, but these items change the number your finance team ends up approving, so involve finance before you compare proposals.
How to compare outsourcing with an in-house team
Comparing a vendor's quote with a developer's monthly salary is the most common mistake in this decision. A fairer comparison takes a few steps:
- List the roles the project needs, for example a product owner, a UI/UX designer, two or three developers, a tester and part-time cloud support
- Cost the in-house option in full: salaries, BPJS Kesehatan and BPJS Ketenagakerjaan contributions, THR, laptops and software licenses, recruitment fees, and the months before new hires become productive
- Add turnover. Replacing a developer who resigns means another recruitment cycle and lost knowledge in the middle of the project
- Cost the outsourced option in full: vendor fees plus your oversight time, third-party services and post-launch maintenance
- Compare over two to three years, not only the build phase, because that is when maintenance and new features show the real difference
- Consider a mix. A common pattern is to outsource the first build while hiring a technical lead who will own the product and later grow a small internal team
Good inputs make every option cheaper. A clear software requirements document shortens estimates and reduces change requests, and our cost guide for web app development explains how effort and rates combine into a quote.
Contract and process safeguards
Before you sign, confirm that the agreement and the working process cover each of these points:
- Source code lives in a repository under your company's account from day one, with the vendor given access
- Cloud, domain, app store developer and payment gateway accounts are registered in your company's name
- All code, designs and documentation are assigned to your company on payment, with a perpetual license for any reused vendor components
- Each milestone has written acceptance criteria and a defined warranty period for defects
- Working software is demonstrated every one or two weeks on a staging environment you can access
- Key people are named, and replacements need your approval
- Data processing terms are in place: under Indonesia's Personal Data Protection Law (Law No. 27 of 2022, UU PDP), whose transition period ended in October 2024, your company usually acts as the data controller and the vendor as a data processor when it handles customer data
- Exit assistance is defined: architecture notes, deployment guide and handover sessions
The vendor itself matters as much as the paperwork. Our checklist on how to choose a software house lists the questions to ask in the selection meetings, and the comparison of agile vs waterfall helps you agree on a delivery method that fits how settled your requirements are.
FAQ
Is outsourcing cheaper than hiring an in-house team?
For a one-off build, often yes, because you avoid recruitment time, idle capacity and long-term employment costs. For a product that needs continuous development for years, an in-house core team can become the cheaper option and keeps knowledge inside the company. Compare total cost over two to three years, including your own management time, BPJS and THR for employees, and maintenance for the outsourced option.
Who owns the source code when we outsource?
Whoever the contract says owns it. Without a clear intellectual property assignment, ownership can be disputed later. Insist that all code, designs and documentation transfer to your company on payment, that the repository lives in your own account from the start, and that any reused vendor components come with a perpetual license you can keep using if you change vendors.
How do we avoid vendor lock-in?
Own the accounts: code repository, cloud, domain, app stores and payment gateway. Prefer widely used frameworks over a vendor's proprietary platform, require deployment documentation and automated deployment scripts, and schedule a handover session before the final payment. A simple test: could another competent team deploy and change the system within a few weeks using only what you hold?
Should we choose a local Indonesian vendor or an offshore one?
Choose based on the work. A local vendor shares your time zone and language, signs contracts under Indonesian law, and already knows requirements such as QRIS payments, e-Faktur and UU PDP. Offshore teams can make sense for niche skills. Either way, judge vendors on their delivery process, references you can actually call, and the people who will work on your project.
What should we keep in-house when we outsource?
Keep product ownership: setting priorities, accepting deliverables and talking to users. Keep control of accounts, credentials and data. If the system is core to your business, appoint a technical owner who can review architecture and code quality, even part-time. Design, development and testing can then be outsourced safely with the right contract and a regular demo rhythm.
How Weaveward can build this for you
We would begin with a short discovery that turns your goals into a scoped backlog, a total cost comparison of outsourcing, in-house and a mixed model, and a contract checklist covering code ownership, accounts and UU PDP data processing terms. If outsourcing is the right call, we would set up the repository and cloud accounts in your company's name, then deliver in two-week increments with demos on a staging environment you control, so you judge progress by working software rather than status reports.
Learn more about our IT consulting and project advisory services, or talk to our team about the project you are planning.
