Poka-yoke in issuing a new sales item number: the in-house microservice for Master Data Management of TECTRA Ltd’s product portfolio finds the existing sales item number N with the most-similar-looking textual description and then finds an available number for the new item that is most unlike number N when typed.
The end result is a new item number that, if mistyped or misquoted (by us or by a customer), will result in an inquiry/order that is blatantly and obviously incorrect.
This is achieved with the Levenshtein distance . It could also be helped with a bit of stemming and NLP (e.g., with spaCy), but it’s probably overkill.
A simple alternative is to identify the largest “island” of available numbers among the already-issued set, and then use a symmetric triangular distribution (Python’s random.triangular(min, max, mode)
) to pick a random number between the island’s min and max values. This works too, however without guaranteeing typo-resilience.
UX is more than UI. It’s also about taking care of all the little details that add up to a worry-free process.
(Poka-yoke (ポカヨケ, [poka yoke]) is a Japanese term that means “mistake-proofing” or “inadvertent error prevention”.)