Key Takeaway
In my experience, ERP projects in Indonesian SMEs mostly fail for non-technical reasons: weak change management, a budget that covers only development, customization creep and data migration left too late. Gartner expects more than 70% of recently implemented ERP initiatives to fall short of their original business goals by 2027, and every one of these causes can be settled before any code is written.
Indonesia's SME sector is in the middle of a quiet digital transformation. Many businesses that ran on spreadsheets and WhatsApp groups for years are now evaluating or actively implementing custom ERP systems. Yet ERP projects keep disappointing: Gartner predicts that by 2027 more than 70% of recently implemented ERP initiatives will fail to fully meet their original business goals. 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.
The Four Root Causes of ERP Failure
In my experience, most ERP failures trace back 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.
Poor Change Management: The Human Problem
In my experience, technology is the smaller part of an ERP project — most of the work 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.
Under-Resourcing: The Budget Trap
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. The split I plan around for a medium-sized implementation is roughly 40% development, 20% data migration and testing, 20% training and change management, and 20% hypercare support after 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 runs out early
│ │ │
└──────────────────┴─────────────────────┘
│
▼
┌─────────────────┐
│ 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.
Customization Creep and Scope Management
Another failure mode I see constantly is what I call 'customization creep' — the ERP system starts simple, then every department adds 'just one more requirement' until the budget runs out long before 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.
Using Feature Flags for Phased Rollout
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);
}Data Migration: The Hidden Crisis
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 the projects I have worked on, data migration has consistently taken two to three times 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.
Training That Actually Works
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.
The Realistic Timeline for Indonesian SME ERP Projects
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.

