↓ Skip to main content
Get on the bike! Build the roads before the Ferrari. Three steps: by hand once and write it down, script it (semi-automated is a win), annoyed again? Automate it fully, in Git. Invest once. Every small script is a piece of road.

Get on the bike! Why ClickOps teams keep running beside their bike

You probably know a team like this.

Servers get built by hand. Settings get clicked through one machine at a time. Changes on critical systems are done in an RDP session, and GPOs, templates and Ansible are nowhere to be seen. Every server is a little different, and only the person who built it knows why.

It’s ClickOps, and it’s still everywhere, especially in teams that have “always done it this way.”

To me it looks like a team running beside their bike, sweating and out of breath, when they could just get on it.

“We don’t have time”
#

Ask why they don’t automate, and nine times out of ten you get the same answer: no time.

That excuse deserves a closer look, because the time is already being spent, just not in a way anyone notices:

  • Building the same server by hand for the tenth time.
  • Troubleshooting why server A behaves differently from server B.
  • Finding out how something was configured, because nobody wrote it down.
  • Onboarding a new colleague who has to learn every quirk by heart.

“No time” really means “no time now, so we’ll keep paying for it later.”

That’s the trap. Manual work creates the workload that keeps you too busy to automate it.

What’s really behind it
#

“No time” is usually a cover for something else:

  • “It works, don’t touch it.” Nobody wants to be the one who breaks something, so nobody improves anything.
  • Knowledge stays in people’s heads. Sometimes on purpose. If you’re the only one who knows how it works, you feel needed.
  • Comfort. Clicking feels safe. A playbook or a GPO means learning something new.
  • Management sees the cost, not the payoff. A week of writing automation shows up on a timesheet. Hundreds of hours of manual work spread over a year don’t.

The biggest problem: documentation
#

Every ClickOps environment I’ve walked into had the same gap. The documentation was missing, outdated or wrong. There’s a wiki page from 2019, a Word file on someone’s desktop and a server nobody dares to reboot.

Here’s what I think people miss: infrastructure as code is documentation.

A GPO tells you what the policy is. An Ansible playbook tells you how a server was built. A Git history tells you who changed what, when and why. You don’t need a separate document that goes stale the moment someone clicks something.

With ClickOps, the only record of how your environment was built is in someone’s memory, and that person will leave eventually. On critical systems, that isn’t only inefficient. It’s a security risk.

Don’t build the Ferrari before the roads
#

There’s another side to this. Some teams finally decide to automate and go straight for the big picture: a full platform, a complete pipeline, everything in code on day one. Six months later nothing is finished, and everyone goes back to clicking.

They built the Ferrari without building the roads.

Rome wasn’t built in a day either. My approach is simple:

  1. Do it by hand once, and write down what you did.
  2. The second time, script it. It doesn’t need to be pretty. Semi-automated is already a huge win.
  3. When it annoys you again, automate it fully. A playbook, a GPO or a pipeline, in Git.

Invest once, then keep building on it. Every small script is a piece of road. Before long you have a network, and then the Ferrari actually has somewhere to go.

The bottom line
#

Doing everything by hand isn’t a badge of honor. It’s a risk, it’s expensive, and in the end it’s just a lot of pointless work. You don’t need a big bang either. Start with one script.

Stop running beside the bike. Get on it!

What’s the real reason in your team? Is it really time, or something else? Let me know in the comments.

Enjoyed this article? Follow me on LinkedIn for more.

Related

Automate my posts on bufon.nl

Let me be clear: I’m not lazy. I’m really lazy. There’s a difference. A lazy person skips the work. A really lazy person spends a whole Saturday building a machine so they never have to do that work again. It suits the name. Bufon means jester, and the jester was the one person at court who never carried anything. He juggled, told the king the truth and let the servants do the rest. My servants are a GitHub workflow and a cron job. They don’t get paid either. In Get on the bike! I wrote that you should do something by hand once, script it the second time and automate it when it annoys you again. Publishing posts had reached step three.