What exactly do you mean by this? Can you give an example..
What exactly do you mean by this? Can you give an example..
My workflow used to be:
1. Draft rough spec
2. Write a bunch of C/C++ code
3. Test manually
Now it's more like: 1. Put some actual care into a detailed spec
2. Write equally detailed test harness spec
3. Hand both specs to clanker. Surf HN for a while
4. Review target code casually
5. Review test harness very carefully
6. Run test(s) manually (or, lately, get the clanker to do that too)
7. Iterate if necessary, going back to step 1, 2, or 3 as appropriate
This doesn't necessarily even save that much time, but it makes the job easier and more enjoyable, and it forces me to do things I should've been doing all along. If steps 1, 2, and 5 are done properly, step 4 can be "Meh, whatever, LGTM."The analogy I like to use is Harold Black's work in the 1930s, trying to convince the patent office and his peers that yes, negative feedback is a huge, huge F'ing deal, because it only takes a small amount to make a large improvement in linearity. Anytime you have something that is 95% as good as it needs to be, it will be good enough if you can wrap a loop around it.
Lol, you are in for a world of pain when you run out of prompts!
But you can always throw the entire program, and start from scratch...You have every behavior captured in tests, right?...right?
Not necessarily. I'm still learning how to do that, just like the rest of the industry will have to. TDD in the age of AI is a skill that will emerge from disciplined practice as well as a lot of trial-and-error.
As for digging in manually, right now I still have to keep a pretty close eye on the C code the clankers emit, but then I'm old enough to remember when we had to debug compiled C code by stepping through x86 opcodes in Turbo Debugger. That need went away, frankly sooner than I thought it would. I almost never need to look at x64 assembly anymore, and I can't sight-read ARM at all. The same thing will happen with what we call high-level languages today.
At some point last year I noticed that I was finding fewer bugs in AI-generated parts of the code than the AI was finding in my own, and that trend clearly isn't going to reverse itself. When the clanker screws something up, it's usually because I gave it flawed or incomplete instructions, not because it's incapable of doing the job right.
Not always, but usually.
Wait, how do you debug now? Do you mean because of LLM assistance?