Shipped three-way matching for a real distributor
in one week, with the demo moved up three days
Context
Who felt it: An accounts payable clerk at a wholesale distributor who checks every bill against an order and a delivery by hand.
A prospect running Prophet 21 on their own servers needed three-way matching: each bill checked against the purchase order and the goods receipt, line by line. There was no test copy of their system we could connect to, and the demo moved three days earlier.
Action
- Read the customer call transcript and turned one of their habits, booking small price differences to a general ledger account, into a real feature: an adjustment line, kept separate from a matched line.
- Wrote a 12-document plan the backend engineer could build against, with every open question numbered.
- Built the matching on our server in two steps, so the bill and order show immediately and the delivery details fill in behind.
- Cut scope out loud at standup: manual upload only, four or five realistic problem cases, lead with a clean match, and hide anything unfinished instead of faking it.
Result
The demo shipped on the new date. On the way I set up 11 realistic test bills and wrote down 8 backend behaviours nobody had documented.
Learning
I argued for a table that records every match, so finance could replay who matched what, and when. We skipped it to hit the date and worked each match out on the fly instead. I still think the record is the right end state: the first time someone asks why a line changed last week, working it out on the fly has no answer.
By the numbers
- ~25
- pull requests in one week
- 12
- planning docs the backend built against
- 11
- realistic test bills for the demo