> Key has been to spend a fair amount of time on initial overall design document, which is split into tangible and limited phases.

> For each phase an implementation plan is made. At the end, a summary document of what was delivered and what was discovered.

> I do check the documents, and what they're doing. I also check the tests, some more thorough.

Sounds like programming, but with extra steps.

It's software development, but with much less actual programming (in my case none).

When I said I check the documents, the initial design document was the only I really took a hard look at. The intermediary I just skimmed, looking for red flags or something I had forgotten to tell them. Those documents served as a basis for their work, and as a record of what was done.

Overall I spent perhaps a few hours on each project, over the course of a few days. I'd check in every half hour or whenever I had time, tell Claude "Great, let's do the next deliverable", or GPT "We're done with phase 4, please do a detailed code review, reference the design document and documentation of previous phases". Then I'd leave them cooking.

Also the least fun part of development. Maybe I’m the weird one but I like to just jump right in, planning every last detail before writing code is boring.

For me, the fun in programming is sometimes to actually write code, solving a problem in a specific way or try some new approach. Other times the fun is to create something that works, and the code is more a means to an end.

The first case I'll probably still do by hand, like handmade vases despite factory made are cheap and readily available.

For the second case I think these newfangled tools have made it even more fun, since writing lots of boiler plate, repetitive event handles and whatnot is not my idea of fun.

> planning every last detail before writing code is boring

Not only that but you can't really plan everything. It is impossible. Without LLMs, with every line of code you are making a decision or discovering something new that must be dealt with or realizing how the current thing might impact something else and so on.

There is no way for a programmer to consider all of these little things ahead of time and if an attempt is made, it will take as long as actually writing that code.