Three of us went to the data center to kill spanning tree.
The old Dell switches were coming out. New Juniper gear was going in. Once the cutover finished, the distribution network would be on the new design and one entire class of network behavior would disappear with it.
That was the plan.
Network changes are clean in a diagram and very physical in a rack. A cable has to move. A port has to come up. The configuration on the screen has to match the device in front of you. Every dependency you forgot gets a chance to introduce itself.
We told the team what we were doing and asked them to call immediately if anything looked wrong. During a cutover, an unrelated problem and your problem look exactly the same to the person seeing an error.
The goal was not only newer hardware. It was a simpler system.
New gear could make the network faster. Removing a behavior we did not want made the network easier to reason about. I cared more about the second part.
Spanning tree existed to prevent loops in switched networks. It could also turn a bad assumption into an exciting and confusing failure. Removing it from this design meant fewer hidden decisions and a network whose paths we chose directly.
I liked that trade.
There would always be complexity somewhere. The job was to put it where the team could see it, test it, and explain it at a terrible hour.
New switches were useful. A network we understood was the actual upgrade.