Migration benchComptoir Isser is a fictional business. The legacy system, the data and the discrepancies are all invented.
Comptoir IsserWholesale & half-wholesale · Boumerdès
Data extraction audit

GESCOM 2006, twenty years on.

Four modules, a Windows 7 machine in the back office, and a developer who left the country in 2014. This is the bench we run before quoting anything — and two times out of four it ends in keep it.

20Years of data
266 479Rows read
73Names lost
Act I

Does it really need replacing?

Four reasons justify it, and one is enough. Outside those four, keeping the system is almost always the right decision. Every cell below rests on evidence the bench holds — not on a box you tick.

ClientsGESCOM 2006 · 1 842 records
Migrate 4/4
No security patchesyesPersonal data, machine on the network
One person onlyyesOne operator runs the export
Blocks something you must doyesNo printable account statement
Unreadable datayes316 names damaged, 73 beyond recovery
CreditSpreadsheet · 31 tabs
Migrate 3/4
No security patchesyesMachine online, file passed around on a stick
One person onlyyesThe manager alone knows the tabs
Blocks something you must doyesNo ageing of outstanding balances
Unreadable datanoThe workbook is readable without the software
InvoicingGESCOM 2006 · 27 415 documents
Keep 0/4
No security patchesnoMachine off the network, serial printer output
One person onlynoThree operators invoice every day
Blocks something you must donoThe document produced is compliant
Unreadable datanoCodes and amounts, no typed text
StockGESCOM 2006 · 3 106 articles
Keep 0/4
No security patchesnoNetwork card pulled from the machine in 2019
One person onlynoFour storemen run it
Blocks something you must donoNothing is waiting on this module
Unreadable datanoLatin references, no free text entry
What we will not migrate

Invoicing stays on GESCOM 2006.

It does the job, three people use it, the printed document is compliant and the machine cannot see the network. Replacing it would cost the price of a project and fix nothing.

The expensive nuance: it reads the clients table, which does migrate. So the parallel run covers both, and a bridge stays in place for as long as invoicing lives on the old system.

What we will not migrate

Stock stays on GESCOM 2006.

None of the four reasons applies. The machine has had no network card since 2019, four storemen know how to run it, and the references are Latin — there is nothing to recover.

We score exposure, not age. A module with no patches is only a risk if it is reachable or holds personal data. This one is neither.

Act II

The proof that the data comes out.

We do not quote a migration before doing it once. Every row of the ledger below balances — read = out + not out — and every loss carries a named reason.

Clients
Read1 842
Out1 802
Not out40
31 · duplicate key9 · unreadable key
Articles
Read3 106
Out3 106
Not out0
Invoices
Read27 415
Out27 402
Not out13
13 · impossible date
Lines
Read214 880
Out214 704
Not out176
176 · orphan, no parent document
Payments
Read19 236
Out19 178
Not out58
58 · zero row with no document
Total
Read266 479
Out266 192
Not out287
Replayed once. Two identical passes are required before the cutover.
Encoding survey — 1 802 records outNames typed in Arabic into software that never expected them.
1 486Clean
243Recoverable
73Lost
C-0412
EURL EL RIAD
BOUDOUAOU
Clean
C-0873
ÇáÃãÇäÉ
THÉNIA
Recoverable
C-1109
??????
BORDJ MENAÏEL
Lost
C-1204
ETS BENHAMOU
ZEMMOURI
Clean

Half the file is correct and half is not — which is the worse of the two cases, because nobody notices until the new system is live.

Act III

Both of them run at once.

A single big-bang cutover over a weekend is the fastest way to lose both the data and the confidence of the people using it. So both systems run together, and when they disagree the bench does not decide — it names who does.

The parallel run covers credit. Clients have no arithmetic to compare: their check is the line-by-line reconciliation in Act II.

Credit — twelve days running in parallel9 days agreed · 3 discrepancies
D1Both systems give the same figure.
D2Both systems give the same figure.
D3OpenThe two systems do not give the same figure.
D4Both systems give the same figure.
D5Both systems give the same figure.
D6Both systems give the same figure.
D7OpenThe two systems do not give the same figure.
D8Both systems give the same figure.
D9Both systems give the same figure.
D10OpenThe two systems do not give the same figure.
D11Both systems give the same figure.
D12Both systems give the same figure.
D3 · Counter roundingOpen
old 184 260new 184 267

A balance settled in cash at the counter is rounded down to the nearest ten dinars. The new system counts to the dinar.

Neither is wrong. They are two conventions, and the business has applied one of them for twenty years without anybody writing it down.

Who decides

the accountant He signs off the close, and the rounding runs through it.

D7 · DiscountOpen
old 92 400new 88 800

The discount lands at line level on one side and at invoice level on the other. On a mixed basket the two cannot both come out right.

Neither is wrong. They are two conventions, and the business has applied one of them for twenty years without anybody writing it down.

Who decides

the manager A discount is a commercial decision, and he takes it.

D10 · Returned depositsOpen
old 46 800new 42 300

Thirty crates came back to the warehouse. The new system carries them as a negative line against the day’s credit; the old one records them in a separate deposit register whose figure never reaches credit at all.

Neither is wrong. They are two conventions, and the business has applied one of them for twenty years without anybody writing it down.

BL-8841
C-0412
Credit for the day, Credit module
old18 400
new18 400
BL-8842
C-1204
Credit for the day, Credit module
old12 900
new12 900
BL-8843
C-0873
Credit for the day, Credit module
old15 500
new15 500
RET-114
C-0412
Return of 30 deposit crates
oldabsent
new-4 500
Total J10
old46 800
new42 300
Who decides

the warehouse foreman The crates are counted at the warehouse: he is the one who knows what came back, and the only one.

What the arbitration produces

A written rule, not a corrected figure.

It goes into the new system’s code and into a document you keep. That is the half of the work nobody invoices: the rules that lived in one employee’s head, written down once and for all.

6 rules writtensince the parallel run began
The cutover

Switching the old one off is not a date.

It is an event: the first close both systems pass giving the same figure. The button opposite exists, it is the only one on this page, and it refuses until all four conditions are met. Nowhere here is there a command that switches everything over at once.

What is missing
  • The extraction has only been replayed once. Two identical passes are required.
  • A discrepancy is still open — D3, Counter rounding.
  • No arbiter is named for the Clients module.
  • The archive of the old system has not been produced.
Bench state
Identical replays1 / 2
Open discrepancies3
Arbiters named1 / 2
Archive readable at your premisesno

The missing conditions are listed alongside. The button only becomes pressable once all of them are met — and a system switched off that nothing can be got out of is not a system stopped, it is a system lost.

The schema nobody documented

Sixty columns, no instructions.

The model reads the column names and proposes a mapping. It can only name a field of the new database, or unknown — it has no box to invent in, and no field to write a figure in.

Real call to the model
CLI_COD
CLI_NOM
CLI_NOM2
CLI_ADR
TEL2
SOLD_ANT
SOLD
PLAF
REF_ART
DESIG
COND
NUM_FAC
DAT_MVT
MT_HT
MT_TTC
OBS3
QTE
PU
DAT_REG
MT_REG
MOD_REG
CODE_REP
Comptoir Isser — Boumerdès. A fictional business, built to show a migration bench.Algeria Agency · Legacy system modernisation

We measure how this site is used with Google Analytics, to learn which pages actually help. You can stop that measurement at any time from the footer. Cookie policy