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

Photo by Unsplash

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 a custom ERP for Commsult Indonesia — 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.