23 Oct 2026
Every script in a migration needs to read the old system and write to the new one. Three-part names everywhere make that brittle and impossible to test. There is a tidier answer and it takes ten minutes.
More …
21 Oct 2026
Ten years of independent development meant one system had features the other had never heard of. You cannot map a table onto a table that does not exist, so a good part of a data migration project turned out to be ordinary feature development.
More …
19 Oct 2026
Two bespoke systems that were the same product a decade earlier, then developed independently ever since. The base tables still rhyme. Everything built since does not. This is what merging them actually involves.
More …
14 Oct 2026
Every screen has a menu of things you can do to the record you're looking at. Packaging each one as an object is the Command pattern. The part most explanations skip is that you need a second object to say whether it should be there at all.
More …
09 Oct 2026
We have an API endpoint that takes a command and answers with a redirect, a notice or a warning. A page just wants the link to an order. The Adapter pattern is the small class in between, and the reason it exists isn't that anybody got the API wrong.
More …