Interim Policy on Temporary Debug Flag
The debug flag was added on a Tuesday afternoon as a quick fix and promoted to production the following Thursday.
Preliminary Findings: Temporary Debug Flag
Subject: ENABLE_LEGACY_PATH=true Environment: Production (unintended) Status: Ongoing, no expiration condition documented
Background
On the fifteenth of the previous quarter, an engineer added a debug flag to the configuration. The flag was described in a PR comment as "temporary, for investigation." The flag was named ENABLE_LEGACY_PATH. The flag was set to true.
The investigation concluded. The flag was not removed.
What Was Found
The governing rule: a technical shortcut may remain temporary for as long as nobody writes down its expiration condition. ENABLE_LEGACY_PATH had no documented expiration condition. The investigation was complete, but "complete" was not written down anywhere the flag could read it.
The system appears calmer with the flag enabled. This is known. Why it appears calmer is less certain. The engineer who added the flag has rotated to a different team. The current team has inherited the flag as given.
Current Operational Status
The flag is temporary. The flag has been temporary for eight months.
Three new services have been built in the intervening period. One of them routes traffic differently depending on whether ENABLE_LEGACY_PATH is true or false, because someone checked the existing config for reference and assumed this was intentional behavior.
Removing the flag is now a project. The project is scheduled. The project is in the backlog.
Finding
The team records the symptom as resolved but not the mechanism. Months later the same condition returns with enough history to make the temporary fix look like architecture.
ENABLE_LEGACY_PATH is architecture.
Recommended Action: Document the flag's purpose. Document the condition under which it should be removed. Do not add another flag to investigate the first flag.