Why ERP Implementations Fail in Indonesian Businesses — And How to Avoid It

Photo by Unsplash
Industry reports suggest 50–75% of ERP implementations either fail outright or significantly underdeliver. The four root causes are poor change management, under-resourcing the project, customization creep, and inadequate training. In the Indonesian context, a strong hierarchical culture and SME budget constraints amplify each of these problems.
A realistic budget breakdown allocates 40% to development, 20% to data migration and testing, 20% to training and change management, and 20% to hypercare support after go-live. Many SMEs only budget for software development and neglect the implementation costs, which is one of the main reasons projects end up with a working system that nobody uses.
Customization creep happens when each department adds 'just one more requirement' until the budget is exhausted at around 60% completion and the core system is never delivered. The most effective mitigation is a formally scoped Phase 1 that covers only the highest-value processes, followed by a structured roadmap for later phases. Using feature flags in the codebase lets teams enable modules per department as they become ready, rather than attempting a full simultaneous go-live.
In practice, data migration takes 2–3x longer than estimated because Indonesian SMEs often have years of Excel files with merged cells, inconsistent date formats, duplicate customer codes, and missing required fields. The fix is to start the data audit on day one of the project rather than leaving migration to the last minute.
For a medium-sized Indonesian SME with 50–200 employees, a custom ERP covering HR leave, accounts payable, and accounts receivable should be planned over 6–9 months. The schedule runs from requirements gathering and data audit in months 1–2, through core development and UAT in months 3–5, parallel running in month 6, hard cutover and hypercare in month 7, and Phase 2 planning in months 8–9.

Photo by Unsplash
Indonesia's SME sector is in the middle of a quiet digital transformation. Thousands of businesses that ran on spreadsheets and WhatsApp groups for years are now evaluating or actively implementing custom ERP systems. Yet the failure rate for ERP projects remains stubbornly high — industry reports suggest 50–75% of ERP implementations either fail outright or significantly underdeliver. Having built custom ERP systems as a freelance consultant — covering HR management, accounts payable with multi-level approval, and accounts receivable with automated reminders — I've seen firsthand what works and what doesn't. This post is an honest diagnosis of the most common failure patterns in the Indonesian business context, and a practical guide to avoiding them.
Most ERP failures can be traced to four recurring problems: poor change management, under-resourcing the project, customization creep, and inadequate training. These aren't unique to Indonesia, but the local business culture and SME constraints amplify each one in specific ways.
Technology is only 20% of an ERP project — the other 80% is people and process. When a business adopts an ERP system, it forces people to change how they do their jobs every single day. Department heads who are not involved in the selection process will resist the system. Staff who built their careers on knowing 'which Excel file to open' suddenly feel their expertise is being erased. In Indonesian businesses, there's often a strong hierarchical culture — if the senior manager doesn't visibly champion the system, the team won't adopt it. The fix is executive sponsorship that goes beyond writing a memo: the CEO or director should use the system themselves, visibly, in the first month.
Many Indonesian SMEs budget for the software development cost but forget to budget for implementation — data migration, staff training, parallel running, and internal project management. A custom ERP project is not 'done' when the last feature is deployed; it's done when the last user is productive on it. A realistic budget breakdown for a medium-sized implementation: 40% development, 20% data migration and testing, 20% training and change management, 20% hypercare support post-go-live. Cutting any of these is how projects end up with a 'working' system nobody uses.
ERP Implementation Failure Patterns (Indonesia SME Context)
┌─────────────────────────────────────────────────────────┐
│ ERP PROJECT STARTS │
└──────────────────────────┬──────────────────────────────┘
│
┌───────────────────┼───────────────────┐
▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────────┐
│ Poor Change │ │Under-Budget │ │ Scope Creep / │
│ Management │ │& Understaffed│ │ Customization │
└──────┬──────┘ └──────┬──────┘ └────────┬────────┘
│ │ │
▼ ▼ ▼
Staff resistance Go-live rushed "Add this feature"
No buy-in from No UAT period requests pile up
department heads Data not cleaned Budget blown at 60%
│ │ │
└──────────────────┴─────────────────────┘
│
▼
┌─────────────────┐
│ PROJECT FAILS │
│ or abandoned │
└─────────────────┘
✓ Prevention: Executive sponsorship + phased rollout
+ dedicated internal champion per departmentAppoint an internal ERP champion per department — not just a project coordinator. This person owns adoption for their team, runs internal training sessions, and is the first point of contact for questions. Without department-level champions, the implementation team becomes the only support resource, which doesn't scale.
The second most common failure mode is what I call 'customization creep' — the ERP system starts simple, then every department adds 'just one more requirement' until the budget is exhausted at 60% completion and the core system is never actually delivered. This is particularly common in Indonesian businesses where decision-making is often consensus-driven and it's culturally difficult to say no to a senior stakeholder's feature request.
The most effective mitigation is a formally scoped Phase 1 — a core, hardened, production-ready system that covers the highest-value processes — followed by a structured roadmap for Phase 2 and beyond. Use feature flags in your codebase to enable modules per department as they become ready, rather than trying to go live with everything at once.
// NestJS: Feature flag service for phased ERP rollout
@Injectable()
export class FeatureFlagService {
private flags: Record<string, string[]> = {
'hr-leave-module': ['pilot-team'],
'accounts-payable': ['pilot-team', 'finance-dept'],
'accounts-receivable': ['finance-dept'],
'full-erp': [], // not yet enabled for all
};
isEnabled(feature: string, userDept: string): boolean {
const allowed = this.flags[feature] ?? [];
return allowed.includes(userDept) || allowed.includes('all');
}
}
// Usage in controller guard
@Get('leave/request')
@UseGuards(FeatureFlagGuard('hr-leave-module'))
async requestLeave(@Body() dto: LeaveRequestDto) {
return this.leaveService.create(dto);
}Every ERP implementation has a data migration problem — historical data sitting in Excel files, WhatsApp messages, and email attachments that needs to be cleaned, validated, and loaded into the new system. In practice, data migration always takes 2-3x longer than estimated. Indonesian SMEs often have years of Excel files with merged cells, inconsistent date formats, duplicate customer codes, and missing required fields. Don't let the migration happen at the last minute — start the data audit on day one of the project.
Never go live on a Monday. If your ERP go-live coincides with month-end closing or payroll processing, you're combining maximum business risk with maximum system stress. Schedule go-live for mid-month, mid-week, with a full hypercare team on standby. Also have a tested rollback plan ready — know exactly what steps you'll take if the system fails in the first 48 hours.
Generic training manuals don't work. Users need training on the specific scenarios their department actually encounters — how to submit a leave request, how to approve a payment voucher, how to reconcile an AR statement. Record short screen-capture videos (3–5 minutes each) for each workflow and put them in a company wiki. Supplement this with monthly 'ERP clinics' — 30-minute open Q&A sessions where the implementation team answers questions live.
For a medium-sized Indonesian SME (50–200 employees) implementing a custom ERP covering HR leave, AP, and AR: plan for 6–9 months from kick-off to stable production. Month 1–2: requirements gathering and data audit. Month 3–5: core development and UAT. Month 6: parallel running (old system + ERP simultaneously). Month 7: hard cutover and hypercare. Month 8–9: Phase 2 planning and non-critical feature development.