<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Legacy-Systems on Brian Faust</title><link>https://vacua.dev/tags/legacy-systems/</link><description>Recent content in Legacy-Systems on Brian Faust</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Mon, 01 Jan 0001 00:00:00 +0000</lastBuildDate><atom:link href="https://vacua.dev/tags/legacy-systems/rss.xml" rel="self" type="application/rss+xml"/><item><title>Technical Debt Is a Change Tax You Can Name</title><link>https://vacua.dev/thoughts/technical-debt-is-a-change-tax-you-can-name/</link><pubDate>Sat, 01 Jun 2019 00:00:00 +0000</pubDate><guid>https://vacua.dev/thoughts/technical-debt-is-a-change-tax-you-can-name/</guid><description>&lt;p&gt;A retained compatibility change introduced a contract version and a measured
fallback lookup. Related work made acquisition atomic, separated expiration
from wall-clock dates, narrowed compatibility fields, enforced authorization,
and protected unselected drafts.&lt;/p&gt;
&lt;p&gt;That history proves several rules had to become explicit. It does not prove
that the old design charged technical-debt interest. The changes might be
planned slices, newly discovered requirements, corrections, or work a
different design would also need.&lt;/p&gt;</description></item><item><title>A Characterization Test Is Not a Product Decision</title><link>https://vacua.dev/thoughts/a-characterization-test-is-not-a-product-decision/</link><pubDate>Fri, 01 Mar 2019 00:00:00 +0000</pubDate><guid>https://vacua.dev/thoughts/a-characterization-test-is-not-a-product-decision/</guid><description>&lt;p&gt;A label setting behaved differently in test and production. Some customers
had come to depend on the difference even though the product already let them
choose the label size they wanted.&lt;/p&gt;
&lt;p&gt;A characterization test could record both defaults. It could tell us which
callers would notice if we made them equal. It could not answer the important
question: should the difference survive?&lt;/p&gt;
&lt;p&gt;Keeping it would protect customers who had never configured the setting.
Removing it would give every environment one rule and make the customer&amp;rsquo;s
choice explicit. The same observation supported arguments for either response.
Only one response matched the product we wanted to operate.&lt;/p&gt;</description></item><item><title>A Characterization Suite Is Scoped to a Change</title><link>https://vacua.dev/thoughts/a-characterization-suite-is-scoped-to-a-change/</link><pubDate>Fri, 01 Feb 2019 00:00:00 +0000</pubDate><guid>https://vacua.dev/thoughts/a-characterization-suite-is-scoped-to-a-change/</guid><description>&lt;p&gt;A booking endpoint had more than thirty characterization cases. They covered
successful bookings, validation failures, wallet rules, locks, pending work,
email routing, and several provider response shapes.&lt;/p&gt;
&lt;p&gt;The next refactor removed one ambient HTTP dependency from the booking
services. The suite looked broad enough.&lt;/p&gt;
&lt;p&gt;It was not broad in the direction of the change.&lt;/p&gt;
&lt;p&gt;One service read the global request to persist the original payload. Replacing
that read with the existing booking data object would keep ordinary responses
green while silently storing normalized values where operators expected the
raw input. The suite already protected a test-mode short circuit. It needed a
new case for the two representations.&lt;/p&gt;</description></item><item><title>A Directory Map Is Not a Redesign Plan</title><link>https://vacua.dev/thoughts/a-directory-map-is-not-a-redesign-plan/</link><pubDate>Tue, 01 Jan 2019 00:00:00 +0000</pubDate><guid>https://vacua.dev/thoughts/a-directory-map-is-not-a-redesign-plan/</guid><description>&lt;p&gt;A reorganization plan found dozens of domain directories and several older
modules. It assigned them to a set of proposed bounded contexts, selected an
apparently isolated location-and-address context as a safe starting point, and
described where its files should move.&lt;/p&gt;
&lt;p&gt;The map was detailed. It was also missing the part which determined whether
the boundary was real.&lt;/p&gt;
&lt;p&gt;In the running system, the legacy application kept service-point policy while
calling separate location and postal applications. Location lookup called
postal lookup. Each application owned different state. Booking, validation,
labels, returns, settings, administration, and health checks all consumed some
part of the flow.&lt;/p&gt;</description></item></channel></rss>