That someone should do it themselves in a fork then, if you design software like this you run into problems with AI and human coders the same.
Your goal is to think of the form first(!), functionality emerged from that - or cache requests for functionality over at least 3 to 6 months, then refactor from the data structures up.
I know this is not the way businesses write software but if you want to stay relevant you should take a closer look as to what system or software design means to you. Spaghetti belongs to the Italians!
Functionality can be emergent from form - then you get a forced full-stop while trying to bend or hack your structure until you solve the problem system-wide and while solving this you usually get some functionality derived for free - often stuff your company can use now or will need later but does not know about yet.
1. Client asks you to add a feature(s)
2. Spend two weeks unpaid walking the client through scoping down to the most minimal viable set of features that tests the business hypothesis and roadmap
2. I wrote up a reasonably exhaustive bullet list and sent it to a CGPT to write a draft formal definition of features describing what it should (and should not) do, how users can access it and what the suite of tests that we will need through TDD
3. Chat for 30 minutes with CGPT researching which data structures, algorithms, code libraries and external services might serve best to implement this feature.
4. Generate mockups and data schema alongside CGPT, to build the new feature, the tests to make sure it works as expected, and the documentation telling users how to use it and telling other engineers what they’ll need to know to maintain and debug it.
5. Generate minimum code to test the full data workflow.
6. Send repo and or working application binary to Claude and Gemini to critique
7. Adjust as needed. Deploy for client review and acceptance in sandbox. Promote to production
8. GOTO3 and loop
I can do in a week what would have taken a month a decade ago
Whenever I let these tools look at existing repos they are too influenced by what's already there.
I could even say "feel free to completely refactor or rewrite anything" and they'll still just do small performative changes.
I've now changed my workflow to only using AI for prototyping and rewriting by hand once I can see something is viable. Takes longer but the results are always much better.
June 28, 2026
For those of you who don’t know, when I’m not writing novels, I spend my days as a software engineer, writing code. The software industry these days relies heavily on artificial intelligence. Because it has studied trillions of lines of publicly accessible source code, because code solves problems with testable right and wrong solutions, and because code is structured specifically to be understood by computers, AI has gotten very good at writing code.
Before programmers started using AI, a typical workflow looked like this:
Now that AI can consistently produce pretty good code, the software developer’s workflow looks like this:
In the old workflow, the creative process happened mostly in your mind. In the new process, you supervise the creative process that unfolds inside the AI’s internal machinations. You’ve put some effort into creating a concise, thoughtful, accurate prompt to get the AI started on its work, but you haven’t done any of the hard thinking you would normally do in writing the code yourself. When you get code back from the AI, you’re essentially acting as an editor because, while AI can write code, it cannot always see the big picture of your project the way you can, and you need to make sure this new code won’t cause problems.
AI does not know whether the code it just added violates some legal requirement to which your product is subject. It does not know if the request it makes to an external system is going to take ten milliseconds or ten minutes to fulfill. It does not know whether the actions of its code will conflict with some new feature that you know your teammates will be adding three weeks from now. It does not know whether the function it just wrote might introduce a new security problem when interacting with another function you wrote last month that handles sensitive information.
A senior developer does know these things, and this is why he or she needs to vet and often correct the AI code that appears to “just work.” To a senior developer, AI is a competent, fast-working junior or mid-level developer that, when properly directed, produces mostly solid work but lacks the institutional knowledge and the deep and broad systems-level knowledge that you have developed over the past twenty years.
Now, let’s back up for a second and make an analogy. Let’s say you’re a writer of historical novels. What does your workflow look like? Probably something like this:
The novelist and the software developer have a lot in common here. In reality, the novelist will have done much of her historical research before she begins writing, just as the software developer already knows from years of prior work which data structures and algorithms and which types of caches and databases will be suitable for the new feature he’s about to write.
What both workers have in common is a deep feeling of engagement with the material they’re creating. They are entirely immersed in their work, to the point where they often lose track of time. In both novel writing and software development, it’s common for me and many of my peers to check the clock, dive into a problem, and then look at the clock ten minutes later to discover that four hours have passed.
This is the state of “optimal experience” that psychologist Mihaly Csikszentmihalyi described in his bestselling 1990 book, Flow. Writers, software developers, painters, musicians and all other creative types enter this state when time and circumstances permit. Many software engineers work after hours at home precisely because the lack of meetings and other interruptions outside normal business hours permit them to enter this state.
Now, let’s put the historical novelist in the position of the software developer. She gets a call from her publisher saying they’ve found a way for her to bring four books to market each year instead of one book every two years. They’ve recruited a bunch of top-notch high school and college students who can each crank out five pages a day of competent writing for dirt cheap. The publisher wants the historical novels to maintain the original writer’s level of excellence, or to at least be close, so they’re retaining her services as an editor.
The novelist’s job is now to edit the work of the students, each of whom has been carefully prompted to write pages that should, with a little work, be stitched together into coherent chapters.
Anyone who has ever graded the work of high school and college kids knows that this is generally not rewarding work. If you’ve ever had to grade a hundred papers in a week, you know what a grind that is.
The novelist, like the software engineer, is no longer deeply engaged in her work. Editing is not creating. You do not give yourself over to your imagination. You do not immerse your mind and feelings in the process of invention. Instead, you’re rooting out problems, trying to clean up clumsy wording and redundant descriptions instead. The flow state is gone. You are now a cog in a larger process that doesn’t really value your creativity or your need to exercise it.
Worse still–and I have felt this personally after months of reviewing AI-generated code–your skills drop off sharply. When a new issue arises–a feature to be implemented, or a tricky bug to fix–the idea of wasting several hours on it feels insulting. Why should I dig through all that code when Claude can locate the bug in five minutes and start drafting a fix?
Why indeed? Why should you or I invest mental energy in something we used to actually like doing, something that now feels like a chore, when the bot can do it for us?
Months of working with AI have made me noticeably lazier and stupider, at least when it comes to coding. (I don’t use AI when I write, for the very reason that writing itself is the act of organizing and clarifying my own thought. Letting the bot write for me would be like paying someone else to exercise for me and hoping that gets me in shape.)
I’ve also become more impatient at work, particularly when I get emails from coworkers that are clearly AI-written. The emails often ask me to review longer documents that were also written by AI. That always leaves me thinking, “If you couldn’t be bothered to write this, why should I bother reading it?”
I do use AI to answer basic questions. Want to know how Amazon’s managed databases compare to the offerings from Microsoft and Digital Ocean? Claude’s chatbot is a good place to get a high-level overview. From there, you can go to the sources to get more detail.
But I think that creative people choosing to hand over their most imaginative, flow-state thinking to an army of bots will be a mistake in the long run. Those AI bots got all their knowledge from us–from our code, our white papers, our poems and novels and news stories, our biographies and all the Stack Overflow answers that thousands of people spent decades writing from hard-won knowledge.
The bots ate up all the data, which used to be free, and now they sell it back to us. No one answers questions on Stack Overflow anymore because people take their questions to Claude and ChatGPT. The publicly available knowledge that used to accumulate in free-to-use services like Stack Overflow is drying up, leaving the AI bots less to feed on for answers to future technical questions.
The software companies fired all their junior developers because the AI bots are cheaper, as long as you have skilled senior developers to manage them. But with no junior developers in the pipeline, learning the hard way how to solve the truly complex, broad and deep problems–problems whose scope is simply too large for AI to handle–where will tomorrow’s senior developers come from? Who will be qualified to manage the bots in five years?
The complex, broad and deep problems I speak of are too big to fit into AI’s “context windows” which describe the full scope of questions to be answered. You cannot now and may never be able to feed into AI a full understanding of every law that governs your product across a hundred different countries, every nuance of every related codebase with which your product must interact, every business rule embedded in the millions of lines of code that make up your product. A team of developers and managers can understand and apply this legal and institutional knowledge. It takes work, naturally, and is expensive. Complexity always is.
But what happens when we resign all this work to the bots? What person anywhere will have the knowledge to verify that the work the bots are producing is correct?
A few years ago, I read an article, which I can no longer locate [1], about how the US Navy convinced Congress to fund the construction of an aircraft carrier that the Navy didn’t immediately need. “Why should we pay for that?” asked the senators and representatives.
The Navy replied, “Because the skills required to build an aircraft carrier were so hard won over so many decades that if we don’t build one now, we’ll forget how to do it in ten years.”
The Navy wanted the old hands, the engineers and craftsmen who had built the world-class ships no other country could match, to pass down to the younger generation the skills they would need to build what no one else on earth could build. The only way to do that was by actually doing it, to actually put the team through every step of designing and assembling the ship.
Congress funded the project because, despite all our complaints about their inefficiency, partisan bickering, and general ineffectiveness, they had more foresight than most of our corporations. Instead of looking at the next earnings report, they were looking decades into the future.
Companies in the software industry, from the largest corporations to the smallest start-ups, are off-loading creative work to bots because the short-term payoff is immense. Why pay ten developers to crank out one product per year when you can pay four people to crank out ten products with the help of Claude or Codex?
For managers and investors, this looks like an obvious win. But the bill will come due soon enough. The cost of maintaining millions of lines of code is enormous, especially when no one fully understands the code because no one actually wrote it. Fixing bugs, adding features, and integrating new technologies into existing code is hard work. That work also will go to the bots, and in the long run, society will come to rely on systems that people did not create and people do not understand.
As for me, a once-creative developer who worked hard to block out uninterrupted time each day so I could get deep into that creative flow state, the process of software development is no longer so rewarding. I am no longer so deeply immersed in my work. I don’t learn on the job the way I once did. I respond to the bot’s code suggestions and pull requests the same way most people answer their email and Slack queues. My job is to react, not to create.
As I wind down my career in software engineering, I think of the artisans of the mid-twentieth century, the woodworkers and metal craftsman who watched as the advent of plastic manufacturing undercut their work in ways from which they could not and would not recover. Sure, the toys and tools and instruments the craftsmen made showed a level of dedication that the factory-produced plastic models couldn’t match. But so what? To the public, a good-enough plastic toy was good enough. And if it broke in six months, it was so cheap they could buy another.
Those millions of plastic products now pollute our oceans. The Great Pacific Garbage Patch is now three times the size of France.[2]
This is where our internet is going now as AI, in the process of doing other useful work, cranks out the digital equivalent of a million tons of plastic debris each day.
And while computer programming, once a creative endeavor, has now been reduced to the task of minding the bots, remember that in your free time, your mind is still free and you may turn its energies to whatever you please. I still write as often as possible, and every time I emerge from that flow state, I feel like I’ve come back with something new from the depths of my own mind. Ideas that were once only vaguely felt are now more clearly articulated, and each becomes a step toward something higher, toward thoughts I could not have articulated at all, or even begun to think, without the practice of writing.
When choosing what to do with your time, choose wisely. Your library has more books than you could ever read. Your friends and family have hearts and desires the bots can never fathom. You mind, once you remove the noise of the world at large, is still capable of imagination, creativity and flow.
Find it!
[1] The Rand corporation has published papers in the issue of the Navy losing critical engineering skills through atrophy and Defense News wrote a related summary of the problem at https://www.defensenews.com/opinion/2024/11/08/the-us-navy-is-at-risk-of-losing-vital-shipbuilding-skills/
[2] https://en.wikipedia.org/wiki/Great_Pacific_Garbage_Patch