Client
Foresight Metal Engineering Pte Ltd
Role
ERP Business Analyst & Project Manager
Discipline
Requirements · data migration · UAT · cutover
System
FACT ERP.NG

Stock existed on an invoice and nowhere else

What was achieved

Cost avoided
100%
Opening balances reconciled before go-live
Process improved
100%
Must requirements traced to a signed acceptance test
Cost avoided · programme result
95%
Fewer duplicate orders

Stock was recorded only on invoices. There was no system of record, so no balance could be verified.

What I personally did on this

Owned
Requirements · the data migration plan · UAT
Led
Vendor coordination and cutover
Collaborated with
FACT Software

From an organised warehouse to a system that knows it

What Part 1 left behind
  • An addressing scheme that existed on labels and in a spreadsheet
  • An SOP that depended on people remembering to follow it
  • Shipment status still updated by hand in Airtable
  • An accounting system that could invoice but could not hold a location
  • A measured improvement with no mechanism to hold it in place
What Part 2 added
  • A BRD and FRD with every requirement owned by a named department
  • A fit-gap assessment against six mandatory capabilities
  • A location master keyed on the Part 1 scheme, inside the ERP
  • A reconciled Day 0 built from a physical count, not the old ledger
  • Six UAT scenarios lifted from real process branches, signed by owners

Where the bottleneck lived

Before
Goods arriveAgainst a purchase order
⚠ Bottleneck Received into “the warehouse” The system knew a quantity existed. It could not say where, so someone had to remember.
Sales walks the floorOr asks whoever is nearest
After
Goods arriveMatched to the purchase order line
✓ Control Receipt blocked without a valid location The system refuses to commit until stock has an address
✓ Answer Sales queries from the desk Quantity and location, verifiable against a spot-check
Ongoing, without a consultant in the room
A question comes up in hypercareSomething the SOP did not anticipate
✓ Feedback The answer goes into the SOP, not into a conversation Otherwise it becomes tribal knowledge again, which is the problem Part 1 solved

What shaped the decisions

Why a Part 2 was necessary at all

Part 1 produced a real, measured improvement using paper, labels and discipline. That kind of improvement has a shelf life. It lasts exactly as long as the people who were trained on it, and it decays the first busy week nobody has time to update anything.

Putting it in a system was not a technology decision. It was the only way to make the improvement outlive the attention that created it.

What they needed, and why it mattered

Because Part 1 had already documented the inbound and outbound process, requirements started as a module-by-module review of how the company actually works rather than a walk through the vendor’s feature menu.

  1. 01
    Location-level stock visibility
    Quantity queryable by product code and storage position, not just as a company-wide total.
    This is the requirement Part 1 exists to make possible, and the only one that removes the walk to the shelf.
    Owner: Operations · new capability
  2. 02
    Receive against a PO and assign stock to a location
    The goods receipt cannot be committed until a valid registered location is chosen.
    A control, not a convenience. Without it the location master silently empties out as people skip the field on a busy morning.
    Owner: Operations and Accounts · partially existing
  3. 03
    Pick from the indicated location, and consolidate delivery
    Picking confirmed against the location barcode, with the order progressing through picking, packing, shipping and delivered.
    Stock has to decrement at the right position, not just in aggregate — otherwise the totals stay right while every location slowly goes wrong.
    Owner: Sales and Operations · existing but manual downstream
  4. 04
    Carry proven accounting practice forward untouched
    General ledger and bank handling stay as they are. No redesign of anything that was already working.
    Every unnecessary change spends adoption goodwill that the warehouse changes actually need. Scope discipline is an adoption strategy.
    Owner: Accounts · deliberately out of scope
  5. 05
    Every requirement carries a named departmental owner
    Ownership assigned at the moment the requirement is written, not negotiated later when testing starts.
    A requirement with no owner cannot be signed off, which makes acceptance testing unaccountable and turns go/no-go into an opinion.
    PM control · applies to all requirements

Seven phases, and each one feeds the next

An ERP implementation is not one workstream. It is several dependencies converging on a single cutover date, which is why the sequence matters more than the effort in any one phase.

The delivery lifecycle, and the evidence that closes each phase
Seven phase ERP journey from discover through hypercare, with the exit evidence required to close each phase
01
Discover. The unusual advantage here: the current state was already documented. Part 1 had produced the process maps, so discovery started from a written baseline instead of a blank page.
02
Define. Module-by-module review, each business requirement decomposed into functional behaviour and an acceptance test, each assigned to a department.
03
Select. Fit-gap against six capabilities the process actually needs. The incumbent system failed on the first three, and those three were mandatory.
04
Migrate. Four sources, four different trust levels. Only one arrived clean, and that was the one built by hand in Part 1.
05
Prove and transition. Test the whole chain rather than each screen, then cut over with the legacy system still available until the daily numbers agree.

Six questions, answered in order

Each analysis answers one question, and each answer is what made the next question worth asking.

01Why did a working warehouse need a second project?
Before, Part 1 and Part 2 shown as one transformation, with what each half contributed
Two halves of one transformation — physical order, then order that survives people
What it showed

Part 1 worked. That is precisely what made Part 2 urgent rather than optional. An improvement held in place by labels, a spreadsheet and recent training has a decay curve, and everyone involved could name the week it would start.

Framing it as two halves of one transformation rather than two projects is what got the second one funded. The argument was not here is more to buy; it was here is what protects what you already paid for.

02How does “we want inventory visibility” become something a vendor can build?
Traceability from business problem to BRD to four functional requirements to a UAT scenario and departmental sign-off
One requirement, traced from the problem that caused it to the test that proves it
What it showed

“Inventory visibility” is not a requirement, it is a wish. It decomposes into a location master, a mandatory location on receipt, barcode confirmation on movement, and a stock enquiry that returns quantity by position — four buildable statements, each testable.

The chain runs in both directions on purpose. Backward it answers why are we building this, which is what kills scope creep. Forward it answers how will we know it works, which is what makes sign-off mean something.

03Did the incumbent system genuinely have to be replaced?
Six requirements assessed against the existing accounting system with a decision lens, leading to FACT ERP.NG
Fit-gap: six capabilities, three of them mandatory and unavailable
What it showed

The old application was not bad software. It was accounting software being asked to be warehouse software. It could invoice correctly and could not represent a bin, and no amount of configuration was going to change the second thing.

The last row is the one that mattered most for adoption: accounting continuity was scored as minimise unnecessary change. Finance was working. Replacing it would have spent goodwill the warehouse changes needed.

04What actually kills an ERP go-live?
Four data sources through profile, clean, map, test load, reconcile, sign-off and freeze to a trusted opening balance
Data migration — building a Day 0 the business is willing to stand behind
What it showed

Not configuration. Data. A system that opens with balances nobody believes gets worked around within a fortnight, and then the shadow spreadsheets come back and the whole programme has achieved nothing.

The decision that defines a migration is what to do when the ledger and the physical count disagree. Importing the ledger figure is fast and wrong. Every variance was investigated to a cause — pending movement, wrong location, damage, duplicate code, old entry error — and only an approved balance became an opening quantity.

05How do you know it works, rather than hope it does?
Transaction chain from PO to dispatch with three sign-off gates and six UAT scenarios
Test the transaction end to end, not the screens one at a time
What it showed

Every screen can pass its own test while the transaction still breaks between two of them. The chain from purchase order to dispatch is the unit that matters, because that is the unit the business actually runs.

The scenario worth pointing at is the short shipment. Happy paths pass everywhere; exception branches are where systems fail in production. Those branches came out of the Part 1 SOP — short receipts, QC failures, self-collection, split deliveries — rather than being invented from the software.

06How do you switch systems without stopping a company that ships daily?
Cutover timeline from four weeks out through go-live to hypercare, with role based training
Cutover — sequenced around the operating calendar, with a rollback still available
What it showed

The project team does not choose the go-live date; the operating calendar does. Everything before T0 exists to make T0 boring, and the parallel run exists so that a bad day is a bad day rather than an outage.

Training was scoped by role rather than delivered as one session, because a warehouse operator and an accounts clerk need different things and a combined session teaches neither well. Part 1 had already documented resistance from long-tenured staff, which made repetition a deliverable rather than a nicety.

When a test fails, isolate the layer before escalating
Failure layerThe question that identifies itWhat it costs to get wrong
DataIs the source, master or opening balance wrong?Fixing config that was never broken
ConfigurationDoes the configured rule differ from the FRD?Retraining users on correct behaviour
ProcessIs the SOP unclear, or operationally unrealistic?A defect log full of things that are not defects
IntegrationDoes the transaction break between modules?The one that reaches production most often
AdoptionIs the function correct but being bypassed?Everything works and nothing improves
The prioritisation rule that keeps a defect log honest

Severity is set by go-live impact, not by how loudly it was reported. P1 blocks receiving, inventory integrity or customer dispatch. P2 has a workaround. P3 is real but can wait behind critical-path work. Every defect carries expected behaviour, evidence, an owner, a target fix and a re-test date — otherwise the log becomes a list of complaints.

What it looks like to the people using it

The Part 1 addressing scheme, living inside the ERP. These are the screens the requirements above were written to produce.

FACT ERP location master screen holding the warehouse addressing scheme
Location master — every rack and bin address as a unique system record
FACT ERP warehouse identifier configuration carrying the Part 1 addressing format
The Part 1 addressing format, carried into the system unchanged
FACT ERP picking screen showing stock picked from an indicated location
Picking against a delivery order, from the indicated location
FACT ERP delivery order states progressing through picking, packing and delivery
Delivery states — status the whole company can see, replacing the manual tracker
FACT ERP mobile dashboard for use on the warehouse floor
Mobile access — because the person who knows the stock is not sitting at a desk
Why the screens matter to the argument

They are the proof that the addressing scheme survived the transition. A location structure that exists only on physical labels is a Part 1 artefact; the same structure holding as a queryable master, enforced on receipt and confirmed on pick, is what makes it permanent.

Two halves, one result

Part 1 gave the warehouse structure. Part 2 gave the operation a memory. Neither one alone would have held.

Six before and after pairs, and the structure, memory and control summary of both parts
What changed, and which half of the programme changed it
The lesson, and it is the whole argument

Software does not create order. It preserves order that already exists. If a process is not defined well enough for a system to hold it, the process work has to happen first — which is why the sequencing was not negotiable, and why the location master was the only data source that needed no cleansing.

What is measured and what is method

The 95% figure was measured in Part 1 and belongs to the programme, not to this half. The migration reconciliation and the requirements traceability are Part 2’s own. Everything else on this page — the phase model, the gate structure, the defect layers — is described as implementation method, because that is what it is.

What produced each result

Three deliverables, and each one maps to a number at the top of this page.

Produced the 100%

The migration reconciliation

Four sources profiled and ranked by how far they could be trusted, a physical count as the authority on quantity, and a documented investigation behind every variance before it was allowed to become an opening balance.

Produced the 100%

The traceability matrix

Business problem, business requirement, functional behaviour, acceptance scenario and named owner held on one line. It is what turns “configured” into “accepted” and gives the go/no-go decision something to stand on.

Produced the 95%

The location master and stock enquiry

Part 1’s addressing scheme as a queryable system record, enforced at goods receipt and confirmed on pick. Duplicate ordering stops when anyone can see what is already held and precisely where it sits.

What I would do differently

I would put the exception branches into UAT earlier. Short receipts, QC holds and split deliveries were tested, but they were tested after the happy paths, and the happy paths are never where an implementation gets hurt. Front-loading them would have surfaced the awkward workflow questions while there was still configuration time to answer them properly rather than with a documented workaround.

Part two of two

How it was actually done

Everything above is the business read. Everything below is the implementation method: how requirements became testable behaviour, how the data was made trustworthy, and how the switch happened without stopping a company that ships every day.

!Before you open this

Everything above is the bottom line. If that is what you came for, you already have it.

What follows is the full working: 13 diagrams and 8 sections of working, the analysis behind each decision, and why it went that way instead of the obvious way. It is long on purpose. It is written to be checked, not skimmed.

Only wanted the overview? Stop here. You will not miss a single result — every number is already above this line.