3 Things You Learn Writing Your First Software

AI is getting capable. Software is increasingly being written by smart non-engineers. Here’s a few things that surprise makers when they get into a serious software effort for the first time:

Getting it to work once is not the same as building software

An easy with with AI feels magical: you describe something, hit enter, and suddenly you have a working app. But then you change one thing and something else breaks. A bug appears in a place you never touched. What works on one laptop mysteriously fails on a different computer. Software isn’t a once-and-done thing. It is a system that has to survive change.

What pros do differently: They use a Source Control Management (SCM) system, like Git. This provides an “undo button” to go back to an earlier working state.

The hard part isn’t code

Even large software projects fail all the time. It’s shockingly easy to “solve the wrong problem”. Things that seem easy end up being rather tricky to get right. Instructions on what to build turn out not to have been as clear-cut as they first seemed, and unfortunately your instructions were followed to the letter. Now you need to either start over, or clean up a huge mess. Quickly generating a bunch of code doesn’t mean you’ve gotten closer to a solution to your original problem.

What pros do differently: They spend time refining the “why” behind the requirements, and stress test the blueprints before committing to code. Often, machine-verifiable tests get written early on, often before any code.

Taste matters. More than ever.

Everybody’s heard of AI “hallucination” at this point, but there’s an even sneakier trap: Agents are trained to produce mediocre code. Usually, this isn’t a problem. (It’s a dirty secret that most large software projects contain huge rafts of mediocre ‘plumbing’ code.) The problem comes when average code gets used in the critical place where something outstanding was needed. Building with agentic tools rewards good judgment and experience.

What the pros do differently: They pay attention to the basics of Software Architecture, separating out the parts that really matter from the plumbing. They think about fences between different parts of the system, reining in complexity and keeping small failures from spreading.

If reading this has inspired you, you’ll really enjoy the Architect+ Digscuss email list, where we talk about agentic development, tools, techniques, and levers for success. Join for free.

I’m rolling out more free materials and training for folks without a computer science background. If weekly email is too slow, Contact me for details.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top