It’s 6:40 on a Tuesday and the migration window closes at 7. Forty-three VMs still need to move off the cluster before Broadcom’s renewal invoice hits your desk again, and you are not paying for capacity you’re actively trying to leave. Your director said it in the hallway this morning, not unkindly, just flat: whatever’s off that cluster by Friday is off it, whatever’s not is a conversation with finance.
You’ve done the manual clicks for six of them. Six, in four hours. At this rate you’ll be here until the building empties out and the cleaning crew starts asking if you’re supposed to still be here. Your phone buzzes. It’s Marcus from the network team, three floors down, also working late: how’s it going. You don’t answer yet.
So you open the chat window. You paste in what you’re trying to do, plain, the way you’d explain it to the new guy: move these VMs, skip the ones tagged do-not-touch, check they boot, log what happened. Thirty seconds later there’s a script sitting in front of you, PowerCLI, clean, commented, looks like something a senior admin would hand you for review. The comments even explain themselves in the right places, the way a good script does, the way yours do when you’ve got time to write them properly.
You read it once. It makes sense. Connection block, VM enumeration, a filter step, the actual move commands, a verification loop at the end that pings each VM after boot and logs the result to a file. It’s structured the way you’d structure it. It’s fast. You read it again, faster this time, because the clock in the corner of your screen is doing that thing where every minute feels like it’s worth more than the last one, and 6:40 is already 6:44.
You almost run it.
Your cursor is actually on the button when something makes you scroll back up. The do-not-touch tag check. It’s filtering on a custom attribute called Migration_Hold. You stare at it for a second, not sure what’s bothering you, and then it lands: you’ve never named an attribute that in your life. You use DoNotMigrate. You’ve used it for three years, it’s in every runbook you’ve ever written, every admin on your team knows it on sight, it’s practically muscle memory at this point, the way you don’t think about where the light switch is in a room you’ve worked in for a decade.
The script doesn’t know that. It guessed. Not carelessly, it guessed the way anyone would if you handed them a task and no glossary, filling the gap with something plausible, something that sounds exactly like what a well-run environment would call that field. It guessed well, well enough to read as correct on a fast pass at 6:40 on a Tuesday with the clock running, and if you hadn’t happened to scroll up at that exact second, it would have swept right past four VMs your director specifically told you not to touch, because it was checking a field that has never existed in your environment. Four VMs, gone off the cluster, and you’d have found out Wednesday morning from someone else, not from a log.
You close the laptop lid for a second. Not because you’re done. Because you need one second where you’re not looking at it.
You’ve got a runbook. A real one, eleven years of tribal knowledge, the kind of document where step fourteen says “check disk space on secondary before you fail over, ask me why if you want the story” and everyone on the team just knows to skip asking. You know exactly what’s safe to automate and what needs a human’s eyes on it first. You’ve known that for years, it’s why they call you when something’s actually on fire instead of the guy with the certifications.
The problem was never that you don’t understand your environment. You clearly do, you caught what a fast, competent-looking script missed, caught it with four minutes to spare and no second read scheduled. The problem is you have no idea how to get what’s in your head, and what’s in that runbook, into something the assistant can actually work from instead of guessing at. You type back to Marcus: slower than I wanted. talk tomorrow.
Forty more VMs. Fifteen minutes. You open the chat window again, and this time you don’t know what to type differently.



