What's XML anyway?


There was a time when, despite knowing how to code, I had no idea what XML was. That may seem an odd and embarrassing admission until you realize there was a time when XML was new.

(In fact, HTML predates XML by several years...)

Not knowing XML and, wanting to store data, I came up with a simple system that didn't look too different: I used square brackets and instead of closing slash, I just wrote the word END.

I didn't realize I was reinventing the wheel until a much more seasoned engineer saw my code and asked "Why don't you just use XML?" (Which I promptly looked up and made a terrible non-face-saving excuse to save face).

My early career was filled with similar examples: hacking a workaround to related database rows until I learned about how to set up proper database relationships, implementing weird architecture until I learned about different patterns like the factory pattern...

But over time I learned more and more until I got better at looking out for the signs that suggested  an established solution or pattern probably exists. I stopped re-inventing the wheel and started learning which wheels worked for specific situations.

Work with Claude, I'm achieving a lot. It's mind blowing how much I can accomplish in such little time. But, given the years of experience, I sometimes see Claude as an early "me."

Don't get me wrong, I'm not saying my brain's   knowledge base is bigger or faster. Instead AI is prone to reinventing wheels because it doesn't always have the full picture in its "mind" to know how to pick the right solution from the beginning. This leads it to reinventing wheels like I was doing so many years ago. It knows if the many other wheels, but doesn't realize which one to use.

You tell it "let's go for a ride" and it picks the road tires.

You run into some rain and tell it to handle slick roads, so it starts adjusting the road tire to better handle wet roads.

You hit some mud, lose traction, and it now it's adding more grips and grooves.

You tell it to handle differential steering (or something... I dunno, I'm not a car guy) and while Claude starts realizing it's not building a car, because it's been building a bike until now it tries to make the bike more and more like a car. On its own, it's more likely to double down and force a poor design get better than make large refactors. 

This past week I had to explicitly instruct Claude to switch to using an observer pattern and to leverage some built-in libraries it had overlooked rather than continuing to refine its own custom solution... The kind of thing I found myself doing later in my career with the junior engineers. 

It takes experience to detect when it's going down the wrong path. That's where the Senior Engineer partnered with a Junior Engineer has been so critical to growth. With AI, a senior engineer will know to build harnesses early on, and establish clear guardrails. They spend more time building a clear and rigorous "micro-spec." But what if you don't have that experience? Relying on additional agents to analyze the code and look for opportunities to improve the architecture burns the token-candle from both ends... and there's no guarantee you won't have to do it over and over again.

Coding agents are super powerful, but they require harnesses, they need specificity, coaching, and guardrails. That's easy if you remember a time when saying "XML" evoked a reply "XML? Is that Extreme HTML?" but what if you're new to engineering and computer science? The future seems less about learning to code and more about learning how to build strict blueprints and orchestrating agents so they avoid boxing themselves in, and how to break out of the box (see: "AI Architecture Drift") when it happens.

That seems like asking the next generation to leap-frog over all the hands-on-learning and start making decisions without having a full understanding of them. Many Senior Engineers have at one point complained of the "manager that can't code" - setting outlandish requests resulting from their inexperience. If a prerequisite for good software (whether design, code, or agent orchestration) is experience then it'll be interesting to see how this gets addressed.

Popular

Work Experience vs Professional Experience

Let's Clear Up The Ambiguity!

FAQs for a Software Engineering Hiring Manager

7 Steps to Writing an Amazing Resume

Where is MySpace Headed?