Survivors of Web 1.0 A support group for those of us who know how this ends.
1

Step 1: Admission

We admitted we were powerless over the hype cycle — that our skepticism had become unmanageable.

For years we said "we tried that" and we were right. But being right and being heard are different things, and being right about the last version of a technology does not mean you understand the current version. The first step is admitting that "this is different from last time" and "I have heard this before" are both true simultaneously, and that holding only one of them is a failure of analysis.

2

Step 2: Belief

Came to believe that a capability greater than our cynicism could restore us to productive engagement.

The cynicism was earned. It is also now a liability. There is a version of experience that becomes a filter for everything new, and that version is indistinguishable from being wrong in a more sophisticated way. The second step is acknowledging that the part of you that watched three hype cycles peak and crash is not the same part that should be evaluating the fourth one.

3

Step 3: Decision

Made a decision to actually use the tools before deciding what they cannot do.

This is harder than it sounds. The natural motion of someone who has been burned before is to construct the argument against adoption before attempting adoption. The third step is agreeing to reverse the order: use first, argue second. Forty hours of use. Not a demo. Use.

4

Step 4: Inventory

Made a searching and fearless inventory of what we actually know versus what we remember.

There is a difference between understanding why XML namespaces are overcomplicated and understanding whether the current generation of AI tooling has the same structural problems. The fourth step is separating the specific technical memories from the general pattern-matching. Some patterns transfer. Some do not. We do not yet know which ones.

5

Step 5: Admission to Others

Admitted to our teams, to ourselves, and to our calendar invites the exact nature of our resistance.

"I don't trust it" is not an engineering position. "I tried the demo and found that it fails on edge cases involving X, Y, and Z" is an engineering position. The fifth step is converting the first sentence into the second one, and being honest about which one we have been saying in meetings.

6

Step 6: Readiness

Were entirely ready to have the AI remove all these defects of manual process.

The sixth step involves sitting quietly with the fact that some of the things we call "expertise" are actually just "I know where the bodies are buried because I buried them." An AI that can read the codebase and the commit history knows where the bodies are buried too. This is useful. It is also, if we are being honest, slightly terrifying.

7

Step 7: Humility

Humbly asked the model to generate the thing we would have spent a week on.

Not a resignation. A calibration. The seventh step is assigning appropriate tasks to appropriate tools: things that require context and judgment go to humans; things that require pattern-matching over a large corpus go to models; things that require both go to humans with models as a first draft. The humility is in admitting we are still figuring out which category is which.

8

Step 8: List

Made a list of all the meetings where we predicted failure, and became willing to check the outcomes.

We have been right a lot. We have also been wrong. The eighth step is maintaining an honest scorecard. Not a list of our hits. A list of our calls, with outcomes. Because the alternative — remembering only the times we were right — is not wisdom. It is a portfolio of confirmation bias dressed up as experience.

9

Step 9: Amends

Made direct amends to junior engineers we dismissed when they suggested automation, except when to do so would injure them or others.

There are people who are not in our field anymore because we made the environment for their ideas inhospitable. The ninth step is not about guilt. It is about understanding that the institutional bias toward "we've tried this" disproportionately lands on people who are newer to the field and therefore less likely to be told that their instincts are worth more than our memories.

10

Step 10: Continued Inventory

Continued to take personal inventory and when we were being a blocker, promptly admitted it.

The tenth step is a daily practice. Every time you say "I'm concerned about the long-term maintainability of this approach," check whether you have read the current documentation or whether you are operating from the documentation from the last time you looked. The field moves. So must the inventory.

11

Step 11: Contact

Sought through experimentation and pair-programming to improve our conscious contact with the tools, asking only for a working diff and the courage to commit it.

The eleventh step is practice over principle. It is possible to have a sophisticated philosophical position on agentic AI and zero productive hours with the actual tools. The eleventh step suggests this is not wisdom. It is procrastination with better vocabulary.

12

Step 12: Service

Having had an awakening as the result of these steps, we tried to carry this message to other engineers, and to practice these principles in all our pull requests.

The twelfth step is not evangelism. It is modeling. We do not tell people that AI is going to change everything. We show them a diff that was improved by working with a model, and we describe what the process was actually like — the wrong turns, the regenerations, the moments where human judgment was irreplaceable, and the moments where it was not. The others will draw their own conclusions. They always do.

A row of small grey concrete tombstones in a quiet field at dusk, engraved with technology logos from the 2000s: XML, SOAP, SOA.

Hall of Deprecated Technologies

We remember those we have outlived. May they find peace in the long tail of legacy support contracts.

XML / SOAP

1998 – 2011 (officially), 2011 – present (in production)

"Verbose in life. Verbose in death. The schema validates. The schema has always validated. Nobody reads the schema."

Service-Oriented Architecture (SOA)

2003 – 2009

"Promised a world where every business function was a reusable service. Delivered a world where every team had a different definition of 'service.' Was immediately replaced by microservices, which are the same idea with a different word and smaller boxes."

Ruby on Rails Hype

2005 – 2009

"Showed us that convention over configuration was possible. Then showed us that convention over configuration requires agreeing on conventions, which turned out to be the hard part. The scaffolding was extremely fast to generate."

Agile Ceremonies (as originally practiced)

2001 – now, but with diminishing returns

"The manifesto said 'individuals and interactions over processes and tools.' We added a process for the interactions and a tool to track the process. The daily standup is 47 minutes long. We have a retro about the standup. The retro action items live in a backlog."

Microservices (the hype)

2014 – 2020 (the hype; the microservices themselves are eternal)

"We took a monolith that was hard to understand and replaced it with forty-seven services that are impossible to understand simultaneously. The latency is distributed. The debugging is distributed. The on-call rotation is distributed. The regret is centralized."

Blockchain (Enterprise Edition)

2016 – 2019

"It was a distributed ledger. We were going to put the supply chain on it. We were going to put the medical records on it. We were going to put the votes on it. We had an offsite. We have not spoken of the offsite."

Kubernetes YAML (as a developer experience)

2016 – present, unfortunately

"You will write the YAML. Then you will write a template for the YAML. Then you will write a tool that generates the template. Then you will debug the tool using the YAML it generated. Then you will discover that the production incident was caused by a tab character. You will have learned nothing. You will write the YAML again."

"Low-Code / No-Code Will Replace Developers"

2019 – 2022

"The citizen developer was going to build the enterprise software. The enterprise software required seventeen integrations, a compliance review, and a custom authentication flow. The citizen developer is now a developer. We did not warn them. We did not think they would listen."